mirror of
https://github.com/electron/electron.git
synced 2026-05-02 03:00:22 -04:00
* chore: bump node in DEPS to v24.15.0 * fix(patch): adapt V8 sandboxed pointers for buffer kMaxLength Upstream replaced the hardcoded buffer length limit with a runtime kMaxLength variable, making the patch's regex workaround for sandbox vs non-sandbox limits unnecessary. Dropped the test-buffer-concat.js hunk. Ref: https://github.com/nodejs/node/pull/61721 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(patch): adapt deprecated GetIsolate for upstream refactors Upstream removed Uint32ToName from node_contextify.cc and node_webstorage.cc, and renamed LookupAndCompile to LookupAndCompileFunction in node_builtins.cc. Updated the GetIsolate deprecation patch to match. Ref: https://github.com/nodejs/node/pull/60846 Ref: https://github.com/nodejs/node/pull/60518 * chore: remove upstreamed patch The fix_generate_config_gypi_needs_to_generate_valid_json patch applied with "No changes -- Patch already applied", confirming the fix has been incorporated upstream. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * node#60518: src: build v8 tick processor as built-in source text modules Upstream restructured BuiltinLoader to auto-detect parameters by source type, removing the custom parameters overload. Added a new LookupAndCompileFunction overload for embedder scripts and updated node_util.cc to use it. Also suppressed exit-time-destructors warning from builtin_info.h in node_includes.h. Ref: https://github.com/nodejs/node/pull/60518 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(patch): add LookupAndCompileFunction overload for embedder scripts Ref: https://github.com/nodejs/node/pull/60518 * fix(patch): stop using v8::PropertyCallbackInfo<T>::This() in sqlite Ref: https://github.com/nodejs/node/issues/60616 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(patch): adapt new crypto tests for BoringSSL Guard aes-128-ccm test in test-crypto-authenticated.js behind cipher availability check. Skip Ed448/X448/DSA tests in test-crypto-key-objects-raw.js. Skip AES-KW tests in test-webcrypto-promise-prototype-pollution.mjs. Ref: https://github.com/nodejs/node/pull/62240 Ref: https://github.com/nodejs/node/pull/62455 * fix(patch): guard DH key test for BoringSSL BoringSSL does not support loading DH private keys from PEM, causing createPrivateKey to throw UNSUPPORTED_ALGORITHM. Ref: https://github.com/nodejs/node/pull/62240 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(patch): correct thenable snapshot for Chromium V8 The snapshot used `*` wildcards which don't match the actual output. Regenerated with NODE_REGENERATE_SNAPSHOTS=1 to capture the correct concrete frame + <node-internal-frames> output. Ref: https://chromium-review.googlesource.com/c/v8/v8/+/6826001 * fix(patch): GN build files for new merve dep Ref: https://github.com/nodejs/node/pull/61984 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(patch): adapt fileExists patch to resolve.js module reorg Ref: https://github.com/nodejs/node/pull/61769 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore: update patches (trivial only) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
950 lines
45 KiB
Diff
950 lines
45 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: deepak1556 <hop2deep@gmail.com>
|
|
Date: Mon, 1 Sep 2025 03:13:53 +0900
|
|
Subject: Remove deprecated `GetIsolate`
|
|
|
|
https://chromium-review.googlesource.com/c/v8/v8/+/6905244
|
|
|
|
diff --git a/src/api/environment.cc b/src/api/environment.cc
|
|
index ec1496467f5071a810a3d7a76d80f3d12a8582dc..6873a9f203ccace7d5c501b62bed56732332d060 100644
|
|
--- a/src/api/environment.cc
|
|
+++ b/src/api/environment.cc
|
|
@@ -795,7 +795,7 @@ std::unique_ptr<MultiIsolatePlatform> MultiIsolatePlatform::Create(
|
|
|
|
MaybeLocal<Object> GetPerContextExports(Local<Context> context,
|
|
IsolateData* isolate_data) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
EscapableHandleScope handle_scope(isolate);
|
|
|
|
Local<Object> global = context->Global();
|
|
@@ -841,7 +841,7 @@ void ProtoThrower(const FunctionCallbackInfo<Value>& info) {
|
|
// This runs at runtime, regardless of whether the context
|
|
// is created from a snapshot.
|
|
Maybe<void> InitializeContextRuntime(Local<Context> context) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
HandleScope handle_scope(isolate);
|
|
|
|
// When `IsCodeGenerationFromStringsAllowed` is true, V8 takes the fast path
|
|
@@ -920,7 +920,7 @@ Maybe<void> InitializeContextRuntime(Local<Context> context) {
|
|
}
|
|
|
|
Maybe<void> InitializeBaseContextForSnapshot(Local<Context> context) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
HandleScope handle_scope(isolate);
|
|
|
|
// Delete `Intl.v8BreakIterator`
|
|
@@ -945,7 +945,7 @@ Maybe<void> InitializeBaseContextForSnapshot(Local<Context> context) {
|
|
}
|
|
|
|
Maybe<void> InitializeMainContextForSnapshot(Local<Context> context) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
HandleScope handle_scope(isolate);
|
|
|
|
// Initialize the default values.
|
|
@@ -963,7 +963,7 @@ Maybe<void> InitializeMainContextForSnapshot(Local<Context> context) {
|
|
MaybeLocal<Object> InitializePrivateSymbols(Local<Context> context,
|
|
IsolateData* isolate_data) {
|
|
CHECK(isolate_data);
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
EscapableHandleScope scope(isolate);
|
|
Context::Scope context_scope(context);
|
|
|
|
@@ -987,7 +987,7 @@ MaybeLocal<Object> InitializePrivateSymbols(Local<Context> context,
|
|
MaybeLocal<Object> InitializePerIsolateSymbols(Local<Context> context,
|
|
IsolateData* isolate_data) {
|
|
CHECK(isolate_data);
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
EscapableHandleScope scope(isolate);
|
|
Context::Scope context_scope(context);
|
|
|
|
@@ -1013,7 +1013,7 @@ MaybeLocal<Object> InitializePerIsolateSymbols(Local<Context> context,
|
|
Maybe<void> InitializePrimordials(Local<Context> context,
|
|
IsolateData* isolate_data) {
|
|
// Run per-context JS files.
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
Context::Scope context_scope(context);
|
|
Local<Object> exports;
|
|
|
|
diff --git a/src/base_object-inl.h b/src/base_object-inl.h
|
|
index cc60ddddb037e0279615bbe24821eb20fd8da677..37d83e41b618a07aca98118260abe9618f11256d 100644
|
|
--- a/src/base_object-inl.h
|
|
+++ b/src/base_object-inl.h
|
|
@@ -55,7 +55,6 @@ v8::Local<v8::Object> BaseObject::object() const {
|
|
v8::Local<v8::Object> BaseObject::object(v8::Isolate* isolate) const {
|
|
v8::Local<v8::Object> handle = object();
|
|
|
|
- DCHECK_EQ(handle->GetCreationContextChecked()->GetIsolate(), isolate);
|
|
DCHECK_EQ(env()->isolate(), isolate);
|
|
|
|
return handle;
|
|
diff --git a/src/crypto/crypto_context.cc b/src/crypto/crypto_context.cc
|
|
index cb586936a904e7b9a017732e993a35ef1115ff9a..fd2dfa9fcf444fe705a2d42cd0963531cea9a74c 100644
|
|
--- a/src/crypto/crypto_context.cc
|
|
+++ b/src/crypto/crypto_context.cc
|
|
@@ -1045,7 +1045,7 @@ bool ArrayOfStringsToX509s(Local<Context> context,
|
|
Local<Array> cert_array,
|
|
std::vector<X509*>* certs) {
|
|
ClearErrorOnReturn clear_error_on_return;
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
Environment* env = Environment::GetCurrent(context);
|
|
uint32_t array_length = cert_array->Length();
|
|
|
|
diff --git a/src/crypto/crypto_x509.cc b/src/crypto/crypto_x509.cc
|
|
index 6b7e4211a8969351168fc982fe3466a2096bed3a..76c84dd516719849a44e7d67f42ea16dd315b190 100644
|
|
--- a/src/crypto/crypto_x509.cc
|
|
+++ b/src/crypto/crypto_x509.cc
|
|
@@ -109,7 +109,7 @@ MaybeLocal<Value> ToV8Value(Local<Context> context, BIOPointer&& bio) {
|
|
if (!mem) [[unlikely]]
|
|
return {};
|
|
Local<Value> ret;
|
|
- if (!String::NewFromUtf8(context->GetIsolate(),
|
|
+ if (!String::NewFromUtf8(Isolate::GetCurrent(),
|
|
mem->data,
|
|
NewStringType::kNormal,
|
|
mem->length)
|
|
@@ -125,7 +125,7 @@ MaybeLocal<Value> ToV8Value(Local<Context> context, const BIOPointer& bio) {
|
|
if (!mem) [[unlikely]]
|
|
return {};
|
|
Local<Value> ret;
|
|
- if (!String::NewFromUtf8(context->GetIsolate(),
|
|
+ if (!String::NewFromUtf8(Isolate::GetCurrent(),
|
|
mem->data,
|
|
NewStringType::kNormal,
|
|
mem->length)
|
|
diff --git a/src/encoding_binding.cc b/src/encoding_binding.cc
|
|
index 6fe4f0492dc1f3eaf576c8ff7866080a54cb81c1..41e8e052ff81df78ece87163b0499966cc2ed1b9 100644
|
|
--- a/src/encoding_binding.cc
|
|
+++ b/src/encoding_binding.cc
|
|
@@ -76,7 +76,7 @@ void BindingData::Deserialize(Local<Context> context,
|
|
int index,
|
|
InternalFieldInfoBase* info) {
|
|
DCHECK_IS_SNAPSHOT_SLOT(index);
|
|
- HandleScope scope(context->GetIsolate());
|
|
+ HandleScope scope(Isolate::GetCurrent());
|
|
Realm* realm = Realm::GetCurrent(context);
|
|
// Recreate the buffer in the constructor.
|
|
InternalFieldInfo* casted_info = static_cast<InternalFieldInfo*>(info);
|
|
diff --git a/src/env.cc b/src/env.cc
|
|
index 82aee7e38bbd859e1a76eedcc3a51278a1b3a793..a09603573c02466c0d25431fe6168ca33ee4692e 100644
|
|
--- a/src/env.cc
|
|
+++ b/src/env.cc
|
|
@@ -1764,10 +1764,10 @@ void AsyncHooks::Deserialize(Local<Context> context) {
|
|
context->GetDataFromSnapshotOnce<Array>(
|
|
info_->js_execution_async_resources).ToLocalChecked();
|
|
} else {
|
|
- js_execution_async_resources = Array::New(context->GetIsolate());
|
|
+ js_execution_async_resources = Array::New(Isolate::GetCurrent());
|
|
}
|
|
js_execution_async_resources_.Reset(
|
|
- context->GetIsolate(), js_execution_async_resources);
|
|
+ Isolate::GetCurrent(), js_execution_async_resources);
|
|
|
|
// The native_execution_async_resources_ field requires v8::Local<> instances
|
|
// for async calls whose resources were on the stack as JS objects when they
|
|
@@ -1807,7 +1807,7 @@ AsyncHooks::SerializeInfo AsyncHooks::Serialize(Local<Context> context,
|
|
info.async_id_fields = async_id_fields_.Serialize(context, creator);
|
|
if (!js_execution_async_resources_.IsEmpty()) {
|
|
info.js_execution_async_resources = creator->AddData(
|
|
- context, js_execution_async_resources_.Get(context->GetIsolate()));
|
|
+ context, js_execution_async_resources_.Get(Isolate::GetCurrent()));
|
|
CHECK_NE(info.js_execution_async_resources, 0);
|
|
} else {
|
|
info.js_execution_async_resources = 0;
|
|
diff --git a/src/inspector/network_agent.cc b/src/inspector/network_agent.cc
|
|
index aacd4e8cb83c88649537ab5d9e1ce752ea5b87a8..a47ea86adb9da081a125b6590bcd96f43053d44b 100644
|
|
--- a/src/inspector/network_agent.cc
|
|
+++ b/src/inspector/network_agent.cc
|
|
@@ -31,31 +31,31 @@ constexpr size_t kDefaultMaxTotalBufferSize = 100 * 1024 * 1024; // 100MB
|
|
Maybe<protocol::String> ObjectGetProtocolString(v8::Local<v8::Context> context,
|
|
Local<Object> object,
|
|
Local<v8::String> property) {
|
|
- HandleScope handle_scope(context->GetIsolate());
|
|
+ HandleScope handle_scope(v8::Isolate::GetCurrent());
|
|
Local<Value> value;
|
|
if (!object->Get(context, property).ToLocal(&value) || !value->IsString()) {
|
|
return Nothing<protocol::String>();
|
|
}
|
|
Local<v8::String> str = value.As<v8::String>();
|
|
- return Just(ToProtocolString(context->GetIsolate(), str));
|
|
+ return Just(ToProtocolString(v8::Isolate::GetCurrent(), str));
|
|
}
|
|
|
|
// Get a protocol string property from the object.
|
|
Maybe<protocol::String> ObjectGetProtocolString(v8::Local<v8::Context> context,
|
|
Local<Object> object,
|
|
const char* property) {
|
|
- HandleScope handle_scope(context->GetIsolate());
|
|
+ HandleScope handle_scope(v8::Isolate::GetCurrent());
|
|
return ObjectGetProtocolString(
|
|
- context, object, OneByteString(context->GetIsolate(), property));
|
|
+ context, object, OneByteString(v8::Isolate::GetCurrent(), property));
|
|
}
|
|
|
|
// Get a protocol double property from the object.
|
|
Maybe<double> ObjectGetDouble(v8::Local<v8::Context> context,
|
|
Local<Object> object,
|
|
const char* property) {
|
|
- HandleScope handle_scope(context->GetIsolate());
|
|
+ HandleScope handle_scope(v8::Isolate::GetCurrent());
|
|
Local<Value> value;
|
|
- if (!object->Get(context, OneByteString(context->GetIsolate(), property))
|
|
+ if (!object->Get(context, OneByteString(v8::Isolate::GetCurrent(), property))
|
|
.ToLocal(&value) ||
|
|
!value->IsNumber()) {
|
|
return Nothing<double>();
|
|
@@ -67,9 +67,9 @@ Maybe<double> ObjectGetDouble(v8::Local<v8::Context> context,
|
|
Maybe<int> ObjectGetInt(v8::Local<v8::Context> context,
|
|
Local<Object> object,
|
|
const char* property) {
|
|
- HandleScope handle_scope(context->GetIsolate());
|
|
+ HandleScope handle_scope(v8::Isolate::GetCurrent());
|
|
Local<Value> value;
|
|
- if (!object->Get(context, OneByteString(context->GetIsolate(), property))
|
|
+ if (!object->Get(context, OneByteString(v8::Isolate::GetCurrent(), property))
|
|
.ToLocal(&value) ||
|
|
!value->IsInt32()) {
|
|
return Nothing<int>();
|
|
@@ -81,9 +81,9 @@ Maybe<int> ObjectGetInt(v8::Local<v8::Context> context,
|
|
Maybe<bool> ObjectGetBool(v8::Local<v8::Context> context,
|
|
Local<Object> object,
|
|
const char* property) {
|
|
- HandleScope handle_scope(context->GetIsolate());
|
|
+ HandleScope handle_scope(v8::Isolate::GetCurrent());
|
|
Local<Value> value;
|
|
- if (!object->Get(context, OneByteString(context->GetIsolate(), property))
|
|
+ if (!object->Get(context, OneByteString(v8::Isolate::GetCurrent(), property))
|
|
.ToLocal(&value) ||
|
|
!value->IsBoolean()) {
|
|
return Nothing<bool>();
|
|
@@ -95,9 +95,9 @@ Maybe<bool> ObjectGetBool(v8::Local<v8::Context> context,
|
|
MaybeLocal<v8::Object> ObjectGetObject(v8::Local<v8::Context> context,
|
|
Local<Object> object,
|
|
const char* property) {
|
|
- EscapableHandleScope handle_scope(context->GetIsolate());
|
|
+ EscapableHandleScope handle_scope(v8::Isolate::GetCurrent());
|
|
Local<Value> value;
|
|
- if (!object->Get(context, OneByteString(context->GetIsolate(), property))
|
|
+ if (!object->Get(context, OneByteString(v8::Isolate::GetCurrent(), property))
|
|
.ToLocal(&value) ||
|
|
!value->IsObject()) {
|
|
return {};
|
|
@@ -108,7 +108,7 @@ MaybeLocal<v8::Object> ObjectGetObject(v8::Local<v8::Context> context,
|
|
// Create a protocol::Network::Headers from the v8 object.
|
|
std::unique_ptr<protocol::Network::Headers> createHeadersFromObject(
|
|
v8::Local<v8::Context> context, Local<Object> headers_obj) {
|
|
- HandleScope handle_scope(context->GetIsolate());
|
|
+ HandleScope handle_scope(v8::Isolate::GetCurrent());
|
|
|
|
std::unique_ptr<protocol::DictionaryValue> dict =
|
|
protocol::DictionaryValue::create();
|
|
@@ -129,7 +129,7 @@ std::unique_ptr<protocol::Network::Headers> createHeadersFromObject(
|
|
.To(&property_value)) {
|
|
return {};
|
|
}
|
|
- dict->setString(ToProtocolString(context->GetIsolate(), property_name),
|
|
+ dict->setString(ToProtocolString(v8::Isolate::GetCurrent(), property_name),
|
|
property_value);
|
|
}
|
|
|
|
@@ -139,7 +139,7 @@ std::unique_ptr<protocol::Network::Headers> createHeadersFromObject(
|
|
// Create a protocol::Network::Request from the v8 object.
|
|
std::unique_ptr<protocol::Network::Request> createRequestFromObject(
|
|
v8::Local<v8::Context> context, Local<Object> request) {
|
|
- HandleScope handle_scope(context->GetIsolate());
|
|
+ HandleScope handle_scope(v8::Isolate::GetCurrent());
|
|
protocol::String url;
|
|
if (!ObjectGetProtocolString(context, request, "url").To(&url)) {
|
|
return {};
|
|
@@ -171,7 +171,7 @@ std::unique_ptr<protocol::Network::Request> createRequestFromObject(
|
|
// Create a protocol::Network::Response from the v8 object.
|
|
std::unique_ptr<protocol::Network::Response> createResponseFromObject(
|
|
v8::Local<v8::Context> context, Local<Object> response) {
|
|
- HandleScope handle_scope(context->GetIsolate());
|
|
+ HandleScope handle_scope(v8::Isolate::GetCurrent());
|
|
protocol::String url;
|
|
if (!ObjectGetProtocolString(context, response, "url").To(&url)) {
|
|
return {};
|
|
@@ -212,7 +212,7 @@ std::unique_ptr<protocol::Network::Response> createResponseFromObject(
|
|
|
|
std::unique_ptr<protocol::Network::WebSocketResponse> createWebSocketResponse(
|
|
v8::Local<v8::Context> context, Local<Object> response) {
|
|
- HandleScope handle_scope(context->GetIsolate());
|
|
+ HandleScope handle_scope(v8::Isolate::GetCurrent());
|
|
int status;
|
|
if (!ObjectGetInt(context, response, "status").To(&status)) {
|
|
return {};
|
|
diff --git a/src/js_native_api_v8.h b/src/js_native_api_v8.h
|
|
index 27aeac589b19cd681923fb848ce5f36c66fc05e2..5f2900869763f40cac54e3cb3fe2e24eda615410 100644
|
|
--- a/src/js_native_api_v8.h
|
|
+++ b/src/js_native_api_v8.h
|
|
@@ -53,7 +53,7 @@ class RefTracker {
|
|
struct napi_env__ {
|
|
explicit napi_env__(v8::Local<v8::Context> context,
|
|
int32_t module_api_version)
|
|
- : isolate(context->GetIsolate()),
|
|
+ : isolate(v8::Isolate::GetCurrent()),
|
|
context_persistent(isolate, context),
|
|
module_api_version(module_api_version) {
|
|
napi_clear_last_error(this);
|
|
diff --git a/src/module_wrap.cc b/src/module_wrap.cc
|
|
index 52483740bb377a2bc2a16af701615d9a4e448eae..84d17a46efe146c1794a43963c41a4461eacfca2 100644
|
|
--- a/src/module_wrap.cc
|
|
+++ b/src/module_wrap.cc
|
|
@@ -99,7 +99,7 @@ ModuleCacheKey ModuleCacheKey::From(Local<Context> context,
|
|
Local<String> specifier,
|
|
Local<FixedArray> import_attributes) {
|
|
CHECK_EQ(import_attributes->Length() % elements_per_attribute, 0);
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
std::size_t h1 = specifier->GetIdentityHash();
|
|
size_t num_attributes = import_attributes->Length() / elements_per_attribute;
|
|
ImportAttributeVector attributes;
|
|
@@ -1022,7 +1022,7 @@ MaybeLocal<Module> ModuleWrap::ResolveModuleCallback(
|
|
return {};
|
|
}
|
|
DCHECK_NOT_NULL(resolved_module);
|
|
- return resolved_module->module_.Get(context->GetIsolate());
|
|
+ return resolved_module->module_.Get(Isolate::GetCurrent());
|
|
}
|
|
|
|
// static
|
|
@@ -1043,7 +1043,7 @@ MaybeLocal<Object> ModuleWrap::ResolveSourceCallback(
|
|
->GetInternalField(ModuleWrap::kModuleSourceObjectSlot)
|
|
.As<Value>();
|
|
if (module_source_object->IsUndefined()) {
|
|
- THROW_ERR_SOURCE_PHASE_NOT_DEFINED(context->GetIsolate(),
|
|
+ THROW_ERR_SOURCE_PHASE_NOT_DEFINED(Isolate::GetCurrent(),
|
|
resolved_module->url_);
|
|
return {};
|
|
}
|
|
@@ -1057,7 +1057,7 @@ Maybe<ModuleWrap*> ModuleWrap::ResolveModule(
|
|
Local<String> specifier,
|
|
Local<FixedArray> import_attributes,
|
|
Local<Module> referrer) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
Environment* env = Environment::GetCurrent(context);
|
|
if (env == nullptr) {
|
|
THROW_ERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLE(isolate);
|
|
@@ -1106,7 +1106,7 @@ MaybeLocal<Promise> ImportModuleDynamicallyWithPhase(
|
|
Local<String> specifier,
|
|
ModuleImportPhase phase,
|
|
Local<FixedArray> import_attributes) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
Environment* env = Environment::GetCurrent(context);
|
|
if (env == nullptr) {
|
|
THROW_ERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLE(isolate);
|
|
@@ -1348,7 +1348,7 @@ MaybeLocal<Module> LinkRequireFacadeWithOriginal(
|
|
Local<FixedArray> import_attributes,
|
|
Local<Module> referrer) {
|
|
Environment* env = Environment::GetCurrent(context);
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
CHECK(specifier->Equals(context, env->original_string()).ToChecked());
|
|
CHECK(!env->temporary_required_module_facade_original.IsEmpty());
|
|
return env->temporary_required_module_facade_original.Get(isolate);
|
|
diff --git a/src/node.h b/src/node.h
|
|
index 8aac774805a002f5af9e9aca62abc56e8f986bab..da87773ba7f0d38f04a7b3851d8a1a6df0eca489 100644
|
|
--- a/src/node.h
|
|
+++ b/src/node.h
|
|
@@ -1144,7 +1144,7 @@ NODE_DEPRECATED("Use v8::Date::ValueOf() directly",
|
|
|
|
#define NODE_DEFINE_CONSTANT(target, constant) \
|
|
do { \
|
|
- v8::Isolate* isolate = target->GetIsolate(); \
|
|
+ v8::Isolate* isolate = v8::Isolate::GetCurrent(); \
|
|
v8::Local<v8::Context> context = isolate->GetCurrentContext(); \
|
|
v8::Local<v8::String> constant_name = v8::String::NewFromUtf8Literal( \
|
|
isolate, #constant, v8::NewStringType::kInternalized); \
|
|
@@ -1160,7 +1160,7 @@ NODE_DEPRECATED("Use v8::Date::ValueOf() directly",
|
|
|
|
#define NODE_DEFINE_HIDDEN_CONSTANT(target, constant) \
|
|
do { \
|
|
- v8::Isolate* isolate = target->GetIsolate(); \
|
|
+ v8::Isolate* isolate = v8::Isolate::GetCurrent(); \
|
|
v8::Local<v8::Context> context = isolate->GetCurrentContext(); \
|
|
v8::Local<v8::String> constant_name = v8::String::NewFromUtf8Literal( \
|
|
isolate, #constant, v8::NewStringType::kInternalized); \
|
|
diff --git a/src/node_blob.cc b/src/node_blob.cc
|
|
index 40407527800075b6afec5b6c7d98de2c6229e85a..6371aad07beb8514ca2a3acfd30d7c68969e8e20 100644
|
|
--- a/src/node_blob.cc
|
|
+++ b/src/node_blob.cc
|
|
@@ -561,7 +561,7 @@ void BlobBindingData::Deserialize(Local<Context> context,
|
|
int index,
|
|
InternalFieldInfoBase* info) {
|
|
DCHECK_IS_SNAPSHOT_SLOT(index);
|
|
- HandleScope scope(context->GetIsolate());
|
|
+ HandleScope scope(Isolate::GetCurrent());
|
|
Realm* realm = Realm::GetCurrent(context);
|
|
BlobBindingData* binding = realm->AddBindingData<BlobBindingData>(holder);
|
|
CHECK_NOT_NULL(binding);
|
|
diff --git a/src/node_builtins.cc b/src/node_builtins.cc
|
|
index 7922f2f936f64cbb7bd08f0d367f66f0b9eb083b..04d76fdd3d170a7c501bd773b698d380b8bb2426 100644
|
|
--- a/src/node_builtins.cc
|
|
+++ b/src/node_builtins.cc
|
|
@@ -274,7 +274,7 @@ MaybeLocal<Data> BuiltinLoader::LookupAndCompile(
|
|
Local<Context> context,
|
|
const BuiltinSource* builtin_source,
|
|
Realm* optional_realm) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
EscapableHandleScope scope(isolate);
|
|
|
|
BuiltinCodeCacheData cached_data{};
|
|
@@ -442,7 +442,7 @@ void BuiltinLoader::SaveCodeCache(const std::string& id, Local<Data> data) {
|
|
|
|
MaybeLocal<Function> BuiltinLoader::LookupAndCompileFunction(
|
|
Local<Context> context, const char* id, Realm* optional_realm) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
LocalVector<String> parameters(isolate);
|
|
|
|
Local<Data> data;
|
|
@@ -483,7 +483,7 @@ MaybeLocal<Function> BuiltinLoader::LookupAndCompileFunction(
|
|
MaybeLocal<Value> BuiltinLoader::CompileAndCall(Local<Context> context,
|
|
const char* id,
|
|
Realm* realm) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
const BuiltinSource* builtin_source = LoadBuiltinSource(isolate, id);
|
|
if (builtin_source == nullptr) {
|
|
THROW_ERR_MODULE_NOT_FOUND(isolate, "Cannot find module %s", id);
|
|
@@ -555,7 +555,7 @@ MaybeLocal<Value> BuiltinLoader::CompileAndCallWith(Local<Context> context,
|
|
if (!maybe_fn.ToLocal(&fn)) {
|
|
return MaybeLocal<Value>();
|
|
}
|
|
- Local<Value> undefined = Undefined(context->GetIsolate());
|
|
+ Local<Value> undefined = Undefined(Isolate::GetCurrent());
|
|
return fn->Call(context, undefined, argc, argv);
|
|
}
|
|
|
|
@@ -579,14 +579,14 @@ bool BuiltinLoader::CompileAllBuiltinsAndCopyCodeCache(
|
|
to_eager_compile_.emplace(id);
|
|
}
|
|
|
|
- TryCatch bootstrapCatch(context->GetIsolate());
|
|
+ TryCatch bootstrapCatch(Isolate::GetCurrent());
|
|
auto data = LookupAndCompile(context, id.data(), nullptr);
|
|
if (bootstrapCatch.HasCaught()) {
|
|
per_process::Debug(DebugCategory::CODE_CACHE,
|
|
"Failed to compile code cache for %s\n",
|
|
id);
|
|
all_succeeded = false;
|
|
- PrintCaughtException(context->GetIsolate(), context, bootstrapCatch);
|
|
+ PrintCaughtException(Isolate::GetCurrent(), context, bootstrapCatch);
|
|
} else {
|
|
// This is used by the snapshot builder, so save the code cache
|
|
// unconditionally.
|
|
diff --git a/src/node_constants.cc b/src/node_constants.cc
|
|
index fea0426496978c0003fe1481afcf93fc9c23edca..c9588880d05435ab9f4e23fcff74c93309664270 100644
|
|
--- a/src/node_constants.cc
|
|
+++ b/src/node_constants.cc
|
|
@@ -1265,7 +1265,7 @@ void CreatePerContextProperties(Local<Object> target,
|
|
Local<Value> unused,
|
|
Local<Context> context,
|
|
void* priv) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
Environment* env = Environment::GetCurrent(context);
|
|
|
|
CHECK(
|
|
diff --git a/src/node_contextify.cc b/src/node_contextify.cc
|
|
index d3568da72a0f99419b4029b93d9eb1e9328d6bd5..cd8b64d58413914e72c32df6a2f192143e85ac46 100644
|
|
--- a/src/node_contextify.cc
|
|
+++ b/src/node_contextify.cc
|
|
@@ -108,6 +108,8 @@ using v8::Value;
|
|
// For every `set` of a global property, the interceptor callback defines or
|
|
// changes the property both on the sandbox and the global proxy.
|
|
|
|
+
|
|
+
|
|
ContextifyContext* ContextifyContext::New(Environment* env,
|
|
Local<Object> sandbox_obj,
|
|
ContextOptions* options) {
|
|
@@ -667,7 +669,7 @@ Intercepted ContextifyContext::PropertyDefinerCallback(
|
|
}
|
|
|
|
Local<Context> context = ctx->context();
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
|
|
PropertyAttribute attributes = PropertyAttribute::None;
|
|
bool is_declared =
|
|
@@ -1641,7 +1643,7 @@ static MaybeLocal<Function> CompileFunctionForCJSLoader(
|
|
bool* cache_rejected,
|
|
bool is_cjs_scope,
|
|
ScriptCompiler::CachedData* cached_data) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
EscapableHandleScope scope(isolate);
|
|
|
|
Local<Symbol> symbol = env->vm_dynamic_import_default_internal();
|
|
diff --git a/src/node_env_var.cc b/src/node_env_var.cc
|
|
index 5550a4bee3ce9ec8759d216335a9b2b96e20c96e..b38c2f75a92f2d6c1b9c6e7b7aca924653f7494d 100644
|
|
--- a/src/node_env_var.cc
|
|
+++ b/src/node_env_var.cc
|
|
@@ -311,7 +311,7 @@ std::shared_ptr<KVStore> KVStore::CreateMapKVStore() {
|
|
|
|
Maybe<void> KVStore::AssignFromObject(Local<Context> context,
|
|
Local<Object> entries) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
HandleScope handle_scope(isolate);
|
|
Local<Array> keys;
|
|
if (!entries->GetOwnPropertyNames(context).ToLocal(&keys))
|
|
diff --git a/src/node_errors.cc b/src/node_errors.cc
|
|
index c6404e00d04e61b675a8c4a02139b36da25bd2a8..ea90e6501bb58260f06d6720cc2fc4989752a347 100644
|
|
--- a/src/node_errors.cc
|
|
+++ b/src/node_errors.cc
|
|
@@ -629,7 +629,7 @@ v8::ModifyCodeGenerationFromStringsResult ModifyCodeGenerationFromStrings(
|
|
v8::Local<v8::Context> context,
|
|
v8::Local<v8::Value> source,
|
|
bool is_code_like) {
|
|
- HandleScope scope(context->GetIsolate());
|
|
+ HandleScope scope(Isolate::GetCurrent());
|
|
|
|
if (context->GetNumberOfEmbedderDataFields() <=
|
|
ContextEmbedderIndex::kAllowCodeGenerationFromStrings) {
|
|
@@ -1035,7 +1035,7 @@ const char* errno_string(int errorno) {
|
|
}
|
|
|
|
void PerIsolateMessageListener(Local<Message> message, Local<Value> error) {
|
|
- Isolate* isolate = message->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
switch (message->ErrorLevel()) {
|
|
case Isolate::MessageErrorLevel::kMessageWarning: {
|
|
Environment* env = Environment::GetCurrent(isolate);
|
|
@@ -1195,7 +1195,7 @@ void Initialize(Local<Object> target,
|
|
SetMethod(
|
|
context, target, "getErrorSourcePositions", GetErrorSourcePositions);
|
|
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
Local<Object> exit_codes = Object::New(isolate);
|
|
READONLY_PROPERTY(target, "exitCodes", exit_codes);
|
|
|
|
diff --git a/src/node_file.cc b/src/node_file.cc
|
|
index bf202f5e2bf5eaf2dd9192dfd701e621126c492c..56b6cd5c39d5e72efd24b7aba1f28dab91a6144e 100644
|
|
--- a/src/node_file.cc
|
|
+++ b/src/node_file.cc
|
|
@@ -3891,7 +3891,7 @@ void BindingData::Deserialize(Local<Context> context,
|
|
int index,
|
|
InternalFieldInfoBase* info) {
|
|
DCHECK_IS_SNAPSHOT_SLOT(index);
|
|
- HandleScope scope(context->GetIsolate());
|
|
+ HandleScope scope(Isolate::GetCurrent());
|
|
Realm* realm = Realm::GetCurrent(context);
|
|
InternalFieldInfo* casted_info = static_cast<InternalFieldInfo*>(info);
|
|
BindingData* binding =
|
|
diff --git a/src/node_messaging.cc b/src/node_messaging.cc
|
|
index 9ff675d23914aaa168de2f82b8509027de477cbf..76c934ccbc98737918c18a28e63df7eb759fed7c 100644
|
|
--- a/src/node_messaging.cc
|
|
+++ b/src/node_messaging.cc
|
|
@@ -254,7 +254,7 @@ namespace {
|
|
|
|
MaybeLocal<Function> GetEmitMessageFunction(Local<Context> context,
|
|
IsolateData* isolate_data) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
Local<Object> per_context_bindings;
|
|
Local<Value> emit_message_val;
|
|
if (!GetPerContextExports(context, isolate_data)
|
|
@@ -269,7 +269,7 @@ MaybeLocal<Function> GetEmitMessageFunction(Local<Context> context,
|
|
}
|
|
|
|
MaybeLocal<Function> GetDOMException(Local<Context> context) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
Local<Object> per_context_bindings;
|
|
Local<Value> domexception_ctor_val;
|
|
if (!GetPerContextExports(context).ToLocal(&per_context_bindings) ||
|
|
@@ -284,7 +284,7 @@ MaybeLocal<Function> GetDOMException(Local<Context> context) {
|
|
}
|
|
|
|
void ThrowDataCloneException(Local<Context> context, Local<String> message) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
Local<Value> argv[] = {message,
|
|
FIXED_ONE_BYTE_STRING(isolate, "DataCloneError")};
|
|
Local<Value> exception;
|
|
@@ -1477,7 +1477,7 @@ BaseObjectPtr<BaseObject> JSTransferable::Data::Deserialize(
|
|
|
|
Maybe<bool> JSTransferable::Data::FinalizeTransferWrite(
|
|
Local<Context> context, ValueSerializer* serializer) {
|
|
- HandleScope handle_scope(context->GetIsolate());
|
|
+ HandleScope handle_scope(Isolate::GetCurrent());
|
|
auto ret = serializer->WriteValue(context, PersistentToLocal::Strong(data_));
|
|
data_.Reset();
|
|
return ret;
|
|
diff --git a/src/node_modules.cc b/src/node_modules.cc
|
|
index ffc19850ac563082b14729e93d69695ef2c868f5..0cd351e7aff9e293e736e0aca22e67b577eb48eb 100644
|
|
--- a/src/node_modules.cc
|
|
+++ b/src/node_modules.cc
|
|
@@ -70,7 +70,7 @@ void BindingData::Deserialize(v8::Local<v8::Context> context,
|
|
int index,
|
|
InternalFieldInfoBase* info) {
|
|
DCHECK_IS_SNAPSHOT_SLOT(index);
|
|
- HandleScope scope(context->GetIsolate());
|
|
+ HandleScope scope(Isolate::GetCurrent());
|
|
Realm* realm = Realm::GetCurrent(context);
|
|
BindingData* binding = realm->AddBindingData<BindingData>(holder);
|
|
CHECK_NOT_NULL(binding);
|
|
@@ -750,7 +750,7 @@ void BindingData::CreatePerContextProperties(Local<Object> target,
|
|
Realm* realm = Realm::GetCurrent(context);
|
|
realm->AddBindingData<BindingData>(target);
|
|
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
LocalVector<Value> compile_cache_status_values(isolate);
|
|
|
|
#define V(status) \
|
|
diff --git a/src/node_process_methods.cc b/src/node_process_methods.cc
|
|
index 4a258e5f140994536386492059d64c9cf94ea0a6..67278974199db46fed85b443e7cdd30accd7687f 100644
|
|
--- a/src/node_process_methods.cc
|
|
+++ b/src/node_process_methods.cc
|
|
@@ -745,7 +745,7 @@ void BindingData::Deserialize(Local<Context> context,
|
|
int index,
|
|
InternalFieldInfoBase* info) {
|
|
DCHECK_IS_SNAPSHOT_SLOT(index);
|
|
- v8::HandleScope scope(context->GetIsolate());
|
|
+ v8::HandleScope scope(Isolate::GetCurrent());
|
|
Realm* realm = Realm::GetCurrent(context);
|
|
// Recreate the buffer in the constructor.
|
|
InternalFieldInfo* casted_info = static_cast<InternalFieldInfo*>(info);
|
|
diff --git a/src/node_realm.cc b/src/node_realm.cc
|
|
index 6d2e4eb641a8ffaacf4aebd3522008a285387a30..47bd7d9f19077ac7a558c73db5f51bdf8da291e7 100644
|
|
--- a/src/node_realm.cc
|
|
+++ b/src/node_realm.cc
|
|
@@ -22,7 +22,7 @@ using v8::String;
|
|
using v8::Value;
|
|
|
|
Realm::Realm(Environment* env, v8::Local<v8::Context> context, Kind kind)
|
|
- : env_(env), isolate_(context->GetIsolate()), kind_(kind) {
|
|
+ : env_(env), isolate_(v8::Isolate::GetCurrent()), kind_(kind) {
|
|
context_.Reset(isolate_, context);
|
|
env->AssignToContext(context, this, ContextInfo(""));
|
|
// The environment can also purge empty wrappers in the check callback,
|
|
diff --git a/src/node_report.cc b/src/node_report.cc
|
|
index ba2dd7e676bfdfe7da66a4a79db3c791a505c9a8..28e6cfac682e301b605c00c4ef2eaf01431f04e4 100644
|
|
--- a/src/node_report.cc
|
|
+++ b/src/node_report.cc
|
|
@@ -400,7 +400,7 @@ static void PrintJavaScriptErrorProperties(JSONWriter* writer,
|
|
if (!error.IsEmpty() && error->IsObject()) {
|
|
TryCatch try_catch(isolate);
|
|
Local<Object> error_obj = error.As<Object>();
|
|
- Local<Context> context = error_obj->GetIsolate()->GetCurrentContext();
|
|
+ Local<Context> context = Isolate::GetCurrent()->GetCurrentContext();
|
|
Local<Array> keys;
|
|
if (!error_obj->GetOwnPropertyNames(context).ToLocal(&keys)) {
|
|
return writer->json_objectend(); // the end of 'errorProperties'
|
|
diff --git a/src/node_snapshotable.cc b/src/node_snapshotable.cc
|
|
index 41b0773f4c37a016cfa55aff6bb03baf50905b32..c3e995adf437413fe956e45c2ccc704d8737de59 100644
|
|
--- a/src/node_snapshotable.cc
|
|
+++ b/src/node_snapshotable.cc
|
|
@@ -1675,7 +1675,7 @@ void BindingData::Deserialize(Local<Context> context,
|
|
int index,
|
|
InternalFieldInfoBase* info) {
|
|
DCHECK_IS_SNAPSHOT_SLOT(index);
|
|
- v8::HandleScope scope(context->GetIsolate());
|
|
+ v8::HandleScope scope(Isolate::GetCurrent());
|
|
Realm* realm = Realm::GetCurrent(context);
|
|
// Recreate the buffer in the constructor.
|
|
InternalFieldInfo* casted_info = static_cast<InternalFieldInfo*>(info);
|
|
diff --git a/src/node_sqlite.cc b/src/node_sqlite.cc
|
|
index d7c5bc5514044aa1ed39dd4e1c0cef346498c96f..91b80b4fb44c26e95503556064e7429b8cbf4639 100644
|
|
--- a/src/node_sqlite.cc
|
|
+++ b/src/node_sqlite.cc
|
|
@@ -2436,7 +2436,7 @@ bool StatementSync::BindParams(const FunctionCallbackInfo<Value>& args) {
|
|
|
|
if (args[0]->IsObject() && !args[0]->IsArrayBufferView()) {
|
|
Local<Object> obj = args[0].As<Object>();
|
|
- Local<Context> context = obj->GetIsolate()->GetCurrentContext();
|
|
+ Local<Context> context = Isolate::GetCurrent()->GetCurrentContext();
|
|
Local<Array> keys;
|
|
if (!obj->GetOwnPropertyNames(context).ToLocal(&keys)) {
|
|
return false;
|
|
diff --git a/src/node_task_queue.cc b/src/node_task_queue.cc
|
|
index d33ee3c26c111e53edf27e6368ca8f64ff30a349..f1c53c44f201b295888e7932c5e3e2b19cb9c319 100644
|
|
--- a/src/node_task_queue.cc
|
|
+++ b/src/node_task_queue.cc
|
|
@@ -48,7 +48,7 @@ void PromiseRejectCallback(PromiseRejectMessage message) {
|
|
static std::atomic<uint64_t> rejectionsHandledAfter{0};
|
|
|
|
Local<Promise> promise = message.GetPromise();
|
|
- Isolate* isolate = promise->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
PromiseRejectEvent event = message.GetEvent();
|
|
|
|
Environment* env = Environment::GetCurrent(isolate);
|
|
diff --git a/src/node_url.cc b/src/node_url.cc
|
|
index 9b676a0156ab8ef47f62627be953c23d4fcbf4f4..6294cd03667980e2ad23cae9e7961262369efb62 100644
|
|
--- a/src/node_url.cc
|
|
+++ b/src/node_url.cc
|
|
@@ -70,7 +70,7 @@ void BindingData::Deserialize(Local<Context> context,
|
|
int index,
|
|
InternalFieldInfoBase* info) {
|
|
DCHECK_IS_SNAPSHOT_SLOT(index);
|
|
- HandleScope scope(context->GetIsolate());
|
|
+ HandleScope scope(Isolate::GetCurrent());
|
|
Realm* realm = Realm::GetCurrent(context);
|
|
BindingData* binding = realm->AddBindingData<BindingData>(holder);
|
|
CHECK_NOT_NULL(binding);
|
|
diff --git a/src/node_v8.cc b/src/node_v8.cc
|
|
index 4ee452d5bc6b67da52e91d98531ac35a7af155c7..b226d6fe60f4fdf5a237c336b9101c5a974ce837 100644
|
|
--- a/src/node_v8.cc
|
|
+++ b/src/node_v8.cc
|
|
@@ -163,7 +163,7 @@ void BindingData::Deserialize(Local<Context> context,
|
|
int index,
|
|
InternalFieldInfoBase* info) {
|
|
DCHECK_IS_SNAPSHOT_SLOT(index);
|
|
- HandleScope scope(context->GetIsolate());
|
|
+ HandleScope scope(Isolate::GetCurrent());
|
|
Realm* realm = Realm::GetCurrent(context);
|
|
// Recreate the buffer in the constructor.
|
|
InternalFieldInfo* casted_info = static_cast<InternalFieldInfo*>(info);
|
|
diff --git a/src/node_wasi.cc b/src/node_wasi.cc
|
|
index 370221d3cddc201180260ecb3a222bc831c91093..f5aff2f65fe6b9f48cf970ab3e7c57cfe4885f85 100644
|
|
--- a/src/node_wasi.cc
|
|
+++ b/src/node_wasi.cc
|
|
@@ -50,7 +50,7 @@ using v8::WasmMemoryObject;
|
|
static MaybeLocal<Value> WASIException(Local<Context> context,
|
|
int errorno,
|
|
const char* syscall) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
Environment* env = Environment::GetCurrent(context);
|
|
CHECK_NOT_NULL(env);
|
|
const char* err_name = uvwasi_embedder_err_code_to_string(errorno);
|
|
@@ -275,8 +275,8 @@ R WASI::WasiFunction<FT, F, R, Args...>::FastCallback(
|
|
return EinvalError<R>();
|
|
}
|
|
|
|
- Isolate* isolate = receiver->GetIsolate();
|
|
- HandleScope scope(isolate);
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
+ HandleScope handle_scope(isolate);
|
|
if (wasi->memory_.IsEmpty()) {
|
|
THROW_ERR_WASI_NOT_STARTED(isolate);
|
|
return EinvalError<R>();
|
|
diff --git a/src/node_webstorage.cc b/src/node_webstorage.cc
|
|
index 013322e8fb6cb76074326c2a45a04eb0f8e133f1..0a169a8dcf27eeb5b5b0c1b00ac8b79ed43d551b 100644
|
|
--- a/src/node_webstorage.cc
|
|
+++ b/src/node_webstorage.cc
|
|
@@ -56,7 +56,7 @@ using v8::Value;
|
|
} while (0)
|
|
|
|
static void ThrowQuotaExceededException(Local<Context> context) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
auto dom_exception_str = FIXED_ONE_BYTE_STRING(isolate, "DOMException");
|
|
auto err_name = FIXED_ONE_BYTE_STRING(isolate, "QuotaExceededError");
|
|
auto err_message =
|
|
@@ -435,6 +435,8 @@ Maybe<void> Storage::Store(Local<Name> key, Local<Value> value) {
|
|
return JustVoid();
|
|
}
|
|
|
|
+
|
|
+
|
|
static void Clear(const FunctionCallbackInfo<Value>& info) {
|
|
Storage* storage;
|
|
ASSIGN_OR_RETURN_UNWRAP(&storage, info.This());
|
|
diff --git a/src/node_worker.cc b/src/node_worker.cc
|
|
index a2631a96371becb0f4ea4f47a52313f4f02477da..4866c7ff589825d41fe84786ed8f9b3fccd3d1b7 100644
|
|
--- a/src/node_worker.cc
|
|
+++ b/src/node_worker.cc
|
|
@@ -1465,8 +1465,6 @@ void GetEnvMessagePort(const FunctionCallbackInfo<Value>& args) {
|
|
Local<Object> port = env->message_port();
|
|
CHECK_IMPLIES(!env->is_main_thread(), !port.IsEmpty());
|
|
if (!port.IsEmpty()) {
|
|
- CHECK_EQ(port->GetCreationContextChecked()->GetIsolate(),
|
|
- args.GetIsolate());
|
|
args.GetReturnValue().Set(port);
|
|
}
|
|
}
|
|
diff --git a/src/timers.cc b/src/timers.cc
|
|
index da4206187f7c7d2becb8a101c1ff5346a10e13f4..03f0910926f3d403121e227cee32a546b2394e04 100644
|
|
--- a/src/timers.cc
|
|
+++ b/src/timers.cc
|
|
@@ -114,7 +114,7 @@ void BindingData::Deserialize(Local<Context> context,
|
|
int index,
|
|
InternalFieldInfoBase* info) {
|
|
DCHECK_IS_SNAPSHOT_SLOT(index);
|
|
- v8::HandleScope scope(context->GetIsolate());
|
|
+ v8::HandleScope scope(Isolate::GetCurrent());
|
|
Realm* realm = Realm::GetCurrent(context);
|
|
// Recreate the buffer in the constructor.
|
|
BindingData* binding = realm->AddBindingData<BindingData>(holder);
|
|
diff --git a/src/util-inl.h b/src/util-inl.h
|
|
index f42c7b1250d1eb2e4d9f8e10c5ea9a9ca310924b..d59e30a635b08b97d255ed2e5540a66db54b068f 100644
|
|
--- a/src/util-inl.h
|
|
+++ b/src/util-inl.h
|
|
@@ -337,14 +337,14 @@ v8::Maybe<void> FromV8Array(v8::Local<v8::Context> context,
|
|
std::vector<v8::Global<v8::Value>>* out) {
|
|
uint32_t count = js_array->Length();
|
|
out->reserve(count);
|
|
- ArrayIterationData data{out, context->GetIsolate()};
|
|
+ ArrayIterationData data{out, v8::Isolate::GetCurrent()};
|
|
return js_array->Iterate(context, PushItemToVector, &data);
|
|
}
|
|
|
|
v8::MaybeLocal<v8::Value> ToV8Value(v8::Local<v8::Context> context,
|
|
std::string_view str,
|
|
v8::Isolate* isolate) {
|
|
- if (isolate == nullptr) isolate = context->GetIsolate();
|
|
+ if (isolate == nullptr) isolate = v8::Isolate::GetCurrent();
|
|
if (str.size() >= static_cast<size_t>(v8::String::kMaxLength)) [[unlikely]] {
|
|
// V8 only has a TODO comment about adding an exception when the maximum
|
|
// string size is exceeded.
|
|
@@ -360,7 +360,7 @@ v8::MaybeLocal<v8::Value> ToV8Value(v8::Local<v8::Context> context,
|
|
v8::MaybeLocal<v8::Value> ToV8Value(v8::Local<v8::Context> context,
|
|
std::u16string_view str,
|
|
v8::Isolate* isolate) {
|
|
- if (isolate == nullptr) isolate = context->GetIsolate();
|
|
+ if (isolate == nullptr) isolate = v8::Isolate::GetCurrent();
|
|
if (str.length() >= static_cast<size_t>(v8::String::kMaxLength))
|
|
[[unlikely]] {
|
|
// V8 only has a TODO comment about adding an exception when the maximum
|
|
@@ -380,7 +380,7 @@ v8::MaybeLocal<v8::Value> ToV8Value(v8::Local<v8::Context> context,
|
|
v8::MaybeLocal<v8::Value> ToV8Value(v8::Local<v8::Context> context,
|
|
v8_inspector::StringView str,
|
|
v8::Isolate* isolate) {
|
|
- if (isolate == nullptr) isolate = context->GetIsolate();
|
|
+ if (isolate == nullptr) isolate = v8::Isolate::GetCurrent();
|
|
if (str.length() >= static_cast<size_t>(v8::String::kMaxLength))
|
|
[[unlikely]] {
|
|
// V8 only has a TODO comment about adding an exception when the maximum
|
|
@@ -407,7 +407,7 @@ template <typename T>
|
|
v8::MaybeLocal<v8::Value> ToV8Value(v8::Local<v8::Context> context,
|
|
const std::vector<T>& vec,
|
|
v8::Isolate* isolate) {
|
|
- if (isolate == nullptr) isolate = context->GetIsolate();
|
|
+ if (isolate == nullptr) isolate = v8::Isolate::GetCurrent();
|
|
v8::EscapableHandleScope handle_scope(isolate);
|
|
|
|
MaybeStackBuffer<v8::Local<v8::Value>, 128> arr(vec.size());
|
|
@@ -424,7 +424,7 @@ template <typename T>
|
|
v8::MaybeLocal<v8::Value> ToV8Value(v8::Local<v8::Context> context,
|
|
const std::set<T>& set,
|
|
v8::Isolate* isolate) {
|
|
- if (isolate == nullptr) isolate = context->GetIsolate();
|
|
+ if (isolate == nullptr) isolate = v8::Isolate::GetCurrent();
|
|
v8::Local<v8::Set> set_js = v8::Set::New(isolate);
|
|
v8::HandleScope handle_scope(isolate);
|
|
|
|
@@ -443,7 +443,7 @@ template <typename T, std::size_t U>
|
|
v8::MaybeLocal<v8::Value> ToV8Value(v8::Local<v8::Context> context,
|
|
const std::ranges::elements_view<T, U>& vec,
|
|
v8::Isolate* isolate) {
|
|
- if (isolate == nullptr) isolate = context->GetIsolate();
|
|
+ if (isolate == nullptr) isolate = v8::Isolate::GetCurrent();
|
|
v8::EscapableHandleScope handle_scope(isolate);
|
|
|
|
MaybeStackBuffer<v8::Local<v8::Value>, 128> arr(vec.size());
|
|
@@ -462,7 +462,7 @@ template <typename T, typename U>
|
|
v8::MaybeLocal<v8::Value> ToV8Value(v8::Local<v8::Context> context,
|
|
const std::unordered_map<T, U>& map,
|
|
v8::Isolate* isolate) {
|
|
- if (isolate == nullptr) isolate = context->GetIsolate();
|
|
+ if (isolate == nullptr) isolate = v8::Isolate::GetCurrent();
|
|
v8::EscapableHandleScope handle_scope(isolate);
|
|
|
|
v8::Local<v8::Map> ret = v8::Map::New(isolate);
|
|
@@ -505,7 +505,7 @@ template <typename T, typename>
|
|
v8::MaybeLocal<v8::Value> ToV8Value(v8::Local<v8::Context> context,
|
|
const T& number,
|
|
v8::Isolate* isolate) {
|
|
- if (isolate == nullptr) isolate = context->GetIsolate();
|
|
+ if (isolate == nullptr) isolate = v8::Isolate::GetCurrent();
|
|
return ConvertNumberToV8Value(isolate, number);
|
|
}
|
|
|
|
@@ -518,7 +518,7 @@ v8::Local<v8::Array> ToV8ValuePrimitiveArray(v8::Local<v8::Context> context,
|
|
std::is_floating_point_v<T>,
|
|
"Only primitive types (bool, integral, floating-point) are supported.");
|
|
|
|
- if (isolate == nullptr) isolate = context->GetIsolate();
|
|
+ if (isolate == nullptr) isolate = v8::Isolate::GetCurrent();
|
|
v8::EscapableHandleScope handle_scope(isolate);
|
|
|
|
v8::LocalVector<v8::Value> elements(isolate);
|
|
@@ -811,7 +811,7 @@ inline v8::MaybeLocal<v8::Object> NewDictionaryInstanceNullProto(
|
|
if (value.IsEmpty()) return v8::MaybeLocal<v8::Object>();
|
|
}
|
|
v8::Local<v8::Object> obj = tmpl->NewInstance(context, property_values);
|
|
- if (obj->SetPrototypeV2(context, v8::Null(context->GetIsolate()))
|
|
+ if (obj->SetPrototypeV2(context, v8::Null(v8::Isolate::GetCurrent()))
|
|
.IsNothing()) {
|
|
return v8::MaybeLocal<v8::Object>();
|
|
}
|
|
diff --git a/src/util.cc b/src/util.cc
|
|
index 660cfff6b8a0c583be843e555e7a06cd09e0d279..c4b39450c5b7f91c46f7027db367c30db34927bb 100644
|
|
--- a/src/util.cc
|
|
+++ b/src/util.cc
|
|
@@ -391,7 +391,7 @@ void SetMethod(Local<v8::Context> context,
|
|
Local<v8::Object> that,
|
|
const std::string_view name,
|
|
v8::FunctionCallback callback) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
Local<v8::Function> function =
|
|
NewFunctionTemplate(isolate,
|
|
callback,
|
|
@@ -452,7 +452,7 @@ void SetFastMethod(Local<v8::Context> context,
|
|
const std::string_view name,
|
|
v8::FunctionCallback slow_callback,
|
|
const v8::CFunction* c_function) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
Local<v8::Function> function =
|
|
NewFunctionTemplate(isolate,
|
|
slow_callback,
|
|
@@ -474,7 +474,7 @@ void SetFastMethodNoSideEffect(Local<v8::Context> context,
|
|
const std::string_view name,
|
|
v8::FunctionCallback slow_callback,
|
|
const v8::CFunction* c_function) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
Local<v8::Function> function =
|
|
NewFunctionTemplate(isolate,
|
|
slow_callback,
|
|
@@ -562,7 +562,7 @@ void SetMethodNoSideEffect(Local<v8::Context> context,
|
|
Local<v8::Object> that,
|
|
const std::string_view name,
|
|
v8::FunctionCallback callback) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
Local<v8::Function> function =
|
|
NewFunctionTemplate(isolate,
|
|
callback,
|
|
@@ -689,7 +689,7 @@ void SetConstructorFunction(Local<v8::Context> context,
|
|
const char* name,
|
|
Local<v8::FunctionTemplate> tmpl,
|
|
SetConstructorFunctionFlag flag) {
|
|
- Isolate* isolate = context->GetIsolate();
|
|
+ Isolate* isolate = Isolate::GetCurrent();
|
|
SetConstructorFunction(
|
|
context, that, OneByteString(isolate, name), tmpl, flag);
|
|
}
|
|
diff --git a/src/util.h b/src/util.h
|
|
index 51f0b6463ab6bc33aa4e66bd55e0ab3822840ab0..ee05fa017f48c5b03e7179d6fef39b6e32e488a5 100644
|
|
--- a/src/util.h
|
|
+++ b/src/util.h
|
|
@@ -753,7 +753,7 @@ inline v8::MaybeLocal<v8::Value> ToV8Value(
|
|
// Variation on NODE_DEFINE_CONSTANT that sets a String value.
|
|
#define NODE_DEFINE_STRING_CONSTANT(target, name, constant) \
|
|
do { \
|
|
- v8::Isolate* isolate = target->GetIsolate(); \
|
|
+ v8::Isolate* isolate = v8::Isolate::GetCurrent(); \
|
|
v8::Local<v8::String> constant_name = \
|
|
v8::String::NewFromUtf8(isolate, name).ToLocalChecked(); \
|
|
v8::Local<v8::String> constant_value = \
|