mirror of
https://github.com/danbulant/oxc
synced 2026-05-24 12:21:58 +00:00
feat(transformer/class-properties): insert statements after statement of class expression (#8116)
This commit is contained in:
parent
0cc71cf5e3
commit
3303e9986b
4 changed files with 22 additions and 9 deletions
|
|
@ -617,6 +617,21 @@ impl<'a, 'ctx> ClassProperties<'a, 'ctx> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Insert private methods
|
||||||
|
if !self.insert_after_stmts.is_empty() {
|
||||||
|
// Find address of statement of class expression
|
||||||
|
let position = ctx
|
||||||
|
.ancestors()
|
||||||
|
.position(Ancestor::is_parent_of_statement)
|
||||||
|
.expect("Expression always inside a statement.");
|
||||||
|
// Position points to parent of statement, we need to find the statement itself,
|
||||||
|
// so `position - 1`.
|
||||||
|
let stmt_ancestor = ctx.ancestor(position - 1);
|
||||||
|
self.ctx
|
||||||
|
.statement_injector
|
||||||
|
.insert_many_after(&stmt_ancestor, self.insert_after_stmts.drain(..));
|
||||||
|
}
|
||||||
|
|
||||||
// Insert computed key initializers
|
// Insert computed key initializers
|
||||||
exprs.extend(self.insert_before.drain(..));
|
exprs.extend(self.insert_before.drain(..));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
commit: 54a8389f
|
commit: 54a8389f
|
||||||
|
|
||||||
Passed: 631/1095
|
Passed: 632/1095
|
||||||
|
|
||||||
# All Passed:
|
# All Passed:
|
||||||
* babel-plugin-transform-logical-assignment-operators
|
* babel-plugin-transform-logical-assignment-operators
|
||||||
|
|
@ -462,7 +462,7 @@ x Output mismatch
|
||||||
x Output mismatch
|
x Output mismatch
|
||||||
|
|
||||||
|
|
||||||
# babel-plugin-transform-private-methods (16/148)
|
# babel-plugin-transform-private-methods (17/148)
|
||||||
* accessors/arguments/input.js
|
* accessors/arguments/input.js
|
||||||
x Output mismatch
|
x Output mismatch
|
||||||
|
|
||||||
|
|
@ -565,9 +565,6 @@ x Output mismatch
|
||||||
* misc/multiple/input.js
|
* misc/multiple/input.js
|
||||||
x Output mismatch
|
x Output mismatch
|
||||||
|
|
||||||
* private-method/class-expression/input.js
|
|
||||||
x Output mismatch
|
|
||||||
|
|
||||||
* private-method/destructuring/input.js
|
* private-method/destructuring/input.js
|
||||||
x Output mismatch
|
x Output mismatch
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -53,9 +53,10 @@ TypeError: Cannot read properties of undefined (reading 'bind')
|
||||||
at ./tasks/transform_conformance/fixtures/babel/babel-plugin-transform-class-properties-test-fixtures-private-loose-parenthesized-optional-member-call-with-transform-exec.test.js:78:12
|
at ./tasks/transform_conformance/fixtures/babel/babel-plugin-transform-class-properties-test-fixtures-private-loose-parenthesized-optional-member-call-with-transform-exec.test.js:78:12
|
||||||
|
|
||||||
./fixtures/babel/babel-plugin-transform-class-properties-test-fixtures-private-static-self-method-exec.test.js
|
./fixtures/babel/babel-plugin-transform-class-properties-test-fixtures-private-static-self-method-exec.test.js
|
||||||
ReferenceError: _bar is not defined
|
TypeError: Private element is not present on this object
|
||||||
at Function.extract (./tasks/transform_conformance/fixtures/babel/babel-plugin-transform-class-properties-test-fixtures-private-static-self-method-exec.test.js:13:46)
|
at _assertClassBrand (./node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/assertClassBrand.js:3:9)
|
||||||
at ./tasks/transform_conformance/fixtures/babel/babel-plugin-transform-class-properties-test-fixtures-private-static-self-method-exec.test.js:19:45
|
at Function.extract (./tasks/transform_conformance/fixtures/babel/babel-plugin-transform-class-properties-test-fixtures-private-static-self-method-exec.test.js:13:10)
|
||||||
|
at ./tasks/transform_conformance/fixtures/babel/babel-plugin-transform-class-properties-test-fixtures-private-static-self-method-exec.test.js:34:45
|
||||||
|
|
||||||
./fixtures/babel/babel-plugin-transform-class-properties-test-fixtures-private-static-shadow-exec.test.js
|
./fixtures/babel/babel-plugin-transform-class-properties-test-fixtures-private-static-shadow-exec.test.js
|
||||||
TypeError: e.has is not a function
|
TypeError: e.has is not a function
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ AssertionError: expected [Function] to throw error including 'Receiver must be a
|
||||||
at Proxy.<anonymous> (./node_modules/.pnpm/@vitest+expect@2.1.2/node_modules/@vitest/expect/dist/index.js:1438:21)
|
at Proxy.<anonymous> (./node_modules/.pnpm/@vitest+expect@2.1.2/node_modules/@vitest/expect/dist/index.js:1438:21)
|
||||||
at Proxy.<anonymous> (./node_modules/.pnpm/@vitest+expect@2.1.2/node_modules/@vitest/expect/dist/index.js:923:17)
|
at Proxy.<anonymous> (./node_modules/.pnpm/@vitest+expect@2.1.2/node_modules/@vitest/expect/dist/index.js:923:17)
|
||||||
at Proxy.methodWrapper (./node_modules/.pnpm/chai@5.1.2/node_modules/chai/chai.js:1610:25)
|
at Proxy.methodWrapper (./node_modules/.pnpm/chai@5.1.2/node_modules/chai/chai.js:1610:25)
|
||||||
at ./tasks/transform_conformance/fixtures/oxc/babel-plugin-transform-class-properties-test-fixtures-private-field-resolve-to-method-in-computed-key-exec.test.js:87:33
|
at ./tasks/transform_conformance/fixtures/oxc/babel-plugin-transform-class-properties-test-fixtures-private-field-resolve-to-method-in-computed-key-exec.test.js:96:33
|
||||||
|
|
||||||
./fixtures/oxc/babel-plugin-transform-class-properties-test-fixtures-static-super-tagged-template-exec.test.js
|
./fixtures/oxc/babel-plugin-transform-class-properties-test-fixtures-static-super-tagged-template-exec.test.js
|
||||||
AssertionError: expected undefined to be [Function C] // Object.is equality
|
AssertionError: expected undefined to be [Function C] // Object.is equality
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue