From 1ec4154e507ba71d7aefca0a6e5c155be34e989a Mon Sep 17 00:00:00 2001 From: Gus Caplan Date: Mon, 16 Sep 2019 16:05:20 -0500 Subject: src: re-delete Atomics.wake PR-URL: https://github.com/nodejs/node/pull/29586 Reviewed-By: James M Snell Reviewed-By: Anna Henningsen Reviewed-By: Joyee Cheung Reviewed-By: Colin Ihrig Reviewed-By: David Carlier --- src/api/environment.cc | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'src/api') 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 NewContext(Isolate* isolate, if (!InitializeContext(context)) { return Local(); } + + InitializeContextRuntime(context); + return context; } +// This runs at runtime, regardless of whether the context +// is created from a snapshot. +void InitializeContextRuntime(Local context) { + Isolate* isolate = context->GetIsolate(); + HandleScope handle_scope(isolate); + + // Delete `Intl.v8BreakIterator` + // https://github.com/nodejs/node/issues/14909 + Local intl_string = FIXED_ONE_BYTE_STRING(isolate, "Intl"); + Local break_iter_string = + FIXED_ONE_BYTE_STRING(isolate, "v8BreakIterator"); + Local intl_v; + if (context->Global()->Get(context, intl_string).ToLocal(&intl_v) && + intl_v->IsObject()) { + Local intl = intl_v.As(); + intl->Delete(context, break_iter_string).FromJust(); + } + + // Delete `Atomics.wake` + // https://github.com/nodejs/node/issues/21219 + Local atomics_string = FIXED_ONE_BYTE_STRING(isolate, "Atomics"); + Local wake_string = FIXED_ONE_BYTE_STRING(isolate, "wake"); + Local atomics_v; + if (context->Global()->Get(context, atomics_string).ToLocal(&atomics_v) && + atomics_v->IsObject()) { + Local atomics = atomics_v.As(); + atomics->Delete(context, wake_string).FromJust(); + } +} + bool InitializeContext(Local context) { Isolate* isolate = context->GetIsolate(); HandleScope handle_scope(isolate); @@ -386,7 +419,6 @@ bool InitializeContext(Local context) { } static const char* context_files[] = {"internal/per_context/primordials", - "internal/per_context/setup", "internal/per_context/domexception", nullptr}; -- cgit v1.2.3