| Index: src/builtins.cc
|
| diff --git a/src/builtins.cc b/src/builtins.cc
|
| index 56c9641d4193afcb5b17bc05c8e6c9992a62d162..d6f953352cb83cb4b31256d029ffc5224f115877 100644
|
| --- a/src/builtins.cc
|
| +++ b/src/builtins.cc
|
| @@ -1621,20 +1621,10 @@ BUILTIN(ReflectIsExtensible) {
|
| "Reflect.isExtensible")));
|
| }
|
|
|
| - // TODO(neis): For now, we ignore proxies. Once proxies are fully
|
| - // implemented, do something like the following:
|
| - /*
|
| - Maybe<bool> maybe = JSReceiver::IsExtensible(
|
| - Handle<JSReceiver>::cast(target));
|
| - if (!maybe.IsJust()) return isolate->heap()->exception();
|
| - return *isolate->factory()->ToBoolean(maybe.FromJust());
|
| - */
|
| -
|
| - if (target->IsJSObject()) {
|
| - return *isolate->factory()->ToBoolean(
|
| - JSObject::IsExtensible(Handle<JSObject>::cast(target)));
|
| - }
|
| - return *isolate->factory()->false_value();
|
| + Maybe<bool> result =
|
| + JSReceiver::IsExtensible(Handle<JSReceiver>::cast(target));
|
| + MAYBE_RETURN(result, isolate->heap()->exception());
|
| + return *isolate->factory()->ToBoolean(result.FromJust());
|
| }
|
|
|
|
|
| @@ -1653,8 +1643,8 @@ BUILTIN(ReflectPreventExtensions) {
|
|
|
| Maybe<bool> result = JSReceiver::PreventExtensions(
|
| Handle<JSReceiver>::cast(target), Object::DONT_THROW);
|
| - return result.IsJust() ? *isolate->factory()->ToBoolean(result.FromJust())
|
| - : isolate->heap()->exception();
|
| + MAYBE_RETURN(result, isolate->heap()->exception());
|
| + return *isolate->factory()->ToBoolean(result.FromJust());
|
| }
|
|
|
|
|
|
|