// 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. @generateCppClass extern class CallHandlerInfo extends Struct { callback: NonNullForeign|Undefined|Zero; js_callback: NonNullForeign|Undefined|Zero; data: Object; } bitfield struct InterceptorInfoFlags extends uint31 { can_intercept_symbols: bool: 1 bit; all_can_read: bool: 1 bit; non_masking: bool: 1 bit; named: bool: 1 bit; has_no_side_effect: bool: 1 bit; } @generateCppClass @generatePrint extern class InterceptorInfo extends Struct { getter: NonNullForeign|Zero|Undefined; setter: NonNullForeign|Zero|Undefined; query: NonNullForeign|Zero|Undefined; descriptor: NonNullForeign|Zero|Undefined; deleter: NonNullForeign|Zero|Undefined; enumerator: NonNullForeign|Zero|Undefined; definer: NonNullForeign|Zero|Undefined; data: Object; flags: SmiTagged; } @generateCppClass @generatePrint extern class AccessCheckInfo extends Struct { callback: Foreign|Zero|Undefined; named_interceptor: InterceptorInfo|Zero|Undefined; indexed_interceptor: InterceptorInfo|Zero|Undefined; data: Object; } type SideEffectType extends int32 constexpr 'SideEffectType'; bitfield struct AccessorInfoFlags extends uint31 { all_can_read: bool: 1 bit; all_can_write: bool: 1 bit; is_special_data_property: bool: 1 bit; is_sloppy: bool: 1 bit; replace_on_access: bool: 1 bit; getter_side_effect_type: SideEffectType: 2 bit; setter_side_effect_type: SideEffectType: 2 bit; initial_attributes: PropertyAttributes: 3 bit; } @generateCppClass @generatePrint extern class AccessorInfo extends Struct { name: Name; flags: SmiTagged; expected_receiver_type: Object; setter: NonNullForeign|Zero; getter: NonNullForeign|Zero; // This either points at the same as above, or a trampoline in case we are // running with the simulator. Use these entries from generated code. js_getter: NonNullForeign|Zero; data: Object; }