@@ -1308,8 +1308,7 @@ bool StoreIC::LookupForWrite(LookupIterator* it, Handle<Object> value,
1308
1308
case LookupIterator::INTERCEPTOR: {
1309
1309
Handle<JSObject> holder = it->GetHolder <JSObject>();
1310
1310
InterceptorInfo info = holder->GetNamedInterceptor ();
1311
- if ((it->HolderIsReceiverOrHiddenPrototype () &&
1312
- !info.non_masking ()) ||
1311
+ if (it->HolderIsReceiverOrHiddenPrototype () ||
1313
1312
!info.getter ().IsUndefined (isolate ()) ||
1314
1313
!info.query ().IsUndefined (isolate ())) {
1315
1314
return true ;
@@ -2718,23 +2717,20 @@ RUNTIME_FUNCTION(Runtime_LoadPropertyWithInterceptor) {
2718
2717
2719
2718
RUNTIME_FUNCTION (Runtime_StorePropertyWithInterceptor) {
2720
2719
HandleScope scope (isolate);
2721
- DCHECK_EQ (5 , args.length ());
2720
+ DCHECK_EQ (3 , args.length ());
2722
2721
// Runtime functions don't follow the IC's calling convention.
2723
2722
Handle<Object> value = args.at (0 );
2724
- Handle<Smi> slot = args.at <Smi>(1 );
2725
- Handle<FeedbackVector> vector = args.at <FeedbackVector>(2 );
2726
- Handle<JSObject> receiver = args.at <JSObject>(3 );
2727
- Handle<Name> name = args.at <Name>(4 );
2728
- FeedbackSlot vector_slot = FeedbackVector::ToSlot (slot->value ());
2723
+ Handle<JSObject> receiver = args.at <JSObject>(1 );
2724
+ Handle<Name> name = args.at <Name>(2 );
2729
2725
2730
2726
// TODO(ishell): Cache interceptor_holder in the store handler like we do
2731
2727
// for LoadHandler::kInterceptor case.
2732
2728
Handle<JSObject> interceptor_holder = receiver;
2733
- if (receiver->IsJSGlobalProxy ()) {
2734
- FeedbackSlotKind kind = vector-> GetKind (vector_slot);
2735
- if ( IsStoreGlobalICKind (kind )) {
2736
- interceptor_holder = Handle<JSObject>:: cast (isolate-> global_object ());
2737
- }
2729
+ if (receiver->IsJSGlobalProxy () &&
2730
+ (!receiver-> HasNamedInterceptor () ||
2731
+ receiver-> GetNamedInterceptor (). non_masking () )) {
2732
+ interceptor_holder =
2733
+ handle ( JSObject::cast (receiver-> map (). prototype ()), isolate);
2738
2734
}
2739
2735
DCHECK (interceptor_holder->HasNamedInterceptor ());
2740
2736
Handle<InterceptorInfo> interceptor (interceptor_holder->GetNamedInterceptor (),
0 commit comments