5#ifndef V8_WASM_CONSTANT_EXPRESSION_INTERFACE_H_
6#define V8_WASM_CONSTANT_EXPRESSION_INTERFACE_H_
8#if !V8_ENABLE_WEBASSEMBLY
9#error This header should only be included if WebAssembly is enabled.
40 template <
typename... Args>
55 outer_module_(nullptr),
57 trusted_instance_data_(trusted_instance_data),
58 shared_trusted_instance_data_(shared_trusted_instance_data) {
65#define EMPTY_INTERFACE_FUNCTION(name, ...) \
66 V8_INLINE void name(FullDecoder* decoder, ##__VA_ARGS__) {}
68#undef EMPTY_INTERFACE_FUNCTION
69#define UNREACHABLE_INTERFACE_FUNCTION(name, ...) \
70 V8_INLINE void name(FullDecoder* decoder, ##__VA_ARGS__) { UNREACHABLE(); }
72#undef UNREACHABLE_INTERFACE_FUNCTION
74#define DECLARE_INTERFACE_FUNCTION(name, ...) \
75 void name(FullDecoder* decoder, ##__VA_ARGS__);
77#undef DECLARE_INTERFACE_FUNCTION
83 return computed_value_;
100 const Value& descriptor);
102 bool end_found_ =
false;
WasmValue computed_value_
WasmValue computed_value() const
DirectHandle< WasmTrustedInstanceData > trusted_instance_data_
ConstantExpressionInterface(const WasmModule *module, Isolate *isolate, DirectHandle< WasmTrustedInstanceData > trusted_instance_data, DirectHandle< WasmTrustedInstanceData > shared_trusted_instance_data)
MessageTemplate error() const
WasmModule * outer_module_
DirectHandle< WasmTrustedInstanceData > shared_trusted_instance_data_
const WasmModule * module_
ConstantExpressionInterface(WasmModule *outer_module)
bool generate_value() const
#define UNREACHABLE_INTERFACE_FUNCTION(name,...)
#define DECLARE_INTERFACE_FUNCTION(name,...)
#define EMPTY_INTERFACE_FUNCTION(name,...)
base::Vector< const DirectHandle< Object > > args
#define INTERFACE_META_FUNCTIONS(F)
#define INTERFACE_NON_CONSTANT_FUNCTIONS(F)
#define INTERFACE_CONSTANT_FUNCTIONS(F)
static constexpr bool kUsesPoppedArgs
constexpr IndependentHeapType kWasmVoid
kWasmInternalFunctionIndirectPointerTag WasmTrustedInstanceData
#define DCHECK_NOT_NULL(val)
#define DCHECK_NE(v1, v2)
#define DCHECK(condition)
#define DCHECK_EQ(v1, v2)
#define V8_EXPORT_PRIVATE
Value(Args &&... args) V8_NOEXCEPT
const wasm::WasmModule * module_