1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-22 23:34:47 -05:00
denoland-deno/core/Cargo.toml
Nayeem Rahman ceb03cfb03
refactor(core): cleanup feature flags for js source inclusion (#19463)
Remove `ExtensionFileSourceCode::LoadedFromFsDuringSnapshot` and feature
`include_js_for_snapshotting` since they leak paths that are only
applicable in this repo to embedders. Replace with feature
`exclude_js_sources`. Additionally the feature
`force_include_js_sources` allows negating it, if both features are set.
We need both of these because features are additive and there must be a
way of force including sources for snapshot creation while still having
the `exclude_js_sources` feature. `force_include_js_sources` is only set
for build deps, so sources are still excluded from the final binary.

You can also specify `force_include_js_sources` on any extension to
override the above features for that extension. Towards #19398.

But there was still the snapshot-from-snapshot situation where code
could be executed twice, I addressed that by making `mod_evaluate()` and
scripts like `core/01_core.js` behave idempotently. This allowed
unifying `ext::init_ops()` and `ext::init_ops_and_esm()` into
`ext::init()`.
2023-06-13 09:45:06 -06:00

53 lines
1.6 KiB
TOML

# Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
[package]
name = "deno_core"
version = "0.190.0"
authors.workspace = true
edition.workspace = true
license.workspace = true
readme = "README.md"
repository.workspace = true
description = "A modern JavaScript/TypeScript runtime built with V8, Rust, and Tokio"
[lib]
path = "lib.rs"
[features]
default = ["v8_use_custom_libcxx"]
v8_use_custom_libcxx = ["v8/use_custom_libcxx"]
# Enable to exclude JS sources from the binary (e.g. if they are already snapshotted).
exclude_js_sources = []
# Enable to override `exclude_js_sources` (e.g. for snapshot creation in `build.rs`).
force_include_js_sources = ["exclude_js_sources"]
[dependencies]
anyhow.workspace = true
bytes.workspace = true
deno_ops.workspace = true
futures.workspace = true
# Stay on 1.6 to avoid a dependency cycle in ahash https://github.com/tkaitchuck/aHash/issues/95
# Projects not depending on ahash are unafected as cargo will pull any 1.X that is >= 1.6.
indexmap = "1.6"
libc.workspace = true
log.workspace = true
once_cell.workspace = true
parking_lot.workspace = true
pin-project.workspace = true
serde.workspace = true
serde_json = { workspace = true, features = ["preserve_order"] }
serde_v8.workspace = true
smallvec.workspace = true
sourcemap = "6.1"
tokio.workspace = true
url.workspace = true
v8.workspace = true
[[example]]
name = "http_bench_json_ops"
path = "examples/http_bench_json_ops/main.rs"
# These dependencies are only used for the 'http_bench_*_ops' examples.
[dev-dependencies]
deno_ast.workspace = true
deno_core = { workspace = true, features = ["force_include_js_sources"] }