Commit c6ac334b authored by Toon Verwaest's avatar Toon Verwaest Committed by Commit Bot

[ic] Set JSGlobalObject to the default holder for LoadGlobal

BUG=v8:5561

Change-Id: I3f8bac0083e22066ee26f4bfeae5a16f81654a91
Reviewed-on: https://chromium-review.googlesource.com/458424Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44060}
parent b8f88601
...@@ -451,12 +451,8 @@ void AccessorAssembler::HandleLoadICProtoHandlerCase( ...@@ -451,12 +451,8 @@ void AccessorAssembler::HandleLoadICProtoHandlerCase(
{ {
Label load_from_cached_holder(this), done(this); Label load_from_cached_holder(this), done(this);
GotoIf(WordNotEqual(maybe_holder_cell, NullConstant()), Branch(WordEqual(maybe_holder_cell, NullConstant()), &done,
&load_from_cached_holder); &load_from_cached_holder);
{
var_holder->Bind(p->receiver);
Goto(&done);
}
Bind(&load_from_cached_holder); Bind(&load_from_cached_holder);
{ {
...@@ -553,7 +549,9 @@ void AccessorAssembler::HandleLoadGlobalICHandlerCase( ...@@ -553,7 +549,9 @@ void AccessorAssembler::HandleLoadGlobalICHandlerCase(
Node* native_context = LoadNativeContext(p.context); Node* native_context = LoadNativeContext(p.context);
p.receiver = LoadContextElement(native_context, Context::GLOBAL_PROXY_INDEX); p.receiver = LoadContextElement(native_context, Context::GLOBAL_PROXY_INDEX);
Variable var_holder(this, MachineRepresentation::kTagged); Variable var_holder(
this, MachineRepresentation::kTagged,
LoadContextElement(native_context, Context::EXTENSION_INDEX));
Variable var_smi_handler(this, MachineRepresentation::kTagged); Variable var_smi_handler(this, MachineRepresentation::kTagged);
Label if_smi_handler(this); Label if_smi_handler(this);
......
...@@ -1169,7 +1169,7 @@ Handle<Object> LoadIC::GetMapIndependentHandler(LookupIterator* lookup) { ...@@ -1169,7 +1169,7 @@ Handle<Object> LoadIC::GetMapIndependentHandler(LookupIterator* lookup) {
return LoadFullChain(map, holder_ref, lookup->name(), smi_handler); return LoadFullChain(map, holder_ref, lookup->name(), smi_handler);
} }
if (receiver_is_holder && !IsLoadGlobalIC()) { if (receiver_is_holder) {
DCHECK(map->has_named_interceptor()); DCHECK(map->has_named_interceptor());
TRACE_HANDLER_STATS(isolate(), LoadIC_LoadInterceptorDH); TRACE_HANDLER_STATS(isolate(), LoadIC_LoadInterceptorDH);
return smi_handler; return smi_handler;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment