// Copyright 2021 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. #if !V8_ENABLE_WEBASSEMBLY #error This header should only be included if WebAssembly is enabled. #endif // !V8_ENABLE_WEBASSEMBLY #ifndef V8_WASM_CONSTANT_EXPRESSION_INTERFACE_H_ #define V8_WASM_CONSTANT_EXPRESSION_INTERFACE_H_ #include "src/wasm/decoder.h" #include "src/wasm/function-body-decoder-impl.h" #include "src/wasm/wasm-value.h" namespace v8 { namespace internal { class WasmTrustedInstanceData; class JSArrayBuffer; namespace wasm { // An interface for WasmFullDecoder used to decode constant expressions. // This interface has two modes: only validation (when {isolate_ == nullptr}), // and code-generation (when {isolate_ != nullptr}). We merge two distinct // functionalities in one class to reduce the number of WasmFullDecoder // instantiations, and thus V8 binary code size. // In code-generation mode, the result can be retrieved with {computed_value()} // if {!has_error()}, or with {error()} otherwise. class V8_EXPORT_PRIVATE ConstantExpressionInterface { … }; } // namespace wasm } // namespace internal } // namespace v8 #endif // V8_WASM_CONSTANT_EXPRESSION_INTERFACE_H_