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

Public Types

enum  ValidateFlag : bool { kValidate = true, kNoValidate = false }
 
enum  AdvancePCFlag : bool { kAdvancePc = true, kNoAdvancePc = false }
 
enum  TraceFlag : bool { kTrace = true, kNoTrace = false }
 

Public Member Functions

 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
 

Public Attributes

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_
 

Protected Attributes

const byte * start_
 
const byte * pc_
 
const byte * end_
 
uint32_t buffer_offset_
 
uint32_t error_offset_ = 0
 
std::string error_msg_
 

Detailed Description

Definition at line 36 of file decoder.h.


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