// 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; // 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; 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; // 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; }