// Copyright 2023 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. #ifndef V8_OBJECTS_INSTRUCTION_STREAM_H_ #define V8_OBJECTS_INSTRUCTION_STREAM_H_ #ifdef DEBUG #include <set> #endif #include "src/codegen/code-desc.h" #include "src/objects/trusted-object.h" // Has to be the last include (doesn't have include guards): #include "src/objects/object-macros.h" namespace v8 { namespace internal { class Code; class WritableJitAllocation; // InstructionStream contains the instruction stream for V8-generated code // objects. // // When V8_EXTERNAL_CODE_SPACE is enabled, InstructionStream objects are // allocated in a separate pointer compression cage instead of the cage where // all the other objects are allocated. // // An InstructionStream is a trusted object as it lives outside of the sandbox // and contains trusted content (machine code). However, it is special in that // it doesn't live in the trusted space but instead in the code space. class InstructionStream : public TrustedObject { … }; } // namespace internal } // namespace v8 #include "src/objects/object-macros-undef.h" #endif // V8_OBJECTS_INSTRUCTION_STREAM_H_