Skip to content
Open

v8 14.4 #1256

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
110 changes: 57 additions & 53 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ repository = "https://github.com/denoland/deno_core"
# Local dependencies
deno_ast = { version = "=0.49.0", features = ["transpiling"] }
deno_core = { version = "0.372.0", path = "./core" }
deno_core_icudata = "0.74.0"
deno_core_icudata = "0.77.0"
deno_core_testing = { path = "./testing" }
deno_error = { version = "0.7.0", features = ["serde_json", "serde", "url", "tokio"] }
deno_ops = { version = "0.248.0", path = "./ops" }
deno_unsync = "0.4.2"
serde_v8 = { version = "0.281.0", path = "./serde_v8" }
v8 = { version = "142.2.0", default-features = false }
v8 = { path = "../rusty_v8" }
Comment on lines +25 to +31
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, check the Cargo.toml file to see the actual v8 dependency configuration
cat Cargo.toml

Repository: denoland/deno_core

Length of output: 2483


🏁 Script executed:

# Search for setup.rs to verify ICU data configuration
fd setup.rs

Repository: denoland/deno_core

Length of output: 83


🏁 Script executed:

# Check repository structure for rusty_v8
ls -la ../ 2>/dev/null || echo "Parent directory not accessible in sandbox"
fd -t d rusty_v8

Repository: denoland/deno_core

Length of output: 593


🏁 Script executed:

# Search for CI/pipeline configuration files
fd -t f "(\.github|\.gitlab|circleci|\.circleci|azure-pipelines)" -x cat {}

Repository: denoland/deno_core

Length of output: 44


🏁 Script executed:

# Read setup.rs to verify set_common_data_77 reference
cat -n core/runtime/setup.rs | head -100

Repository: denoland/deno_core

Length of output: 4044


🏁 Script executed:

# Search for set_common_data reference in the codebase
rg "set_common_data" -A 2 -B 2

Repository: denoland/deno_core

Length of output: 290


🏁 Script executed:

# Check for .github/workflows or CI configuration
find .github -type f 2>/dev/null || echo "No .github directory found"

Repository: denoland/deno_core

Length of output: 633


🏁 Script executed:

# Search for CI or workflow references
rg "rusty_v8" -A 2 -B 2

Repository: denoland/deno_core

Length of output: 1907


🏁 Script executed:

# Check the main CI workflow to see how it handles the v8 dependency
cat -n .github/workflows/ci.yml | head -80

Repository: denoland/deno_core

Length of output: 4208


🏁 Script executed:

# Check ci-job.yml for dependency checkout strategy
cat -n .github/workflows/ci-job.yml | head -100

Repository: denoland/deno_core

Length of output: 3602


🏁 Script executed:

# Search for any error handling or documentation about rusty_v8 checkout requirements
rg "rusty_v8" --context=5

Repository: denoland/deno_core

Length of output: 4063


ICU bump is consistent; v8 path dependency requires ../rusty_v8 to be present

  • deno_core_icudata = "0.77.0" matches the switch to set_common_data_77 in core/runtime/setup.rs, so that part is correct.
  • Changing v8 to { path = "../rusty_v8" } assumes the workspace is checked out alongside rusty_v8. The CI workflow uses standard checkout which only fetches the current repository, not sibling directories. This will cause builds to fail with "No such file or directory … while loading dependency manifest" and makes publishing to crates.io impossible without additional configuration.

If this branch is meant only for a monorepo/dev setup, that's fine; otherwise you need to either restore a versioned v8 dependency, add CI logic to checkout rusty_v8, or configure a feature flag for path-based development.

🤖 Prompt for AI Agents
In Cargo.toml around lines 25 to 31, the v8 dependency was changed to a path
("../rusty_v8") which will break CI and publishing because sibling repo is not
checked out; either revert v8 to a versioned dependency (e.g. specify the
published crate version instead of a path), or add CI steps to checkout the
rusty_v8 repository into the expected ../rusty_v8 path, or gate the path
dependency behind a dev-only feature flag and use the published v8 on default to
ensure builds and crates.io publishing succeed.


