| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index 34e0e023edc17512d21740dc1eb868bea710cfb2..26d844bdc36a70e11ec881d0cd6aa14305f70e58 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -555,12 +555,7 @@ MaybeHandle<Object> Object::GetPropertyWithDefinedGetter(
|
| }
|
| #endif
|
|
|
| - bool has_pending_exception;
|
| - Handle<Object> result = Execution::Call(
|
| - isolate, getter, receiver, 0, NULL, &has_pending_exception, true);
|
| - // Check for pending exception and return the result.
|
| - if (has_pending_exception) return MaybeHandle<Object>();
|
| - return result;
|
| + return Execution::Call(isolate, getter, receiver, 0, NULL, true);
|
| }
|
|
|
|
|
| @@ -2213,14 +2208,11 @@ void JSObject::EnqueueChangeRecord(Handle<JSObject> object,
|
| }
|
| Handle<Object> args[] = { type, object, name, old_value };
|
| int argc = name.is_null() ? 2 : old_value->IsTheHole() ? 3 : 4;
|
| - bool threw;
|
|
|
| Execution::Call(isolate,
|
| Handle<JSFunction>(isolate->observers_notify_change()),
|
| isolate->factory()->undefined_value(),
|
| - argc, args,
|
| - &threw);
|
| - ASSERT(!threw);
|
| + argc, args).Assert();
|
| }
|
|
|
|
|
| @@ -3003,7 +2995,7 @@ MaybeHandle<Object> JSObject::SetPropertyWithCallback(Handle<JSObject> object,
|
| }
|
|
|
|
|
| -Handle<Object> JSReceiver::SetPropertyWithDefinedSetter(
|
| +MaybeHandle<Object> JSReceiver::SetPropertyWithDefinedSetter(
|
| Handle<JSReceiver> object,
|
| Handle<JSReceiver> setter,
|
| Handle<Object> value) {
|
| @@ -3019,12 +3011,11 @@ Handle<Object> JSReceiver::SetPropertyWithDefinedSetter(
|
| }
|
| #endif
|
|
|
| - bool has_pending_exception;
|
| Handle<Object> argv[] = { value };
|
| - Execution::Call(
|
| - isolate, setter, object, ARRAY_SIZE(argv), argv, &has_pending_exception);
|
| - // Check for pending exception and return the result.
|
| - if (has_pending_exception) return Handle<Object>();
|
| + RETURN_ON_EXCEPTION(
|
| + isolate,
|
| + Execution::Call(isolate, setter, object, ARRAY_SIZE(argv), argv),
|
| + Object);
|
| return value;
|
| }
|
|
|
| @@ -3690,12 +3681,16 @@ MaybeHandle<Object> JSProxy::SetPropertyViaPrototypesWithHandler(
|
| }
|
|
|
| // Emulate [[GetProperty]] semantics for proxies.
|
| - bool has_pending_exception;
|
| Handle<Object> argv[] = { result };
|
| - Handle<Object> desc = Execution::Call(
|
| - isolate, isolate->to_complete_property_descriptor(), result,
|
| - ARRAY_SIZE(argv), argv, &has_pending_exception);
|
| - if (has_pending_exception) return MaybeHandle<Object>();
|
| + Handle<Object> desc;
|
| + ASSIGN_RETURN_ON_EXCEPTION(
|
| + isolate, desc,
|
| + Execution::Call(isolate,
|
| + isolate->to_complete_property_descriptor(),
|
| + result,
|
| + ARRAY_SIZE(argv),
|
| + argv),
|
| + Object);
|
|
|
| // [[GetProperty]] requires to check that all properties are configurable.
|
| Handle<String> configurable_name =
|
| @@ -3820,12 +3815,16 @@ PropertyAttributes JSProxy::GetPropertyAttributeWithHandler(
|
|
|
| if (result->IsUndefined()) return ABSENT;
|
|
|
| - bool has_pending_exception;
|
| Handle<Object> argv[] = { result };
|
| - Handle<Object> desc = Execution::Call(
|
| - isolate, isolate->to_complete_property_descriptor(), result,
|
| - ARRAY_SIZE(argv), argv, &has_pending_exception);
|
| - if (has_pending_exception) return NONE;
|
| + Handle<Object> desc;
|
| + ASSIGN_RETURN_ON_EXCEPTION_VALUE(
|
| + isolate, desc,
|
| + Execution::Call(isolate,
|
| + isolate->to_complete_property_descriptor(),
|
| + result,
|
| + ARRAY_SIZE(argv),
|
| + argv),
|
| + NONE);
|
|
|
| // Convert result to PropertyAttributes.
|
| Handle<String> enum_n = isolate->factory()->InternalizeOneByteString(
|
| @@ -3924,8 +3923,7 @@ MaybeHandle<Object> JSProxy::CallTrap(Handle<JSProxy> proxy,
|
| trap = Handle<Object>(derived);
|
| }
|
|
|
| - bool threw;
|
| - return Execution::Call(isolate, trap, handler, argc, argv, &threw);
|
| + return Execution::Call(isolate, trap, handler, argc, argv);
|
| }
|
|
|
|
|
| @@ -11356,12 +11354,11 @@ static void EnqueueSpliceRecord(Handle<JSArray> object,
|
| Handle<Object> args[] =
|
| { object, index_object, deleted, add_count_object };
|
|
|
| - bool threw;
|
| Execution::Call(isolate,
|
| Handle<JSFunction>(isolate->observers_enqueue_splice()),
|
| - isolate->factory()->undefined_value(), ARRAY_SIZE(args), args,
|
| - &threw);
|
| - ASSERT(!threw);
|
| + isolate->factory()->undefined_value(),
|
| + ARRAY_SIZE(args),
|
| + args).Assert();
|
| }
|
|
|
|
|
| @@ -11370,12 +11367,11 @@ static void BeginPerformSplice(Handle<JSArray> object) {
|
| HandleScope scope(isolate);
|
| Handle<Object> args[] = { object };
|
|
|
| - bool threw;
|
| Execution::Call(isolate,
|
| Handle<JSFunction>(isolate->observers_begin_perform_splice()),
|
| - isolate->factory()->undefined_value(), ARRAY_SIZE(args), args,
|
| - &threw);
|
| - ASSERT(!threw);
|
| + isolate->factory()->undefined_value(),
|
| + ARRAY_SIZE(args),
|
| + args).Assert();
|
| }
|
|
|
|
|
| @@ -11384,12 +11380,11 @@ static void EndPerformSplice(Handle<JSArray> object) {
|
| HandleScope scope(isolate);
|
| Handle<Object> args[] = { object };
|
|
|
| - bool threw;
|
| Execution::Call(isolate,
|
| Handle<JSFunction>(isolate->observers_end_perform_splice()),
|
| - isolate->factory()->undefined_value(), ARRAY_SIZE(args), args,
|
| - &threw);
|
| - ASSERT(!threw);
|
| + isolate->factory()->undefined_value(),
|
| + ARRAY_SIZE(args),
|
| + args).Assert();
|
| }
|
|
|
|
|
| @@ -12003,12 +11998,12 @@ MaybeHandle<Object> JSObject::GetElementWithCallback(
|
| }
|
|
|
|
|
| -Handle<Object> JSObject::SetElementWithCallback(Handle<JSObject> object,
|
| - Handle<Object> structure,
|
| - uint32_t index,
|
| - Handle<Object> value,
|
| - Handle<JSObject> holder,
|
| - StrictMode strict_mode) {
|
| +MaybeHandle<Object> JSObject::SetElementWithCallback(Handle<JSObject> object,
|
| + Handle<Object> structure,
|
| + uint32_t index,
|
| + Handle<Object> value,
|
| + Handle<JSObject> holder,
|
| + StrictMode strict_mode) {
|
| Isolate* isolate = object->GetIsolate();
|
|
|
| // We should never get here to initialize a const with the hole
|
| @@ -12036,7 +12031,7 @@ Handle<Object> JSObject::SetElementWithCallback(Handle<JSObject> object,
|
| args.Call(call_fun,
|
| v8::Utils::ToLocal(key),
|
| v8::Utils::ToLocal(value));
|
| - RETURN_HANDLE_IF_SCHEDULED_EXCEPTION(isolate, Object);
|
| + RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object);
|
| return value;
|
| }
|
|
|
| @@ -12052,8 +12047,7 @@ Handle<Object> JSObject::SetElementWithCallback(Handle<JSObject> object,
|
| Handle<Object> args[2] = { key, holder };
|
| Handle<Object> error = isolate->factory()->NewTypeError(
|
| "no_setter_in_callback", HandleVector(args, 2));
|
| - isolate->Throw(*error);
|
| - return Handle<Object>();
|
| + return isolate->Throw<Object>(error);
|
| }
|
| }
|
|
|
| @@ -12061,7 +12055,7 @@ Handle<Object> JSObject::SetElementWithCallback(Handle<JSObject> object,
|
| if (structure->IsDeclaredAccessorInfo()) return value;
|
|
|
| UNREACHABLE();
|
| - return Handle<Object>();
|
| + return MaybeHandle<Object>();
|
| }
|
|
|
|
|
| @@ -12496,11 +12490,9 @@ MaybeHandle<Object> JSObject::SetElement(Handle<JSObject> object,
|
| if (object->HasExternalArrayElements() ||
|
| object->HasFixedTypedArrayElements()) {
|
| if (!value->IsNumber() && !value->IsUndefined()) {
|
| - bool has_exception;
|
| - Handle<Object> number =
|
| - Execution::ToNumber(isolate, value, &has_exception);
|
| - if (has_exception) return MaybeHandle<Object>();
|
| - value = number;
|
| + ASSIGN_RETURN_ON_EXCEPTION(
|
| + isolate, value,
|
| + Execution::ToNumber(isolate, value), Object);
|
| }
|
| }
|
|
|
|
|