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