Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index c55c7a65cb3132ad47f475069cd6d845098f09a2..fce862b2579627425f2f17c208520df8fc2f27b0 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -1677,71 +1677,6 @@ |
return Just(result); |
} |
-Maybe<bool> DefinePropertyWithInterceptorInternal( |
- LookupIterator* it, Handle<InterceptorInfo> interceptor, |
- Object::ShouldThrow should_throw, PropertyDescriptor& desc) { |
- Isolate* isolate = it->isolate(); |
- // Make sure that the top context does not change when doing callbacks or |
- // interceptor calls. |
- AssertNoContextChange ncc(isolate); |
- |
- if (interceptor->definer()->IsUndefined(isolate)) return Just(false); |
- |
- Handle<JSObject> holder = it->GetHolder<JSObject>(); |
- bool result; |
- Handle<Object> receiver = it->GetReceiver(); |
- if (!receiver->IsJSReceiver()) { |
- ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, receiver, |
- Object::ConvertReceiver(isolate, receiver), |
- Nothing<bool>()); |
- } |
- PropertyCallbackArguments args(isolate, interceptor->data(), *receiver, |
- *holder, should_throw); |
- |
- std::unique_ptr<v8::PropertyDescriptor> descriptor( |
- new v8::PropertyDescriptor()); |
- if (PropertyDescriptor::IsAccessorDescriptor(&desc)) { |
- descriptor.reset(new v8::PropertyDescriptor( |
- v8::Utils::ToLocal(desc.get()), v8::Utils::ToLocal(desc.set()))); |
- } else if (PropertyDescriptor::IsDataDescriptor(&desc)) { |
- if (desc.has_writable()) { |
- descriptor.reset(new v8::PropertyDescriptor( |
- v8::Utils::ToLocal(desc.value()), desc.writable())); |
- } else { |
- descriptor.reset( |
- new v8::PropertyDescriptor(v8::Utils::ToLocal(desc.value()))); |
- } |
- } |
- if (desc.has_enumerable()) { |
- descriptor->set_enumerable(desc.enumerable()); |
- } |
- if (desc.has_configurable()) { |
- descriptor->set_configurable(desc.configurable()); |
- } |
- |
- if (it->IsElement()) { |
- uint32_t index = it->index(); |
- v8::IndexedPropertyDefinerCallback definer = |
- v8::ToCData<v8::IndexedPropertyDefinerCallback>(interceptor->definer()); |
- result = !args.Call(definer, index, *descriptor).is_null(); |
- } else { |
- Handle<Name> name = it->name(); |
- DCHECK(!name->IsPrivate()); |
- |
- if (name->IsSymbol() && !interceptor->can_intercept_symbols()) { |
- return Just(false); |
- } |
- |
- v8::GenericNamedPropertyDefinerCallback definer = |
- v8::ToCData<v8::GenericNamedPropertyDefinerCallback>( |
- interceptor->definer()); |
- result = !args.Call(definer, name, *descriptor).is_null(); |
- } |
- |
- RETURN_VALUE_IF_SCHEDULED_EXCEPTION(it->isolate(), Nothing<bool>()); |
- return Just(result); |
-} |
- |
} // namespace |
MaybeHandle<Object> JSObject::GetPropertyWithFailedAccessCheck( |
@@ -6596,35 +6531,6 @@ |
isolate->ReportFailedAccessCheck(it.GetHolder<JSObject>()); |
RETURN_VALUE_IF_SCHEDULED_EXCEPTION(isolate, Nothing<bool>()); |
return Just(true); |
- } |
- it.Next(); |
- } |
- |
- // Handle interceptor |
- if (it.state() == LookupIterator::INTERCEPTOR) { |
- Handle<Map> store_target_map; |
- if (it.GetReceiver()->IsJSObject()) { |
- store_target_map = handle(it.GetStoreTarget()->map(), it.isolate()); |
- } |
- if (it.HolderIsReceiverOrHiddenPrototype()) { |
- Maybe<bool> result = DefinePropertyWithInterceptorInternal( |
- &it, it.GetInterceptor(), should_throw, *desc); |
- if (result.IsNothing() || result.FromJust()) { |
- return result; |
- } |
- // Interceptor modified the store target but failed to set the |
- // property. |
- if (!store_target_map.is_null() && |
- *store_target_map != it.GetStoreTarget()->map()) { |
- it.isolate()->PushStackTraceAndDie( |
- 0xabababaa, v8::ToCData<void*>(it.GetInterceptor()->setter()), |
- nullptr, 0xabababab); |
- } |
- Utils::ApiCheck(store_target_map.is_null() || |
- *store_target_map == it.GetStoreTarget()->map(), |
- it.IsElement() ? "v8::IndexedPropertySetterCallback" |
- : "v8::NamedPropertySetterCallback", |
- "Interceptor silently changed store target."); |
} |
it.Next(); |
} |