Index: src/objects.cc |
=================================================================== |
--- src/objects.cc (revision 2106) |
+++ src/objects.cc (working copy) |
@@ -5617,11 +5617,9 @@ |
} |
-bool JSObject::GetPropertyWithInterceptorProper( |
- JSObject* receiver, |
- String* name, |
- PropertyAttributes* attributes, |
- Object** result_object) { |
+Object* JSObject::GetPropertyWithInterceptor(JSObject* receiver, |
+ String* name, |
+ PropertyAttributes* attributes) { |
HandleScope scope; |
Handle<InterceptorInfo> interceptor(GetNamedInterceptor()); |
Handle<JSObject> receiver_handle(receiver); |
@@ -5642,93 +5640,19 @@ |
VMState state(EXTERNAL); |
result = getter(v8::Utils::ToLocal(name_handle), info); |
} |
- if (Top::has_scheduled_exception()) { |
- return false; |
- } |
+ RETURN_IF_SCHEDULED_EXCEPTION(); |
if (!result.IsEmpty()) { |
*attributes = NONE; |
- *result_object = *v8::Utils::OpenHandle(*result); |
- return true; |
+ return *v8::Utils::OpenHandle(*result); |
} |
} |
- return false; |
-} |
- |
- |
-Object* JSObject::GetInterceptorPropertyWithLookupHint( |
- JSObject* receiver, |
- Smi* lookup_hint, |
- String* name, |
- PropertyAttributes* attributes) { |
- HandleScope scope; |
- Handle<JSObject> receiver_handle(receiver); |
- Handle<JSObject> holder_handle(this); |
- Handle<String> name_handle(name); |
- |
- Object* result = NULL; |
- if (GetPropertyWithInterceptorProper(receiver, name, attributes, &result)) { |
- return result; |
- } else { |
- RETURN_IF_SCHEDULED_EXCEPTION(); |
- } |
- |
- int property_index = lookup_hint->value(); |
- if (property_index >= 0) { |
- result = holder_handle->FastPropertyAt(property_index); |
- } else { |
- switch (property_index) { |
- case kLookupInPrototype: { |
- Object* pt = holder_handle->GetPrototype(); |
- *attributes = ABSENT; |
- if (pt == Heap::null_value()) return Heap::undefined_value(); |
- result = pt->GetPropertyWithReceiver( |
- *receiver_handle, |
- *name_handle, |
- attributes); |
- RETURN_IF_SCHEDULED_EXCEPTION(); |
- } |
- break; |
- |
- case kLookupInHolder: |
- result = holder_handle->GetPropertyPostInterceptor( |
- *receiver_handle, |
- *name_handle, |
- attributes); |
- RETURN_IF_SCHEDULED_EXCEPTION(); |
- break; |
- |
- default: |
- UNREACHABLE(); |
- } |
- } |
- |
- return result; |
-} |
- |
- |
-Object* JSObject::GetPropertyWithInterceptor( |
- JSObject* receiver, |
- String* name, |
- PropertyAttributes* attributes) { |
- HandleScope scope; |
- Handle<JSObject> receiver_handle(receiver); |
- Handle<JSObject> holder_handle(this); |
- Handle<String> name_handle(name); |
- |
- Object* result = NULL; |
- if (GetPropertyWithInterceptorProper(receiver, name, attributes, &result)) { |
- return result; |
- } else { |
- RETURN_IF_SCHEDULED_EXCEPTION(); |
- } |
- |
- result = holder_handle->GetPropertyPostInterceptor( |
+ Object* raw_result = holder_handle->GetPropertyPostInterceptor( |
*receiver_handle, |
*name_handle, |
attributes); |
RETURN_IF_SCHEDULED_EXCEPTION(); |
- return result; |
+ return raw_result; |
} |