Index: src/runtime/runtime-object.cc |
diff --git a/src/runtime/runtime-object.cc b/src/runtime/runtime-object.cc |
index c509705107ca06eea45fb41e308b1379a239f5ae..0385566c31502c3a0067c99ee7f3a65f101cdc54 100644 |
--- a/src/runtime/runtime-object.cc |
+++ b/src/runtime/runtime-object.cc |
@@ -183,9 +183,15 @@ RUNTIME_FUNCTION(Runtime_SetPrototype) { |
DCHECK(args.length() == 2); |
CONVERT_ARG_HANDLE_CHECKED(JSReceiver, obj, 0); |
CONVERT_ARG_HANDLE_CHECKED(Object, prototype, 1); |
- MAYBE_RETURN( |
- JSReceiver::SetPrototype(obj, prototype, true, Object::THROW_ON_ERROR), |
- isolate->heap()->exception()); |
+ |
+ Maybe<bool> status = |
+ JSReceiver::SetPrototype(obj, prototype, true, Object::THROW_ON_ERROR); |
+ if (status.IsNothing()) return isolate->heap()->exception(); |
+ if (!status.FromJust()) { |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewTypeError(MessageTemplate::kObjectSetPrototypeFailed, obj, |
+ prototype)); |
+ } |
return *obj; |
} |