// Copyright 2015 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_INTERPRETER_BYTECODE_GENERATOR_H_ #define V8_INTERPRETER_BYTECODE_GENERATOR_H_ #include "src/ast/ast.h" #include "src/feedback-vector.h" #include "src/interpreter/bytecode-array-builder.h" #include "src/interpreter/bytecode-label.h" #include "src/interpreter/bytecode-register.h" #include "src/interpreter/bytecodes.h" namespace v8 { namespace internal { class AstNodeSourceRanges; class AstStringConstants; class UnoptimizedCompilationInfo; enum class SourceRangeKind; namespace interpreter { class GlobalDeclarationsBuilder; class LoopBuilder; class BlockCoverageBuilder; class BytecodeJumpTable; class BytecodeGenerator final : public AstVisitor { public: explicit BytecodeGenerator( UnoptimizedCompilationInfo* info, const AstStringConstants* ast_string_constants, ZoneVector* eager_inner_literals); void GenerateBytecode(uintptr_t stack_limit); Handle FinalizeBytecode(Isolate* isolate, Handle