mirror of
https://github.com/oxc-project/oxc.git
synced 2026-11-04 10:29:58 +00:00
Compound assignments and updates to private methods call the method body while reading its value. For example, `this.#method ||= rhs()` calls `#method`, evaluates `rhs()` when the method returns `undefined`, and throws instead of returning the method function. Distinguish method reads from accessor getter calls when lowering assignments and updates. Method reads now return the function through the existing brand check. Regression coverage includes static and instance methods, all compound operators, prefix/postfix updates, failed brand checks, and receivers obtained from function calls. Validation: - 39 Rust unit/integration tests and 53 Node binding tests passed. - Clippy and Rust formatting checks passed. - Transform conformance adds one passing output fixture and one passing executable fixture; existing failures are unchanged. - Transformer coverage has no new failures against Test262, Babel, TypeScript, and local cases. - Cross-target probes passed at ES2021, ES2020, and ES2015. AI assistance was used to implement and test this change.
Transformation Conformance Test Runner
Execution
This test runner uses the transformation plugin test suite from the Babel repository.
Additional tests are in the tests directory.
The failing test cases are listed in:
To get started, run
cargo run -p oxc_transform_conformance
or watch for changes
just watch 'cargo run -p oxc_transform_conformance'
Options
--filter
To filter for a specific test case, apply the --filter path option, e.g.
cargo run -p oxc_transform_conformance -- --filter react/arrow-functions
--exec
The Babel test suite contains many exec.js files, which need to be executed by a runtime.
These tests are executed with Node.js and Vitest. Apply the --exec flag:
cargo run -p oxc_transform_conformance -- --exec
This is also available as:
just test-transform
The failing test cases are listed in: