[package]

name = "esprit"
version = "0.0.5"
authors = ["Dave Herman <dherman@mozilla.com>"]
license = "MIT"
description = "An ECMAScript parser library."
documentation = "https://esprit.surge.sh"
homepage = "https://esprit.surge.sh"
repository = "https://github.com/dherman/esprit"
exclude = ["tests/build/**/*"]

[dependencies]
serde = "0.8"
serde_json = "0.8"
tristate = "0.1.1"
unjson = { version = "0.0.5", path = "crates/unjson" }
joker = { version = "0.0.5", path = "crates/joker" }
easter = { version = "0.0.5", path = "crates/easter" }
estree = { version = "0.0.5", path = "crates/estree" }

[dev-dependencies]
rustc-test = "0.1"
glob = "0.2"

[[test]]
name = "parser-test"
harness = false

[[bench]]
name = "parser-bench"
harness = false
test = true

[workspace]
# Implicitly crawled from dependencies.*.path

[package]

name = "esprit"
version = "0.0.5"
authors = ["Dave Herman <dherman@mozilla.com>"]
license = "MIT"
description = "An ECMAScript parser library."
documentation = "https://esprit.surge.sh"
homepage = "https://esprit.surge.sh"
repository = "https://github.com/dherman/esprit"
exclude = ["tests/build/**/*"]

[dependencies]
serde = "0.8"
serde_json = "0.8"
tristate = "0.1.1"
unjson = { version = "0.0.5", path = "crates/unjson" }
joker = { version = "0.0.5", path = "crates/joker" }
easter = { version = "0.0.5", path = "crates/easter" }
estree = { version = "0.0.5", path = "crates/estree" }

[dev-dependencies]
rustc-test = "0.1"
glob = "0.2"

[[test]]
name = "parser-test"
harness = false

[profile.bench]
# It makes little sense to run cross-crate benchmarks w/o lto
# (difference is significant)
lto = true

[[bench]]
name = "parser-bench"
harness = false
test = true

[workspace]
# Implicitly crawled from dependencies.*.path

Add LTO to benchmark profile
Add LTO to benchmark profile

Turns out by default Rust won’t try any optimisations across crates
unless you manually specify each exported function with #[inline]
in which case it will be added to crate metadata.

Simpler alternative which involves less churn is to just use LTO for
final executable.
