diff options
author | Gus Caplan <me@gus.host> | 2019-09-16 16:05:20 -0500 |
---|---|---|
committer | Gus Caplan <me@gus.host> | 2019-09-18 16:09:20 -0500 |
commit | 1ec4154e507ba71d7aefca0a6e5c155be34e989a (patch) | |
tree | bbfbdcae6ecf134be8b21534f1d5c6795b5356a7 /src/api | |
parent | 954bf56c1e9a4a1c195114f61d9b0fe39c80ca2e (diff) | |
download | node-new-1ec4154e507ba71d7aefca0a6e5c155be34e989a.tar.gz |
src: re-delete Atomics.wake
PR-URL: https://github.com/nodejs/node/pull/29586
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: David Carlier <devnexen@gmail.com>
Diffstat (limited to 'src/api')
-rw-r--r-- | src/api/environment.cc | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/api/environment.cc b/src/api/environment.cc index 7fd219d6e8..2c0fe13063 100644 --- a/src/api/environment.cc +++ b/src/api/environment.cc @@ -357,9 +357,42 @@ Local<Context> NewContext(Isolate* isolate, if (!InitializeContext(context)) { return Local<Context>(); } + + InitializeContextRuntime(context); + return context; } +// This runs at runtime, regardless of whether the context +// is created from a snapshot. +void InitializeContextRuntime(Local<Context> context) { + Isolate* isolate = context->GetIsolate(); + HandleScope handle_scope(isolate); + + // Delete `Intl.v8BreakIterator` + // https://github.com/nodejs/node/issues/14909 + Local<String> intl_string = FIXED_ONE_BYTE_STRING(isolate, "Intl"); + Local<String> break_iter_string = + FIXED_ONE_BYTE_STRING(isolate, "v8BreakIterator"); + Local<Value> intl_v; + if (context->Global()->Get(context, intl_string).ToLocal(&intl_v) && + intl_v->IsObject()) { + Local<Object> intl = intl_v.As<Object>(); + intl->Delete(context, break_iter_string).FromJust(); + } + + // Delete `Atomics.wake` + // https://github.com/nodejs/node/issues/21219 + Local<String> atomics_string = FIXED_ONE_BYTE_STRING(isolate, "Atomics"); + Local<String> wake_string = FIXED_ONE_BYTE_STRING(isolate, "wake"); + Local<Value> atomics_v; + if (context->Global()->Get(context, atomics_string).ToLocal(&atomics_v) && + atomics_v->IsObject()) { + Local<Object> atomics = atomics_v.As<Object>(); + atomics->Delete(context, wake_string).FromJust(); + } +} + bool InitializeContext(Local<Context> context) { Isolate* isolate = context->GetIsolate(); HandleScope handle_scope(isolate); @@ -386,7 +419,6 @@ bool InitializeContext(Local<Context> context) { } static const char* context_files[] = {"internal/per_context/primordials", - "internal/per_context/setup", "internal/per_context/domexception", nullptr}; |