Skip to content

Commit b52a268

Browse files
legendecasjuanarbol
authored andcommittedMay 1, 2022
deps: V8: cherry-pick 367b0c1e7a32
Original commit message: [runtime] Change default scope info for SyntheticFunctionContexts This changes the default scope info for SyntheticFunctionContexts to the EmptyScopeInfo which does not contain an extension slot. The bug happened because, previously, the native context scope info was used as dummy. Change-Id: I4d6bf6918c11c79201d16bde99ed76800ad6f6c5 Bug: v8:10629 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2277806 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Victor Gomes <victorgomes@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#68636} Refs: v8/v8@367b0c1 PR-URL: #42637 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
1 parent 3d3d7ed commit b52a268

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed
 

‎common.gypi

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
# Reset this number to 0 on major V8 upgrades.
3838
# Increment by one for each non-official patch applied to deps/v8.
39-
'v8_embedder_string': '-node.85',
39+
'v8_embedder_string': '-node.86',
4040

4141
##### V8 defaults for Node.js #####
4242

‎deps/v8/src/codegen/code-stub-assembler.cc

+1-2
Original file line numberDiff line numberDiff line change
@@ -13088,8 +13088,7 @@ void CodeStubAssembler::InitializeSyntheticFunctionContext(
1308813088
SmiConstant(slots));
1308913089

1309013090
TNode<Context> context = CAST(context_heap_object);
13091-
const TNode<Object> empty_scope_info =
13092-
LoadContextElement(native_context, Context::SCOPE_INFO_INDEX);
13091+
const TNode<Object> empty_scope_info = LoadRoot(RootIndex::kEmptyScopeInfo);
1309313092
StoreContextElementNoWriteBarrier(context, Context::SCOPE_INFO_INDEX,
1309413093
empty_scope_info);
1309513094
StoreContextElementNoWriteBarrier(context, Context::PREVIOUS_INDEX,

‎deps/v8/test/cctest/test-code-stub-assembler.cc

+4-3
Original file line numberDiff line numberDiff line change
@@ -2566,7 +2566,7 @@ TEST(CreatePromiseResolvingFunctionsContext) {
25662566
ft.Call(isolate->factory()->undefined_value()).ToHandleChecked();
25672567
CHECK(result->IsContext());
25682568
Handle<Context> context_js = Handle<Context>::cast(result);
2569-
CHECK_EQ(isolate->native_context()->scope_info(), context_js->scope_info());
2569+
CHECK_EQ(isolate->root(RootIndex::kEmptyScopeInfo), context_js->scope_info());
25702570
CHECK_EQ(*isolate->native_context(), context_js->native_context());
25712571
CHECK(context_js->get(PromiseBuiltins::kPromiseSlot).IsJSPromise());
25722572
CHECK_EQ(ReadOnlyRoots(isolate).false_value(),
@@ -2724,7 +2724,7 @@ TEST(CreatePromiseGetCapabilitiesExecutorContext) {
27242724
CHECK(result_obj->IsContext());
27252725
Handle<Context> context_js = Handle<Context>::cast(result_obj);
27262726
CHECK_EQ(PromiseBuiltins::kCapabilitiesContextLength, context_js->length());
2727-
CHECK_EQ(isolate->native_context()->scope_info(), context_js->scope_info());
2727+
CHECK_EQ(isolate->root(RootIndex::kEmptyScopeInfo), context_js->scope_info());
27282728
CHECK_EQ(*isolate->native_context(), context_js->native_context());
27292729
CHECK(
27302730
context_js->get(PromiseBuiltins::kCapabilitySlot).IsPromiseCapability());
@@ -2773,7 +2773,8 @@ TEST(NewPromiseCapability) {
27732773

27742774
for (auto&& callback : callbacks) {
27752775
Handle<Context> context(Context::cast(callback->context()), isolate);
2776-
CHECK_EQ(isolate->native_context()->scope_info(), context->scope_info());
2776+
CHECK_EQ(isolate->root(RootIndex::kEmptyScopeInfo),
2777+
context->scope_info());
27772778
CHECK_EQ(*isolate->native_context(), context->native_context());
27782779
CHECK_EQ(PromiseBuiltins::kPromiseContextLength, context->length());
27792780
CHECK_EQ(context->get(PromiseBuiltins::kPromiseSlot), result->promise());

0 commit comments

Comments
 (0)
Please sign in to comment.