-
-
Notifications
You must be signed in to change notification settings - Fork 5.8k
Description
💻
- Would you like to work on a fix?
How are you using Babel?
Programmatic API (babel.transform, babel.parse)
Input code
I am trying to transform code via:
const { transformSync } = require('@babel/core');
const codeMap = transformSync(code, babelOpts);where code is:
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __decorateClass = (decorators, target, key, kind) => {
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
for (var i = decorators.length - 1, decorator; i >= 0; i--)
if (decorator = decorators[i])
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
if (kind && result)
__defProp(target, key, result);
return result;
};
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators.js";
export let SimpleGreeting = class extends LitElement {
constructor() {
super(...arguments);
// eslint-disable-next-line indent
this.name = "World";
}
// Render the UI as a function of component state
render() {
return html`<p>Hello, ${this.name}! ${this.getQuestion()}</p>`;
}
getQuestion() {
return "How are you today?";
}
};
// Define scoped styles right with your component, in plain CSS
SimpleGreeting.styles = css`
:host {
color: blue;
}`;
__decorateClass([
property()
], SimpleGreeting.prototype, "name", 2);
SimpleGreeting = __decorateClass([
customElement("simple-greeting")
], SimpleGreeting);and babelOpts is:
{
configFile: false,
babelrc: false,
ast: true,
filename: '/webdriverio/examples/wdio/browser-runner/components/LitComponent.ts',
inputSourceMap: {
version: 3,
sources: [
'/webdriverio/examples/wdio/browser-runner/components/LitComponent.ts'
],
mappings: ';;;;;;;;;;;AAAA,SAAS,YAAY,KAAK,YAAY;AACtC,SAAS,eAAe,gBAAgB;AAGjC,WAAM,iBAAN,cAA6B,WAAW;AAAA,EAAxC;AAAA;AAUH;AAAA,gBAAgB;AAAA;AAAA;AAAA,EAGhB,SAAS;AACL,WAAO,iBAAiB,KAAK,SAAS,KAAK,YAAY;AAAA,EAC3D;AAAA,EAEA,cAAe;AACX,WAAO;AAAA,EACX;AACJ;AAAA;AApBa,eAEF,SAAS;AAAA;AAAA;AAAA;AAQhB;AAAA,EAFC,SAAS;AAAA,GARD,eAUT;AAVS,iBAAN;AAAA,EADN,cAAc,iBAAiB;AAAA,GACnB;',
names: []
},
sourceMaps: true,
compact: false,
comments: true,
parserOpts: {
allowReturnOutsideFunction: true,
sourceType: 'module',
plugins: [
'asyncGenerators',
'bigInt',
'classProperties',
'classPrivateProperties',
'classPrivateMethods',
'dynamicImport',
'importMeta',
'numericSeparator',
'objectRestSpread',
'optionalCatchBinding',
'topLevelAwait'
]
},
plugins: [ [ [Function (anonymous)] ] ]
}Configuration file name
No response
Configuration
n/a
Current and expected behavior
It currently fails with latest release on:
Cannot read properties of undefined (reading '0')
/examples/wdio/browser-runner/components/LitComponent.ts
at new SourceMap (/packages/wdio-browser-runner/node_modules/@babel/generator/lib/source-map.js:31:99)
at new Generator (/packages/wdio-browser-runner/node_modules/@babel/generator/lib/index.js:13:35)
at generate (/packages/wdio-browser-runner/node_modules/@babel/generator/lib/index.js:88:15)
at generateCode (/packages/wdio-browser-runner/node_modules/@babel/core/lib/transformation/file/generate.js:48:39)
at run (/packages/wdio-browser-runner/node_modules/@babel/core/lib/transformation/index.js:39:33)
at run.next (<anonymous>)
at transform (/packages/wdio-browser-runner/node_modules/@babel/core/lib/transform.js:22:41)
at transform.next (<anonymous>)
at evaluateSync (/packages/wdio-browser-runner/node_modules/gensync/index.js:251:28)
at sync (/packages/wdio-browser-runner/node_modules/gensync/index.js:89:14)
at stopHiding - secret - don't use this - v1 (/packages/wdio-browser-runner/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js:46:12)
at transformSync (/packages/wdio-browser-runner/node_modules/@babel/core/lib/transform.js:43:76)
at Instrumenter.instrumentSync (/packages/wdio-browser-runner/node_modules/istanbul-lib-instrument/src/instrumenter.js:102:25)
at TransformContext.transform (file:///packages/wdio-browser-runner/node_modules/vite-plugin-istanbul/dist/index.mjs:109:35)
at Object.transform (file:///packages/wdio-browser-runner/node_modules/vite/dist/node/chunks/dep-ae3fae1b.js:41674:44)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async loadAndTransform (file:///packages/wdio-browser-runner/node_modules/vite/dist/node/chunks/dep-ae3fae1b.js:39479:29
because when creating the trace map at
this._inputMap = new _traceMapping.TraceMap(opts.inputSourceMap);the returned object has sourcesContent: undefined,.
Environment
@babel/generator: 7.21.0
Node.js v18.7.0
NPM v8.15.0
macOS
Possible solution
No response
Additional context
This happened during recent Babel updates. It is hard for me to say what is the root cause of this. I am working on WebdriverIO and we use Babel as part of vite-plugin-istanbul to generate code coverage reports.
You can reproduce this by checking out https://github.com/webdriverio/component-testing-examples/tree/main/create-react-app and run any of the example directories.
I am aware that this is not necessary an issue of Babel but would love to understand what the root cause of this is and am happy to work on a fix if someone can give me any pointers.