• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2019 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5@generateCppClass
6extern class CallHandlerInfo extends Struct {
7  callback: NonNullForeign|Undefined|Zero;
8  js_callback: NonNullForeign|Undefined|Zero;
9  data: Object;
10}
11
12bitfield struct InterceptorInfoFlags extends uint31 {
13  can_intercept_symbols: bool: 1 bit;
14  all_can_read: bool: 1 bit;
15  non_masking: bool: 1 bit;
16  named: bool: 1 bit;
17  has_no_side_effect: bool: 1 bit;
18}
19
20@generateCppClass
21@generatePrint
22extern class InterceptorInfo extends Struct {
23  getter: NonNullForeign|Zero|Undefined;
24  setter: NonNullForeign|Zero|Undefined;
25  query: NonNullForeign|Zero|Undefined;
26  descriptor: NonNullForeign|Zero|Undefined;
27  deleter: NonNullForeign|Zero|Undefined;
28  enumerator: NonNullForeign|Zero|Undefined;
29  definer: NonNullForeign|Zero|Undefined;
30  data: Object;
31  flags: SmiTagged<InterceptorInfoFlags>;
32}
33
34@generateCppClass
35@generatePrint
36extern class AccessCheckInfo extends Struct {
37  callback: Foreign|Zero|Undefined;
38  named_interceptor: InterceptorInfo|Zero|Undefined;
39  indexed_interceptor: InterceptorInfo|Zero|Undefined;
40  data: Object;
41}
42
43type SideEffectType extends int32 constexpr 'SideEffectType';
44
45bitfield struct AccessorInfoFlags extends uint31 {
46  all_can_read: bool: 1 bit;
47  all_can_write: bool: 1 bit;
48  is_special_data_property: bool: 1 bit;
49  is_sloppy: bool: 1 bit;
50  replace_on_access: bool: 1 bit;
51  getter_side_effect_type: SideEffectType: 2 bit;
52  setter_side_effect_type: SideEffectType: 2 bit;
53  initial_attributes: PropertyAttributes: 3 bit;
54}
55
56@generateCppClass
57@generatePrint
58extern class AccessorInfo extends Struct {
59  name: Name;
60  flags: SmiTagged<AccessorInfoFlags>;
61  expected_receiver_type: Object;
62  setter: NonNullForeign|Zero;
63  getter: NonNullForeign|Zero;
64  // This either points at the same as above, or a trampoline in case we are
65  // running with the simulator. Use these entries from generated code.
66  js_getter: NonNullForeign|Zero;
67  data: Object;
68}
69