diff options
Diffstat (limited to 'deps/v8/src/ic/accessor-assembler.cc')
-rw-r--r-- | deps/v8/src/ic/accessor-assembler.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/deps/v8/src/ic/accessor-assembler.cc b/deps/v8/src/ic/accessor-assembler.cc index d3731a74651..fb82a23c32f 100644 --- a/deps/v8/src/ic/accessor-assembler.cc +++ b/deps/v8/src/ic/accessor-assembler.cc @@ -208,7 +208,7 @@ void AccessorAssembler::HandleLoadAccessor( TNode<Foreign> foreign = LoadObjectField<Foreign>( call_handler_info, CallHandlerInfo::kJsCallbackOffset); TNode<RawPtrT> callback = - LoadObjectField<RawPtrT>(foreign, Foreign::kForeignAddressOffset); + DecodeExternalPointer(LoadForeignForeignAddress(foreign)); TNode<Object> data = LoadObjectField(call_handler_info, CallHandlerInfo::kDataOffset); @@ -1655,7 +1655,7 @@ void AccessorAssembler::HandleStoreICProtoHandler( TNode<Foreign> foreign = LoadObjectField<Foreign>( call_handler_info, CallHandlerInfo::kJsCallbackOffset); TNode<RawPtrT> callback = - LoadObjectField<RawPtrT>(foreign, Foreign::kForeignAddressOffset); + DecodeExternalPointer(LoadForeignForeignAddress(foreign)); TNode<Object> data = LoadObjectField(call_handler_info, CallHandlerInfo::kDataOffset); @@ -3654,6 +3654,9 @@ void AccessorAssembler::GenerateLoadIC_Megamorphic() { TVARIABLE(MaybeObject, var_handler); Label if_handler(this, &var_handler), miss(this, Label::kDeferred); + CSA_ASSERT(this, TaggedEqual(LoadFeedbackVectorSlot(CAST(vector), slot), + MegamorphicSymbolConstant())); + TryProbeStubCache(isolate()->load_stub_cache(), receiver, CAST(name), &if_handler, &var_handler, &miss); |