| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index 70f0d3628f01b1f109f546e85253d04bcb1c8f10..6a660174cf578bd8483f9371e28a124897b68947 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -13541,6 +13541,23 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_ObjectHashTableSet) {
|
| }
|
|
|
|
|
| +RUNTIME_FUNCTION(MaybeObject*, Runtime_ObjectObserveAllowed) {
|
| + ASSERT(args.length() == 1);
|
| + CONVERT_ARG_CHECKED(JSReceiver, receiver, 0);
|
| + // Proxies aren't currently allowed to have access checks enabled
|
| + if (receiver->IsJSProxy()) return isolate->heap()->true_value();
|
| + JSObject* object = JSObject::cast(receiver);
|
| + if (object->IsJSGlobalProxy()) {
|
| + Object* proto = object->GetPrototype();
|
| + if (proto->IsNull()) return isolate->heap()->false_value();
|
| + ASSERT(proto->IsJSGlobalObject());
|
| + object = JSObject::cast(proto);
|
| + }
|
| + if (!object->IsAccessCheckNeeded()) return isolate->heap()->true_value();
|
| + return isolate->heap()->ToBoolean(isolate->MayObserveAccess(object));
|
| +}
|
| +
|
| +
|
| // ----------------------------------------------------------------------------
|
| // Implementation of Runtime
|
|
|
|
|