| // 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; |
| } |
| |
| extern transitioning macro ProxiesCodeStubAssembler::CheckGetSetTrapResult( |
| implicit context: |
| Context)(Object, JSProxy, Name, Object, constexpr int31): Object; |
| |
| extern transitioning macro ProxiesCodeStubAssembler::CheckHasTrapResult( |
| implicit context: Context)(Object, JSProxy, Name): Object; |
| |
| const kProxyNonObject: constexpr MessageTemplate |
| generates 'MessageTemplate::kProxyNonObject'; |
| const kProxyHandlerOrTargetRevoked: constexpr MessageTemplate |
| generates 'MessageTemplate::kProxyHandlerOrTargetRevoked'; |
| const kProxyRevoked: constexpr MessageTemplate |
| generates 'MessageTemplate::kProxyRevoked'; |
| const kProxyTrapReturnedFalsishFor: constexpr MessageTemplate |
| generates 'MessageTemplate::kProxyTrapReturnedFalsishFor'; |
| const kProxyPrivate: constexpr MessageTemplate |
| generates 'MessageTemplate::kProxyPrivate'; |
| |
| const kProxyGet: constexpr int31 |
| generates 'JSProxy::AccessKind::kGet'; |
| const kProxySet: constexpr int31 |
| generates 'JSProxy::AccessKind::kSet'; |
| } |