anyhow = "1"
bencher = "0.1"
Expand Down
4 changes: 0 additions & 4 deletions core/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,6 @@ pub use crate::runtime::MODULE_MAP_SLOT_INDEX;
pub use crate::runtime::PollEventLoopOptions;
pub use crate::runtime::RuntimeOptions;
pub use crate::runtime::SharedArrayBufferStore;
pub use crate::runtime::V8_WRAPPER_OBJECT_INDEX;
pub use crate::runtime::V8_WRAPPER_TYPE_INDEX;
pub use crate::runtime::stats;

pub use crate::source_map::SourceMapData;
Expand Down Expand Up @@ -196,8 +194,6 @@ pub mod _ops {
pub use super::ops_metrics::dispatch_metrics_async;
pub use super::ops_metrics::dispatch_metrics_fast;
pub use super::ops_metrics::dispatch_metrics_slow;
pub use super::runtime::V8_WRAPPER_OBJECT_INDEX;
pub use super::runtime::V8_WRAPPER_TYPE_INDEX;
pub use super::runtime::ops::*;
pub use super::runtime::ops_rust_to_v8::*;
}
Expand Down
1 change: 1 addition & 0 deletions core/modules/map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -806,6 +806,7 @@ impl ModuleMap {
referrer_source_offset,
phase: match module_request.get_phase() {
v8::ModuleImportPhase::kEvaluation => ModuleImportPhase::Evaluation,
v8::ModuleImportPhase::kDefer => ModuleImportPhase::Evaluation,
v8::ModuleImportPhase::kSource => ModuleImportPhase::Source,
},
};
Expand Down
1 change: 1 addition & 0 deletions core/runtime/bindings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -704,6 +704,7 @@ pub fn host_import_module_with_phase_dynamically_callback<'s, 'i>(

let phase = match phase {
v8::ModuleImportPhase::kEvaluation => ModuleImportPhase::Evaluation,
v8::ModuleImportPhase::kDefer => ModuleImportPhase::Evaluation,
v8::ModuleImportPhase::kSource => ModuleImportPhase::Source,
};

Expand Down
3 changes: 0 additions & 3 deletions core/runtime/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@ pub mod v8_static_strings;
#[cfg(all(test, not(miri)))]
mod tests;

pub const V8_WRAPPER_TYPE_INDEX: i32 = 0;
pub const V8_WRAPPER_OBJECT_INDEX: i32 = 1;

pub use jsrealm::CONTEXT_STATE_SLOT_INDEX;
pub use jsrealm::ContextState;
pub(crate) use jsrealm::JsRealm;
Expand Down
11 changes: 2 additions & 9 deletions core/runtime/setup.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
// Copyright 2018-2025 the Deno authors. MIT license.

use crate::V8_WRAPPER_OBJECT_INDEX;
use crate::V8_WRAPPER_TYPE_INDEX;

use super::bindings;
use super::snapshot;
use super::snapshot::V8Snapshot;
Expand All @@ -20,7 +17,7 @@ fn v8_init(
) {
#[cfg(feature = "include_icu_data")]
{
v8::icu::set_common_data_74(deno_core_icudata::ICU_DATA).unwrap();
v8::icu::set_common_data_77(deno_core_icudata::ICU_DATA).unwrap();
}

let base_flags = concat!(
Expand Down Expand Up @@ -122,11 +119,7 @@ pub fn create_isolate(
external_refs: Cow<'static, [v8::ExternalReference]>,
) -> v8::OwnedIsolate {
let mut params = maybe_create_params
.unwrap_or_default()
.embedder_wrapper_type_info_offsets(
V8_WRAPPER_TYPE_INDEX,
V8_WRAPPER_OBJECT_INDEX,
);
.unwrap_or_default();
let mut isolate = if will_snapshot {
snapshot::create_snapshot_creator(
external_refs,
Expand Down
Loading