-
-
Notifications
You must be signed in to change notification settings - Fork 5.8k
[Bug]: Crash with decorators on anonymous class expression #16473
Copy link
Copy link
Closed
Labels
Spec: DecoratorsoutdatedA closed issue/PR that is archived due to age. Recommended to make a new issueA closed issue/PR that is archived due to age. Recommended to make a new issue
Description
💻
- Would you like to work on a fix?
How are you using Babel?
Other (Next.js, Gatsby, vue-cli, ...)
Input code
Minimal test case:
(@x class { @y static accessor z })Configuration file name
No response
Configuration
I hit this when writing some new tests for https://github.com/evanw/decorator-tests, which calls Babel like this:
babel.transformSync(js, { plugins: [['@babel/plugin-proposal-decorators', { version: '2023-11' }]] })Current and expected behavior
Babel currently crashes with the following error:
Property object of MemberExpression expected node to be of a type ["Expression","Super"] but instead got undefined
Expand to see the full stack trace
at Object.validate (./node_modules/@babel/types/lib/definitions/utils.js:105:11)
at validateField (./node_modules/@babel/types/lib/validators/validate.js:21:9)
at validate (./node_modules/@babel/types/lib/validators/validate.js:15:3)
at validateNode (./node_modules/@babel/types/lib/builders/validateNode.js:12:27)
at Object.memberExpression (./node_modules/@babel/types/lib/builders/generated/index.js:471:36)
at addProxyAccessorsFor (./node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js:93:90)
at transformClass (./node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js:725:13)
at visitClass (./node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js:1252:21)
at PluginPass.Class (./node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js:1284:9)
at newFn (./node_modules/@babel/traverse/lib/visitors.js:160:14)
at NodePath._call (./node_modules/@babel/traverse/lib/path/context.js:46:20)
at NodePath.call (./node_modules/@babel/traverse/lib/path/context.js:36:17)
at NodePath.visit (./node_modules/@babel/traverse/lib/path/context.js:82:31)
at TraversalContext.visitQueue (./node_modules/@babel/traverse/lib/context.js:89:16)
at TraversalContext.visitSingle (./node_modules/@babel/traverse/lib/context.js:65:19)
at TraversalContext.visit (./node_modules/@babel/traverse/lib/context.js:112:19)
at traverseNode (./node_modules/@babel/traverse/lib/traverse-node.js:22:17)
at NodePath.visit (./node_modules/@babel/traverse/lib/path/context.js:88:52)
at TraversalContext.visitQueue (./node_modules/@babel/traverse/lib/context.js:89:16)
at TraversalContext.visitMultiple (./node_modules/@babel/traverse/lib/context.js:61:17)
at TraversalContext.visit (./node_modules/@babel/traverse/lib/context.js:110:19)
at traverseNode (./node_modules/@babel/traverse/lib/traverse-node.js:22:17)
at NodePath.visit (./node_modules/@babel/traverse/lib/path/context.js:88:52)
at TraversalContext.visitQueue (./node_modules/@babel/traverse/lib/context.js:89:16)
at TraversalContext.visitSingle (./node_modules/@babel/traverse/lib/context.js:65:19)
at TraversalContext.visit (./node_modules/@babel/traverse/lib/context.js:112:19)
at traverseNode (./node_modules/@babel/traverse/lib/traverse-node.js:22:17)
at NodePath.visit (./node_modules/@babel/traverse/lib/path/context.js:88:52)
at TraversalContext.visitQueue (./node_modules/@babel/traverse/lib/context.js:89:16)
at TraversalContext.visitSingle (./node_modules/@babel/traverse/lib/context.js:65:19)
at TraversalContext.visit (./node_modules/@babel/traverse/lib/context.js:112:19)
at traverseNode (./node_modules/@babel/traverse/lib/traverse-node.js:22:17)
at NodePath.visit (./node_modules/@babel/traverse/lib/path/context.js:88:52)
at TraversalContext.visitQueue (./node_modules/@babel/traverse/lib/context.js:89:16)
at TraversalContext.visitMultiple (./node_modules/@babel/traverse/lib/context.js:61:17)
at TraversalContext.visit (./node_modules/@babel/traverse/lib/context.js:110:19)
at traverseNode (./node_modules/@babel/traverse/lib/traverse-node.js:22:17)
at NodePath.visit (./node_modules/@babel/traverse/lib/path/context.js:88:52)
at TraversalContext.visitQueue (./node_modules/@babel/traverse/lib/context.js:89:16)
at TraversalContext.visitSingle (./node_modules/@babel/traverse/lib/context.js:65:19)
at TraversalContext.visit (./node_modules/@babel/traverse/lib/context.js:112:19)
at traverseNode (./node_modules/@babel/traverse/lib/traverse-node.js:22:17)
at NodePath.visit (./node_modules/@babel/traverse/lib/path/context.js:88:52)
at TraversalContext.visitQueue (./node_modules/@babel/traverse/lib/context.js:89:16)
at TraversalContext.visitMultiple (./node_modules/@babel/traverse/lib/context.js:61:17)
at TraversalContext.visit (./node_modules/@babel/traverse/lib/context.js:110:19)
at traverseNode (./node_modules/@babel/traverse/lib/traverse-node.js:22:17)
at NodePath.visit (./node_modules/@babel/traverse/lib/path/context.js:88:52)
at TraversalContext.visitQueue (./node_modules/@babel/traverse/lib/context.js:89:16)
at TraversalContext.visitMultiple (./node_modules/@babel/traverse/lib/context.js:61:17)
at TraversalContext.visit (./node_modules/@babel/traverse/lib/context.js:110:19)
at traverseNode (./node_modules/@babel/traverse/lib/traverse-node.js:22:17)
at NodePath.visit (./node_modules/@babel/traverse/lib/path/context.js:88:52)
at TraversalContext.visitQueue (./node_modules/@babel/traverse/lib/context.js:89:16)
at TraversalContext.visitSingle (./node_modules/@babel/traverse/lib/context.js:65:19)
at TraversalContext.visit (./node_modules/@babel/traverse/lib/context.js:112:19)
at traverseNode (./node_modules/@babel/traverse/lib/traverse-node.js:22:17)
at traverse (./node_modules/@babel/traverse/lib/index.js:52:34)
at transformFile (./node_modules/@babel/core/lib/transformation/index.js:82:31)
at transformFile.next (<anonymous>)
at run (./node_modules/@babel/core/lib/transformation/index.js:24:12)
at run.next (<anonymous>)
at transform (./node_modules/@babel/core/lib/transform.js:22:33)
at transform.next (<anonymous>)
at evaluateSync (./node_modules/gensync/index.js:251:28)
at sync (./node_modules/gensync/index.js:89:14)
at stopHiding - secret - don't use this - v1 (./node_modules/@babel/core/lib/errors/rewrite-stack-trace.js:47:12)
at Object.transformSync (./node_modules/@babel/core/lib/transform.js:42:76) {
code: 'BABEL_TRANSFORM_ERROR'
}
Environment
Possible solution
No response
Additional context
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Spec: DecoratorsoutdatedA closed issue/PR that is archived due to age. Recommended to make a new issueA closed issue/PR that is archived due to age. Recommended to make a new issue