| 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;
|
| }
|
|
|
|
|
|
|