|
|
|
[package]
|
|
|
|
name = "boa_engine"
|
|
|
|
keywords = ["javascript", "js", "compiler", "lexer", "parser"]
|
|
|
|
categories = ["parser-implementations", "compilers"]
|
|
|
|
readme = "../README.md"
|
|
|
|
description.workspace = true
|
|
|
|
version.workspace = true
|
|
|
|
edition.workspace = true
|
|
|
|
authors.workspace = true
|
|
|
|
license.workspace = true
|
|
|
|
repository.workspace = true
|
|
|
|
rust-version.workspace = true
|
|
|
|
|
|
|
|
[features]
|
|
|
|
profiler = ["boa_profiler/profiler"]
|
|
|
|
deser = ["boa_interner/serde", "boa_ast/serde"]
|
|
|
|
|
|
|
|
# Enables the `Intl` builtin object and bundles a default ICU4X data provider.
|
|
|
|
# Prefer this over `intl` if you just want to enable `Intl` without dealing with the
|
|
|
|
# generation of ICU4X data.
|
|
|
|
intl_bundled = ["intl", "dep:boa_icu_provider"]
|
|
|
|
|
|
|
|
# Enables Boa's `Intl` builtin implementation.
|
|
|
|
# Prefer this over `intl_bundled` if you want to reduce the size of the final binary
|
|
|
|
# by providing a smaller ICU4X data provider.
|
|
|
|
intl = [
|
|
|
|
"boa_gc/icu",
|
|
|
|
"icu_normalizer/serde",
|
|
|
|
"icu_normalizer/std",
|
|
|
|
"dep:icu_locid_transform",
|
|
|
|
"dep:icu_locid",
|
|
|
|
"dep:icu_datetime",
|
|
|
|
"dep:icu_plurals",
|
|
|
|
"dep:icu_provider",
|
|
|
|
"dep:icu_calendar",
|
|
|
|
"dep:icu_collator",
|
|
|
|
"dep:icu_casemap",
|
|
|
|
"dep:icu_list",
|
|
|
|
"dep:icu_segmenter",
|
|
|
|
"dep:icu_decimal",
|
|
|
|
"dep:writeable",
|
|
|
|
"dep:sys-locale",
|
|
|
|
"dep:yoke",
|
|
|
|
"dep:zerofrom",
|
|
|
|
"dep:fixed_decimal",
|
|
|
|
"dep:tinystr",
|
|
|
|
]
|
|
|
|
|
|
|
|
fuzz = ["boa_ast/arbitrary", "boa_interner/arbitrary"]
|
|
|
|
|
|
|
|
# Enable Boa's VM instruction flowgraph generator.
|
|
|
|
flowgraph = []
|
|
|
|
|
|
|
|
# Enable Boa's VM instruction tracing.
|
|
|
|
trace = ["js"]
|
|
|
|
|
|
|
|
# Enable Boa's additional ECMAScript features for web browsers.
|
|
|
|
annex-b = ["boa_parser/annex-b"]
|
|
|
|
|
|
|
|
# Enable Boa's Temporal proposal implementation
|
|
|
|
temporal = ["dep:icu_calendar", "dep:temporal_rs"]
|
|
|
|
|
|
|
|
# Enable experimental features, like Stage 3 proposals.
|
|
|
|
experimental = ["temporal"]
|
|
|
|
|
|
|
|
# Enable binding to JS APIs for system related utilities.
|
|
|
|
js = ["dep:web-time"]
|
|
|
|
|
|
|
|
[dependencies]
|
|
|
|
boa_interner.workspace = true
|
|
|
|
boa_gc = { workspace = true, features = [ "thin-vec" ] }
|
|
|
|
boa_profiler.workspace = true
|
|
|
|
boa_macros.workspace = true
|
|
|
|
boa_ast.workspace = true
|
|
|
|
boa_parser.workspace = true
|
|
|
|
serde = { workspace = true, features = ["derive", "rc"] }
|
|
|
|
serde_json.workspace = true
|
|
|
|
rand = "0.8.5"
|
|
|
|
num-traits.workspace = true
|
|
|
|
regress.workspace = true
|
|
|
|
rustc-hash = { workspace = true, features = ["std"] }
|
|
|
|
num-bigint = { workspace = true, features = ["serde"] }
|
|
|
|
num-integer = "0.1.46"
|
|
|
|
bitflags.workspace = true
|
|
|
|
indexmap = { workspace = true, features = ["std"] }
|
|
|
|
ryu-js = "1.0.1"
|
|
|
|
fast-float.workspace = true
|
|
|
|
once_cell = { workspace = true, features = ["std"] }
|
|
|
|
tap = "1.0.1"
|
|
|
|
sptr = "0.3.2"
|
|
|
|
static_assertions.workspace = true
|
|
|
|
thiserror = "1.0.57"
|
|
|
|
dashmap = "5.5.3"
|
|
|
|
num_enum = "0.7.2"
|
|
|
|
pollster.workspace = true
|
|
|
|
thin-vec.workspace = true
|
|
|
|
itertools = { version = "0.12.1", default-features = false }
|
|
|
|
icu_normalizer = { workspace = true, features = ["compiled_data"] }
|
|
|
|
paste = "1.0"
|
|
|
|
portable-atomic = "1.6.0"
|
|
|
|
bytemuck = { version = "1.14.3", features = ["derive"] }
|
|
|
|
arrayvec = "0.7.4"
|
|
|
|
intrusive-collections = "0.9.6"
|
|
|
|
cfg-if = "1.0.0"
|
|
|
|
time.workspace = true
|
|
|
|
hashbrown.workspace = true
|
|
|
|
|
|
|
|
# intl deps
|
|
|
|
boa_icu_provider = {workspace = true, features = ["std"], optional = true }
|
|
|
|
sys-locale = { version = "0.3.1", optional = true }
|
|
|
|
icu_provider = { workspace = true, optional = true }
|
|
|
|
icu_locid = { workspace = true, features = ["serde"], optional = true }
|
|
|
|
icu_locid_transform = { workspace = true, default-features = false, features = ["std", "serde"], optional = true }
|
|
|
|
icu_datetime = { workspace = true, default-features = false, features = ["serde", "experimental"], optional = true }
|
|
|
|
icu_calendar = { workspace = true, default-features = false, optional = true }
|
|
|
|
icu_collator = { workspace = true, default-features = false, features = ["serde"], optional = true }
|
|
|
|
icu_plurals = { workspace = true, default-features = false, features = ["serde", "experimental"], optional = true }
|
|
|
|
icu_list = { workspace = true, default-features = false, features = ["serde"], optional = true }
|
|
|
|
icu_casemap = { workspace = true, default-features = false, features = ["serde"], optional = true}
|
|
|
|
icu_segmenter = { workspace = true, default-features = false, features = ["auto", "serde"], optional = true }
|
|
|
|
icu_decimal = { workspace = true, default-features = false, features = ["serde"], optional = true }
|
|
|
|
writeable = { workspace = true, optional = true }
|
|
|
|
yoke = { workspace = true, optional = true }
|
|
|
|
zerofrom = { workspace = true, optional = true }
|
|
|
|
fixed_decimal = { workspace = true, features = ["ryu", "experimental"], optional = true }
|
|
|
|
tinystr = { workspace = true, optional = true }
|
|
|
|
|
|
|
|
# temporal deps
|
|
|
|
temporal_rs = { version = "0.0.2", optional = true }
|
|
|
|
|
|
|
|
[target.'cfg(all(target_family = "wasm", not(any(target_os = "emscripten", target_os = "wasi"))))'.dependencies]
|
|
|
|
web-time = { version = "1.1.0", optional = true }
|
|
|
|
|
|
|
|
[dev-dependencies]
|
|
|
|
criterion = "0.5.1"
|
|
|
|
float-cmp = "0.9.0"
|
|
|
|
indoc.workspace = true
|
|
|
|
textwrap.workspace = true
|
|
|
|
futures-lite = "2.2.0"
|
|
|
|
|
|
|
|
[target.x86_64-unknown-linux-gnu.dev-dependencies]
|
|
|
|
jemallocator = "0.5.4"
|
|
|
|
|
|
|
|
[lib]
|
|
|
|
crate-type = ["cdylib", "lib"]
|
|
|
|
name = "boa_engine"
|
|
|
|
bench = false
|
|
|
|
|
|
|
|
[[bench]]
|
|
|
|
name = "full"
|
|
|
|
harness = false
|
|
|
|
|
|
|
|
[lints]
|
|
|
|
workspace = true
|