mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 12:19:15 +00:00
I expect small performance regression.
But managed to improve the following case from react.developmement.js
```
oxc main ❯ diff before.js after.js
670c670
< if (!(dispatcher !== null)) throw Error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.");
---
> if (dispatcher === null) throw Error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.");
```
|
||
|---|---|---|
| .. | ||
| 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 | ||
| semantic_babel.snap | ||
| semantic_misc.snap | ||
| semantic_test262.snap | ||
| semantic_typescript.snap | ||
| 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