summaryrefslogtreecommitdiff
path: root/deps/v8/src/builtins/proxy.tq
blob: 9e56a28903e221f974488561c8e3cd29582be803 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 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(implicit context: Context)(
    JSReceiver, JSReceiver): JSProxy;

extern transitioning macro ProxiesCodeStubAssembler::CheckGetSetTrapResult(
    implicit context: Context)(
    JSReceiver, JSProxy, Name, Object, constexpr int31): void;

extern transitioning macro ProxiesCodeStubAssembler::CheckDeleteTrapResult(
    implicit context: Context)(JSReceiver, JSProxy, Name): void;

extern transitioning macro ProxiesCodeStubAssembler::CheckHasTrapResult(
    implicit context: Context)(JSReceiver, JSProxy, Name): void;

const kProxyGet: constexpr int31
    generates 'JSProxy::AccessKind::kGet';
const kProxySet: constexpr int31
    generates 'JSProxy::AccessKind::kSet';

type ProxyRevokeFunctionContext extends FunctionContext;
extern enum ProxyRevokeFunctionContextSlot extends intptr
constexpr 'ProxiesCodeStubAssembler::ProxyRevokeFunctionContextSlot' {
  kProxySlot: Slot<ProxyRevokeFunctionContext, JSProxy|Null>,
  kProxyContextLength
}
}