oxc/crates
overlookmotel 5a13714a18
perf(parser): faster lexing template strings (#2541)
Speed up lexing template strings.

This was the last use of `AutoCow` remaining in the lexer, and it's now removed.

Implementation is quite complex, to avoid repeatedly branching on whether an unescaped string is required or not (the way `AutoCow` did). I tried to simplify it down to a single function, but this hurt performance significantly.

Benchmarks do not show much movement, but I believe that's because there aren't many template strings in the benchmarks. Where there are template strings, I believe this speeds up lexing them significantly.
2024-02-29 13:28:30 +08:00
..
oxc Publish crates v0.8.0 2024-02-26 19:01:51 +08:00
oxc_allocator Publish crates v0.8.0 2024-02-26 19:01:51 +08:00
oxc_ast feat(ast): add "abstract" type to MethodDefinition and PropertyDefinition (#2536) 2024-02-28 17:33:11 +08:00
oxc_cli feat(cli,linter): provide tsconfig path from the cli (#2526) 2024-02-27 20:00:11 +08:00
oxc_codegen feat(ast): add "abstract" type to MethodDefinition and PropertyDefinition (#2536) 2024-02-28 17:33:11 +08:00
oxc_diagnostics Publish crates v0.8.0 2024-02-26 19:01:51 +08:00
oxc_index Publish crates v0.8.0 2024-02-26 19:01:51 +08:00
oxc_js_regex [BREAKING CHANGE] Change Atom to Atom<'a> to make it safe (#2497) 2024-02-26 19:34:40 +08:00
oxc_language_server fix(vscode): incorrect diagnostic position (#2461) 2024-02-21 12:11:16 +08:00
oxc_linter feat(linter): remove all commonjs logic for import plugin (#2537) 2024-02-28 18:13:44 +08:00
oxc_macros feat(linter): remove the --timings feature (#2049) 2024-01-16 14:21:04 +08:00
oxc_minifier refactor(span): move base54 method to mangler (#2523) 2024-02-27 13:34:33 +08:00
oxc_parser perf(parser): faster lexing template strings (#2541) 2024-02-29 13:28:30 +08:00
oxc_prettier feat(ast): add "abstract" type to MethodDefinition and PropertyDefinition (#2536) 2024-02-28 17:33:11 +08:00
oxc_semantic feat(linter): remove all commonjs logic for import plugin (#2537) 2024-02-28 18:13:44 +08:00
oxc_span refactor(span): remove AtomImpl (#2525) 2024-02-27 13:45:58 +08:00
oxc_syntax feat(linter): remove all commonjs logic for import plugin (#2537) 2024-02-28 18:13:44 +08:00
oxc_transformer feat(ast): add "abstract" type to MethodDefinition and PropertyDefinition (#2536) 2024-02-28 17:33:11 +08:00
oxc_wasm feat(wasm): call build module record when symbol is true (#2533) 2024-02-28 14:47:34 +08:00