|  | // 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 | 
|  | @generatePrint | 
|  | extern class BreakPoint extends Struct { | 
|  | id: Smi; | 
|  | condition: String; | 
|  | } | 
|  |  | 
|  | @generateCppClass | 
|  | @generatePrint | 
|  | extern class BreakPointInfo extends Struct { | 
|  | // The position in the source for the break position. | 
|  | source_position: Smi; | 
|  | // List of related JavaScript break points. | 
|  | break_points: FixedArray|BreakPoint|Undefined; | 
|  | } | 
|  |  | 
|  | bitfield struct DebugInfoFlags extends uint31 { | 
|  | has_break_info: bool: 1 bit; | 
|  | prepared_for_debug_execution: bool: 1 bit; | 
|  | has_coverage_info: bool: 1 bit; | 
|  | break_at_entry: bool: 1 bit; | 
|  | can_break_at_entry: bool: 1 bit; | 
|  | debug_execution_mode: bool: 1 bit; | 
|  | } | 
|  |  | 
|  | bitfield struct DebuggerHints extends uint31 { | 
|  | side_effect_state: int32: 2 bit; | 
|  | debug_is_blackboxed: bool: 1 bit; | 
|  | computed_debug_is_blackboxed: bool: 1 bit; | 
|  | debugging_id: int32: 20 bit; | 
|  | } | 
|  |  | 
|  | @generateCppClass | 
|  | @generatePrint | 
|  | extern class DebugInfo extends Struct { | 
|  | shared: SharedFunctionInfo; | 
|  | // Bit field containing various information collected for debugging. | 
|  | debugger_hints: SmiTagged<DebuggerHints>; | 
|  | // Script field from shared function info. | 
|  | script: Undefined|Script; | 
|  | // The original uninstrumented bytecode array for functions with break | 
|  | // points - the instrumented bytecode is held in the shared function info. | 
|  | original_bytecode_array: Undefined|BytecodeArray; | 
|  | // The debug instrumented bytecode array for functions with break points | 
|  | // - also pointed to by the shared function info. | 
|  | debug_bytecode_array: Undefined|BytecodeArray; | 
|  | // Fixed array holding status information for each active break point. | 
|  | break_points: FixedArray; | 
|  | // A bitfield that lists uses of the current instance. | 
|  | flags: SmiTagged<DebugInfoFlags>; | 
|  | coverage_info: CoverageInfo|Undefined; | 
|  | } | 
|  |  | 
|  | @export | 
|  | struct CoverageInfoSlot { | 
|  | start_source_position: int32; | 
|  | end_source_position: int32; | 
|  | block_count: int32; | 
|  | padding: int32;  // Padding to make the index count 4. | 
|  | } | 
|  |  | 
|  | // CoverageInfo's visitor is included in DATA_ONLY_VISITOR_ID_LIST, so it must | 
|  | // not contain any HeapObject fields. | 
|  | @generateCppClass | 
|  | extern class CoverageInfo extends HeapObject { | 
|  | const slot_count: int32; | 
|  | slots[slot_count]: CoverageInfoSlot; | 
|  | } | 
|  |  | 
|  | @generateCppClass | 
|  | @generatePrint | 
|  | extern class WasmValue extends Struct { | 
|  | // TODO(7748): Name and comment are outdated. | 
|  | // The type, should map to ValueType::Kind values in value-type.h. | 
|  | value_type: SmiTagged<WasmValueType>; | 
|  | // Holds the actual value. For example, if this holds a Wasm i32, this will | 
|  | // be of length 4, for s128, it will have length 16. These values are | 
|  | // represented by the respective C++ types, and memcpy-ed in. | 
|  | // When value_type is a externref, it holds the object that externref points | 
|  | // to. | 
|  | bytes_or_ref: Object|ByteArray; | 
|  | } |