mirror of
https://github.com/danbulant/oxc
synced 2026-05-24 20:32:10 +00:00
close: #4870 I added the `move_identifier_reference` and `move_member_expression` methods used to take ownership in `ast_builder_impl`. This way can let us get rid of `ast.copy`. Another possible approach is to add `get_expression_owner` to `SimpleAssignmentTarget` and a `get_inner_expression_owner` method to `Expression`. And add an `into_xxxxx` method for `inherit_variants` macro The implementation looks like this ```rs let Some(expression) = self.get_expression_owner() else { return; } match expr.get_inner_expression_owner() { Expression::Identifier(ident) => { *target = self.ctx.ast.simple_assignment_target_from_identifier_reference(ident); } inner_expr @ match_member_expression!(Expression) => { *target = SimpleAssignmentTarget::from( inner_expr.into_member_expression() ); } _ => (), } ``` |
||
|---|---|---|
| .. | ||
| misc | ||
| src | ||
| Cargo.toml | ||
| codegen_babel.snap | ||
| codegen_misc.snap | ||
| codegen_runtime_test262.snap | ||
| codegen_sourcemap.snap | ||
| codegen_test262.snap | ||
| codegen_typescript.snap | ||
| minifier_babel.snap | ||
| minifier_test262.snap | ||
| parser_babel.snap | ||
| parser_misc.snap | ||
| parser_test262.snap | ||
| parser_typescript.snap | ||
| prettier_babel.snap | ||
| prettier_misc.snap | ||
| prettier_test262.snap | ||
| prettier_typescript.snap | ||
| README.md | ||
| transformer_babel.snap | ||
| transformer_misc.snap | ||
| transformer_test262.snap | ||
| transformer_typescript.snap | ||
| transpile.snap | ||
Coverage
Tools are tested against test262, babel and TypeScript for conformance.
Clone the test repositories beforehand:
just submodules
Development
# full run
cargo coverage
cargo coverage js # for test262
cargo coverage babel # for babel
cargo coverage ts # for typescript
# run in watch
cargo watch -x 'coverage js'
# filter for a file path
cargo watch -x 'coverage js --filter filter-file-path'
# find crash scene by turning off rayon and print out the test cases in serial
cargo coverage -- --debug
# Run after submodules are updated
UPDATE_SNAPSHOT=1 just c