[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"] intl = [ "boa_icu_provider/full", "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_casemapping", "dep:icu_list", "dep:icu_segmenter", "dep:writeable", "dep:sys-locale", "dep:yoke", "dep:zerofrom", ] fuzz = ["boa_ast/arbitrary", "boa_interner/arbitrary"] # Enable Boa's VM instruction flowgraph generator. flowgraph = [] # Enable Boa's VM instruction tracing. trace = [] # Enable Boa's additional ECMAScript features for web browsers. annex-b = ["boa_parser/annex-b"] [dependencies] boa_interner.workspace = true boa_gc = { workspace = true, features = [ "thinvec" ] } boa_profiler.workspace = true boa_macros.workspace = true boa_ast.workspace = true boa_parser.workspace = true boa_icu_provider.workspace = true serde = { version = "1.0.163", features = ["derive", "rc"] } serde_json = "1.0.96" rand = "0.8.5" num-traits = "0.2.15" regress = "0.6.0" rustc-hash = "1.1.0" num-bigint = { version = "0.4.3", features = ["serde"] } num-integer = "0.1.45" bitflags = "2.3.1" indexmap = "1.9.3" ryu-js = "0.2.2" chrono = { version = "0.4.24", default-features = false, features = ["clock", "std"] } fast-float = "0.2.0" once_cell = "1.17.2" tap = "1.0.1" sptr = "0.3.2" static_assertions = "1.1.0" thiserror = "1.0.40" dashmap = "5.4.0" num_enum = "0.6.1" pollster = "0.3.0" thin-vec = "0.2.12" itertools = { version = "0.10.5", default-features = false } icu_normalizer = "1.2.0" # intl deps icu_locid_transform = { version = "1.2.1", features = ["std", "serde"], optional = true } icu_locid = { version = "1.2.0", features = ["serde"], optional = true } icu_datetime = { version = "1.2.0", features = ["serde", "experimental"], optional = true } icu_calendar = { version = "1.2.0", optional = true } icu_collator = { version = "1.2.0", features = ["serde"], optional = true } icu_plurals = { version = "1.2.0", features = ["serde"], optional = true } icu_provider = { version = "1.2.0", optional = true } icu_list = { version = "1.2.0", features = ["serde"], optional = true } icu_casemapping = { version = "0.7.2", features = ["serde"], optional = true} icu_segmenter = { version = "1.2.1", features = ["serde"], optional = true } writeable = { version = "0.5.2", optional = true } yoke = { version = "0.7.1", optional = true } zerofrom = { version = "0.1.2", optional = true } sys-locale = { version = "0.3.0", optional = true } [dev-dependencies] criterion = "0.4.0" float-cmp = "0.9.0" indoc = "2.0.1" textwrap = "0.16.0" [target.x86_64-unknown-linux-gnu.dev-dependencies] jemallocator = "0.5.0" [lib] crate-type = ["cdylib", "lib"] name = "boa_engine" bench = false [[bench]] name = "full" harness = false