V8 API Reference, 7.2.502.16 (for Deno 0.2.4)
v8::internal::wasm::WasmDecoder< validate > Class Template Reference
Inheritance diagram for v8::internal::wasm::WasmDecoder< validate >:
v8::internal::wasm::Decoder v8::internal::wasm::WasmFullDecoder< validate, Interface >

Public Member Functions

 WasmDecoder (const WasmModule *module, const WasmFeatures &enabled, WasmFeatures *detected, FunctionSig *sig, const byte *start, const byte *end, uint32_t buffer_offset=0)
 
uint32_t total_locals () const
 
bool Validate (const byte *pc, LocalIndexImmediate< validate > &imm)
 
bool Validate (const byte *pc, ExceptionIndexImmediate< validate > &imm)
 
bool Validate (const byte *pc, GlobalIndexImmediate< validate > &imm)
 
bool Complete (const byte *pc, CallFunctionImmediate< validate > &imm)
 
bool Validate (const byte *pc, CallFunctionImmediate< validate > &imm)
 
bool Complete (const byte *pc, CallIndirectImmediate< validate > &imm)
 
bool Validate (const byte *pc, CallIndirectImmediate< validate > &imm)
 
bool Validate (const byte *pc, BreakDepthImmediate< validate > &imm, size_t control_depth)
 
bool Validate (const byte *pc, BranchTableImmediate< validate > &imm, size_t block_depth)
 
bool Validate (const byte *pc, WasmOpcode opcode, SimdLaneImmediate< validate > &imm)
 
bool Validate (const byte *pc, WasmOpcode opcode, SimdShiftImmediate< validate > &imm)
 
bool Validate (const byte *pc, Simd8x16ShuffleImmediate< validate > &imm)
 
bool Complete (BlockTypeImmediate< validate > &imm)
 
bool Validate (BlockTypeImmediate< validate > &imm)
 
bool Validate (MemoryIndexImmediate< validate > &imm)
 
bool Validate (MemoryInitImmediate< validate > &imm)
 
bool Validate (MemoryDropImmediate< validate > &imm)
 
bool Validate (const byte *pc, TableIndexImmediate< validate > &imm)
 
bool Validate (TableInitImmediate< validate > &imm)
 
bool Validate (TableDropImmediate< validate > &imm)
 
std::pair< uint32_t, uint32_tStackEffect (const byte *pc)
 
- Public Member Functions inherited from v8::internal::wasm::Decoder
 Decoder (const byte *start, const byte *end, uint32_t buffer_offset=0)
 
 Decoder (const Vector< const byte > bytes, uint32_t buffer_offset=0)
 
 Decoder (const byte *start, const byte *pc, const byte *end, uint32_t buffer_offset=0)
 
bool validate_size (const byte *pc, uint32_t length, const char *msg)
 
template<ValidateFlag validate>
uint8_t read_u8 (const byte *pc, const char *msg="expected 1 byte")
 
template<ValidateFlag validate>
uint16_t read_u16 (const byte *pc, const char *msg="expected 2 bytes")
 
template<ValidateFlag validate>
uint32_t read_u32 (const byte *pc, const char *msg="expected 4 bytes")
 
template<ValidateFlag validate>
uint64_t read_u64 (const byte *pc, const char *msg="expected 8 bytes")
 
template<ValidateFlag validate>
uint32_t read_u32v (const byte *pc, uint32_t *length, const char *name="LEB32")
 
template<ValidateFlag validate>
int32_t read_i32v (const byte *pc, uint32_t *length, const char *name="signed LEB32")
 
template<ValidateFlag validate>
uint64_t read_u64v (const byte *pc, uint32_t *length, const char *name="LEB64")
 
template<ValidateFlag validate>
int64_t read_i64v (const byte *pc, uint32_t *length, const char *name="signed LEB64")
 
uint8_t consume_u8 (const char *name="uint8_t")
 
uint16_t consume_u16 (const char *name="uint16_t")
 
uint32_t consume_u32 (const char *name="uint32_t")
 
uint32_t consume_u32v (const char *name=nullptr)
 
int32_t consume_i32v (const char *name=nullptr)
 
void consume_bytes (uint32_t size, const char *name="skip")
 
bool checkAvailable (uint32_t size)
 
void error (const char *msg)
 
void error (const byte *pc, const char *msg)
 
void PRINTF_FORMAT (3, 4) errorf(const byte *pc
 
 va_start (arguments, format)
 
 CHECK_LT (0, len)
 
 va_end (arguments)
 
error_msg_ assign (buffer.start(), len)
 
 DCHECK_GE (pc, start_)
 
 onFirstError ()
 
virtual void onFirstError ()
 
void traceByteRange (const byte *start, const byte *end)
 
void traceOffEnd ()
 
template<typename T , typename U = typename std::remove_reference<T>::type>
Result< U > toResult (T &&val)
 
void Reset (const byte *start, const byte *end, uint32_t buffer_offset=0)
 
void Reset (Vector< const uint8_t > bytes, uint32_t buffer_offset=0)
 
bool ok () const
 
bool failed () const
 
bool more () const
 
const byte * start () const
 
const byte * pc () const
 
uint32_t position () const
 
uint32_t pc_offset () const
 
uint32_t buffer_offset () const
 
uint32_t GetBufferRelativeOffset (uint32_t offset) const
 
const byte * end () const
 

Static Public Member Functions

static bool DecodeLocals (const WasmFeatures &enabled, Decoder *decoder, const FunctionSig *sig, ZoneVector< ValueType > *type_list)
 
static BitVectorAnalyzeLoopAssignment (Decoder *decoder, const byte *pc, uint32_t locals_count, Zone *zone)
 
static uint32_t OpcodeLength (Decoder *decoder, const byte *pc)
 

Public Attributes

const WasmModulemodule_
 
const WasmFeatures enabled_
 
WasmFeaturesdetected_
 
FunctionSigsig_
 
ZoneVector< ValueType > * local_types_
 
- Public Attributes inherited from v8::internal::wasm::Decoder
void const charformat
 
void const char constexpr int kMaxErrorMsg = 256
 
EmbeddedVector< char, kMaxErrorMsg > buffer
 
va_list arguments
 
int len = VSNPrintF(buffer, format, arguments)
 
 error_offset_ = static_cast<uint32_t>(pc - start_) + buffer_offset_
 

Additional Inherited Members

- Public Types inherited from v8::internal::wasm::Decoder
enum  ValidateFlag : bool { kValidate = true, kNoValidate = false }
 
enum  AdvancePCFlag : bool { kAdvancePc = true, kNoAdvancePc = false }
 
enum  TraceFlag : bool { kTrace = true, kNoTrace = false }
 
- Protected Attributes inherited from v8::internal::wasm::Decoder
const byte * start_
 
const byte * pc_
 
const byte * end_
 
uint32_t buffer_offset_
 
uint32_t error_offset_ = 0
 
std::string error_msg_
 

Detailed Description

template<Decoder::ValidateFlag validate>
class v8::internal::wasm::WasmDecoder< validate >

Definition at line 743 of file function-body-decoder-impl.h.


The documentation for this class was generated from the following file: