| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index b2736818f957c96b700bf01311d85a8b057f432d..a29f48de081ebdc405437e567206c91773cafad3 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -4911,6 +4911,32 @@ Maybe<bool> JSProxy::DeletePropertyOrElement(Handle<JSProxy> proxy,
|
|
|
|
|
| // static
|
| +MaybeHandle<JSProxy> JSProxy::New(Isolate* isolate, Handle<Object> target,
|
| + Handle<Object> handler) {
|
| + if (!target->IsJSReceiver()) {
|
| + THROW_NEW_ERROR(isolate, NewTypeError(MessageTemplate::kProxyNonObject),
|
| + JSProxy);
|
| + }
|
| + if (target->IsJSProxy() && JSProxy::cast(*target)->IsRevoked()) {
|
| + THROW_NEW_ERROR(isolate,
|
| + NewTypeError(MessageTemplate::kProxyHandlerOrTargetRevoked),
|
| + JSProxy);
|
| + }
|
| + if (!handler->IsJSReceiver()) {
|
| + THROW_NEW_ERROR(isolate, NewTypeError(MessageTemplate::kProxyNonObject),
|
| + JSProxy);
|
| + }
|
| + if (handler->IsJSProxy() && JSProxy::cast(*handler)->IsRevoked()) {
|
| + THROW_NEW_ERROR(isolate,
|
| + NewTypeError(MessageTemplate::kProxyHandlerOrTargetRevoked),
|
| + JSProxy);
|
| + }
|
| + return isolate->factory()->NewJSProxy(Handle<JSReceiver>::cast(target),
|
| + Handle<JSReceiver>::cast(handler));
|
| +}
|
| +
|
| +
|
| +// static
|
| MaybeHandle<Context> JSProxy::GetFunctionRealm(Handle<JSProxy> proxy) {
|
| DCHECK(proxy->map()->is_constructor());
|
| if (proxy->IsRevoked()) {
|
|
|