oxc/tasks/coverage
Dunqing 248a757b34 fix(transformer/typescript): typescript syntax within SimpleAssignmentTarget with MemberExpressions is not stripped (#4920)
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()
        );
    }
    _ => (),
}
```
2024-08-16 05:05:10 +00:00
..
misc fix(parser): fix enum member parsing (#4543) 2024-07-30 10:43:09 +00:00
src feat(coverage): add checker for correctness of semantic data (#4908) 2024-08-15 04:46:07 +00:00
Cargo.toml chore: turn off doctest for all [[bin]] 2024-07-14 16:55:19 +08:00
codegen_babel.snap chore: bump test262, babel and TypeScript submodules (#3644) 2024-06-12 18:42:32 +08:00
codegen_misc.snap fix(parser): fix enum member parsing (#4543) 2024-07-30 10:43:09 +00:00
codegen_runtime_test262.snap feat(codegen): improve codegen formatting (#3731) 2024-06-18 04:14:10 +00:00
codegen_sourcemap.snap feat(codegen): implement BinaryExpressionVisitor (#4548) 2024-07-31 12:44:19 +00:00
codegen_test262.snap chore: bump test262, babel and TypeScript submodules (#3644) 2024-06-12 18:42:32 +08:00
codegen_typescript.snap fix(codegen): print raw if value is number is Infinity (#4676) 2024-08-06 03:24:40 +00:00
minifier_babel.snap chore: bump test262, babel and TypeScript submodules (#3644) 2024-06-12 18:42:32 +08:00
minifier_test262.snap refactor(minifier): add NodeUtil trait for accessing symbols on ast nodes (#4734) 2024-08-08 02:48:25 +00:00
parser_babel.snap refactor(parser): use error codes for ts diagnostics (#4335) 2024-07-18 16:09:25 +00:00
parser_misc.snap fix(parser): parse assert keyword in TSImportAttributes (#4610) 2024-08-04 01:41:31 +00:00
parser_test262.snap refactor(parser): use error codes for ts diagnostics (#4335) 2024-07-18 16:09:25 +00:00
parser_typescript.snap feat(semantic): check for invalid interface heritage clauses (#4928) 2024-08-16 02:30:09 +00:00
prettier_babel.snap feat(parser): parse modifiers with parse_modifiers (take 2) (#3977) 2024-06-30 03:46:34 +00:00
prettier_misc.snap chore(coverage): add test for huge binary expression and nested if statements (#4084) 2024-07-08 00:15:26 +08:00
prettier_test262.snap feat(parser): parse modifiers with parse_modifiers (take 2) (#3977) 2024-06-30 03:46:34 +00:00
prettier_typescript.snap refactor(parser): use function instead of trait to parse list with rest element (#4028) 2024-07-02 13:43:14 +00:00
README.md chore: bump test262, babel and TypeScript submodules (#3644) 2024-06-12 18:42:32 +08:00
transformer_babel.snap feat(parser): parse modifiers with parse_modifiers (take 2) (#3977) 2024-06-30 03:46:34 +00:00
transformer_misc.snap fix(parser): fix enum member parsing (#4543) 2024-07-30 10:43:09 +00:00
transformer_test262.snap chore: bump test262, babel and TypeScript submodules (#3644) 2024-06-12 18:42:32 +08:00
transformer_typescript.snap fix(transformer/typescript): typescript syntax within SimpleAssignmentTarget with MemberExpressions is not stripped (#4920) 2024-08-16 05:05:10 +00:00
transpile.snap fix(codegen): print parenthesis properly (#4245) 2024-07-14 04:13:10 +00:00

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