| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index c9d3048f7acd47597a5fc5002c8a9606b3c31106..254ed61f2c524e3b65e082b72822a0eafab7e82c 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -160,6 +160,7 @@ MaybeObject* Object::GetPropertyWithCallback(Object* receiver,
|
| Object* structure,
|
| String* name,
|
| Object* holder) {
|
| + Isolate* isolate = name->GetIsolate();
|
| // To accommodate both the old and the new api we switch on the
|
| // data structure used to store the callbacks. Eventually proxy
|
| // callbacks should be phased out.
|
| @@ -167,12 +168,10 @@ MaybeObject* Object::GetPropertyWithCallback(Object* receiver,
|
| AccessorDescriptor* callback =
|
| reinterpret_cast<AccessorDescriptor*>(Proxy::cast(structure)->proxy());
|
| MaybeObject* value = (callback->getter)(receiver, callback->data);
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| return value;
|
| }
|
|
|
| - Isolate* isolate = name->GetIsolate();
|
| -
|
| // api style callbacks.
|
| if (structure->IsAccessorInfo()) {
|
| AccessorInfo* data = AccessorInfo::cast(structure);
|
| @@ -191,7 +190,7 @@ MaybeObject* Object::GetPropertyWithCallback(Object* receiver,
|
| VMState state(isolate, EXTERNAL);
|
| result = call_fun(v8::Utils::ToLocal(key), info);
|
| }
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| if (result.IsEmpty()) {
|
| return isolate->heap()->undefined_value();
|
| }
|
| @@ -1607,14 +1606,14 @@ MaybeObject* JSObject::SetPropertyWithInterceptor(
|
| v8::Utils::ToLocal(value_unhole),
|
| info);
|
| }
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| if (!result.IsEmpty()) return *value_handle;
|
| }
|
| MaybeObject* raw_result =
|
| this_handle->SetPropertyPostInterceptor(*name_handle,
|
| *value_handle,
|
| attributes);
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| return raw_result;
|
| }
|
|
|
| @@ -1647,7 +1646,7 @@ MaybeObject* JSObject::SetPropertyWithCallback(Object* structure,
|
| AccessorDescriptor* callback =
|
| reinterpret_cast<AccessorDescriptor*>(Proxy::cast(structure)->proxy());
|
| MaybeObject* obj = (callback->setter)(this, value, callback->data);
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| if (obj->IsFailure()) return obj;
|
| return *value_handle;
|
| }
|
| @@ -1669,7 +1668,7 @@ MaybeObject* JSObject::SetPropertyWithCallback(Object* structure,
|
| v8::Utils::ToLocal(value_handle),
|
| info);
|
| }
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| return *value_handle;
|
| }
|
|
|
| @@ -2510,7 +2509,7 @@ MaybeObject* JSObject::DeletePropertyWithInterceptor(String* name) {
|
| VMState state(isolate, EXTERNAL);
|
| result = deleter(v8::Utils::ToLocal(name_handle), info);
|
| }
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| if (!result.IsEmpty()) {
|
| ASSERT(result->IsBoolean());
|
| return *v8::Utils::OpenHandle(*result);
|
| @@ -2518,7 +2517,7 @@ MaybeObject* JSObject::DeletePropertyWithInterceptor(String* name) {
|
| }
|
| MaybeObject* raw_result =
|
| this_handle->DeletePropertyPostInterceptor(*name_handle, NORMAL_DELETION);
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| return raw_result;
|
| }
|
|
|
| @@ -2578,14 +2577,14 @@ MaybeObject* JSObject::DeleteElementWithInterceptor(uint32_t index) {
|
| VMState state(isolate, EXTERNAL);
|
| result = deleter(index, info);
|
| }
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| if (!result.IsEmpty()) {
|
| ASSERT(result->IsBoolean());
|
| return *v8::Utils::OpenHandle(*result);
|
| }
|
| MaybeObject* raw_result =
|
| this_handle->DeleteElementPostInterceptor(index, NORMAL_DELETION);
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| return raw_result;
|
| }
|
|
|
| @@ -6528,12 +6527,12 @@ MaybeObject* JSObject::SetElementWithInterceptor(uint32_t index,
|
| VMState state(isolate, EXTERNAL);
|
| result = setter(index, v8::Utils::ToLocal(value_handle), info);
|
| }
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| if (!result.IsEmpty()) return *value_handle;
|
| }
|
| MaybeObject* raw_result =
|
| this_handle->SetElementWithoutInterceptor(index, *value_handle);
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| return raw_result;
|
| }
|
|
|
| @@ -6564,7 +6563,7 @@ MaybeObject* JSObject::GetElementWithCallback(Object* receiver,
|
| VMState state(isolate, EXTERNAL);
|
| result = call_fun(v8::Utils::ToLocal(key), info);
|
| }
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| if (result.IsEmpty()) return isolate->heap()->undefined_value();
|
| return *v8::Utils::OpenHandle(*result);
|
| }
|
| @@ -6620,7 +6619,7 @@ MaybeObject* JSObject::SetElementWithCallback(Object* structure,
|
| v8::Utils::ToLocal(value_handle),
|
| info);
|
| }
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| return *value_handle;
|
| }
|
|
|
| @@ -6958,13 +6957,13 @@ MaybeObject* JSObject::GetElementWithInterceptor(JSObject* receiver,
|
| VMState state(isolate, EXTERNAL);
|
| result = getter(index, info);
|
| }
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| if (!result.IsEmpty()) return *v8::Utils::OpenHandle(*result);
|
| }
|
|
|
| MaybeObject* raw_result =
|
| holder_handle->GetElementPostInterceptor(*this_handle, index);
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| return raw_result;
|
| }
|
|
|
| @@ -7279,7 +7278,7 @@ MaybeObject* JSObject::GetPropertyWithInterceptor(
|
| VMState state(isolate, EXTERNAL);
|
| result = getter(v8::Utils::ToLocal(name_handle), info);
|
| }
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| if (!result.IsEmpty()) {
|
| *attributes = NONE;
|
| return *v8::Utils::OpenHandle(*result);
|
| @@ -7290,7 +7289,7 @@ MaybeObject* JSObject::GetPropertyWithInterceptor(
|
| *receiver_handle,
|
| *name_handle,
|
| attributes);
|
| - RETURN_IF_SCHEDULED_EXCEPTION();
|
| + RETURN_IF_SCHEDULED_EXCEPTION(isolate);
|
| return result;
|
| }
|
|
|
|
|