mirror of
https://github.com/danbulant/oxc
synced 2026-05-25 12:51:57 +00:00
## 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) - perf(lexer): skip redundant utf8 check when parsing BigInts - refactor(lexer): remove `unsafe` usage (as per @overlookmotel's request [here](https://github.com/oxc-project/oxc/pull/3283#issuecomment-2111814598)) - test(lexer): add numeric parsing unit tests I don't expect this PR to have a large performance improvement, since the most common case (`Kind::Decimal`) is not affected. We could do this, however, by splitting `Kind::Decimal` into `Kind::DecimalFloat` and `Kind::DecimalInt` when the lexer encounters a `.`
44 lines
1.2 KiB
TOML
44 lines
1.2 KiB
TOML
[package]
|
|
name = "oxc_parser"
|
|
version = "0.13.0"
|
|
authors.workspace = true
|
|
description.workspace = true
|
|
edition.workspace = true
|
|
homepage.workspace = true
|
|
keywords.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
rust-version.workspace = true
|
|
categories.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[lib]
|
|
doctest = false
|
|
|
|
[dependencies]
|
|
oxc_allocator = { workspace = true }
|
|
oxc_span = { workspace = true }
|
|
oxc_ast = { workspace = true }
|
|
oxc_syntax = { workspace = true }
|
|
oxc_diagnostics = { workspace = true }
|
|
|
|
assert-unchecked = { workspace = true }
|
|
bitflags = { workspace = true }
|
|
num-bigint = { workspace = true }
|
|
num-traits = { workspace = true }
|
|
rustc-hash = { workspace = true }
|
|
seq-macro = { workspace = true }
|
|
static_assertions = { workspace = true }
|
|
|
|
memchr = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
oxc_ast = { workspace = true, features = ["serialize"] }
|
|
serde_json = { workspace = true }
|
|
ouroboros = { workspace = true } # for `multi-thread` example
|
|
|
|
[features]
|
|
# Expose Lexer for benchmarks
|
|
benchmarking = []
|