// Copyright 2019 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include 'src/builtins/builtins-proxy-gen.h' namespace proxy { extern macro ProxiesCodeStubAssembler::AllocateProxy( JSReceiver, JSReceiver, Context): JSProxy; macro AllocateProxy(implicit context: Context)( target: JSReceiver, handler: JSReceiver): JSProxy { return AllocateProxy(target, handler, context); } macro IsRevokedProxy(implicit context: Context)(o: JSReceiver): bool { const proxy: JSProxy = Cast<JSProxy>(o) otherwise return false; const handler: JSReceiver = Cast<JSReceiver>(proxy.handler) otherwise return true; return false; }
const kProxyNonObject: constexpr MessageTemplate generates 'MessageTemplate::kProxyNonObject'; const kProxyHandlerOrTargetRevoked: constexpr MessageTemplate generates 'MessageTemplate::kProxyHandlerOrTargetRevoked'; const kProxyRevoked: constexpr MessageTemplate generates 'MessageTemplate::kProxyRevoked'; const kProxyGet: constexpr int31 generates 'JSProxy::AccessKind::kGet'; const kProxySet: constexpr int31 generates 'JSProxy::AccessKind::kSet';
}