oxc
oxc copied to clipboard
⚓ A collection of JavaScript tools written in Rust.
## What This PR Does - perf(lexer): use bit shifting when parsing hex, octal, and binary integers instead of `mul_add`-ing on `f64`s. Check out the difference in assembly generated [here](https://godbolt.org/z/zMEKaeYzh)...
#3283 made an optimization to the parser to avoid checking for `_`s in numeric literals twice, and got a nice 1% speed-up on parser benchmarks. It occurs to me that...

#3283 showed a mysterious 5% speed-up on lexer benchmarks (see https://github.com/oxc-project/oxc/pull/3283#issuecomment-2111835472). It's unclear what caused this, as the changes to the lexer in that PR actually make the lexer do...
### Why the lexer is slower than it needs to be Many of the simpler byte handlers in the lexer perform multiple branches. e.g. The handler for `=` which needs...
### Why the lexer is slower than it could be `Chars` iterator is really slow. Lexer should iterate byte-by-byte rather than char-by-char. In almost all cases, we're only matching against...
This is a continuation of * https://github.com/oxc-project/oxc/pull/2497 * https://github.com/oxc-project/oxc/issues/2295 Where the requirements are: Make our own version of `Atom
Personally I find the design of `ScopeFlags` confusing. It's also a bit bloated - we can pack more information into less bits. For example, presently we use separate bits for...
Currently `eslint.config.js` is not supported as tested by `bunx oxlint . --import-plugin --config=eslint.config.js` And got ``` ❯ bunx oxlint . --import-plugin --config=eslint.config.js × Failed to parse jsonc file "eslint.config.js" Invalid...
I had to nuke the build script and revert it back https://github.com/oxc-project/oxc/commit/6d63f99500c73d41ca2810ceff0e8ff8480e3285#diff-cb940282a3e680adf99d07ea6f52e94c5131d9e68153c8510abcecd6d166ceb9 https://github.com/oxc-project/oxc/commit/482dcc0aedf6b67800c5b7001a5d8d00854b1eec This is not urgent, but should be resolved before the next release, probably when transformer milestone 1...