v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::WasmStreaming Class Referencefinal

#include <v8-wasm.h>

Collaboration diagram for v8::WasmStreaming:

Classes

class  WasmStreamingImpl
 

Public Member Functions

 WasmStreaming (std::unique_ptr< WasmStreamingImpl > impl)
 
 ~WasmStreaming ()
 
void OnBytesReceived (const uint8_t *bytes, size_t size)
 
void Finish (bool can_use_compiled_module=true)
 
void Abort (MaybeLocal< Value > exception)
 
bool SetCompiledModuleBytes (const uint8_t *bytes, size_t size)
 
void SetMoreFunctionsCanBeSerializedCallback (std::function< void(CompiledWasmModule)>)
 
void SetUrl (const char *url, size_t length)
 

Static Public Member Functions

static std::shared_ptr< WasmStreamingUnpack (Isolate *isolate, Local< Value > value)
 

Static Public Attributes

static constexpr internal::ExternalPointerTag kManagedTag
 

Private Attributes

std::unique_ptr< WasmStreamingImplimpl_
 

Detailed Description

The V8 interface for WebAssembly streaming compilation. When streaming compilation is initiated, V8 passes a {WasmStreaming} object to the embedder such that the embedder can pass the input bytes for streaming compilation to V8.

Definition at line 131 of file v8-wasm.h.

Constructor & Destructor Documentation

◆ WasmStreaming()

v8::WasmStreaming::WasmStreaming ( std::unique_ptr< WasmStreamingImpl > impl)
explicit

Definition at line 11936 of file api.cc.

◆ ~WasmStreaming()

v8::WasmStreaming::~WasmStreaming ( )
default

Member Function Documentation

◆ Abort()

void v8::WasmStreaming::Abort ( MaybeLocal< Value > exception)

Abort streaming compilation. If {exception} has a value, then the promise associated with streaming compilation is rejected with that value. If {exception} does not have value, the promise does not get rejected. {Abort} must not be called repeatedly, or after {Finish}.

Definition at line 11948 of file api.cc.

◆ Finish()

void v8::WasmStreaming::Finish ( bool can_use_compiled_module = true)

{Finish} should be called after all received bytes where passed to {OnBytesReceived} to tell V8 that there will be no more bytes. {Finish} must not be called after {Abort} has been called already. If {can_use_compiled_module} is true and {SetCompiledModuleBytes} was previously called, the compiled module bytes can be used. If {can_use_compiled_module} is false, the compiled module bytes previously set by {SetCompiledModuleBytes} should not be used.

Definition at line 11946 of file api.cc.

◆ OnBytesReceived()

void v8::WasmStreaming::OnBytesReceived ( const uint8_t * bytes,
size_t size )

Pass a new chunk of bytes to WebAssembly streaming compilation. The buffer passed into {OnBytesReceived} is owned by the caller.

Definition at line 11942 of file api.cc.

◆ SetCompiledModuleBytes()

bool v8::WasmStreaming::SetCompiledModuleBytes ( const uint8_t * bytes,
size_t size )

Passes previously compiled module bytes. This must be called before {OnBytesReceived}, {Finish}, or {Abort}. Returns true if the module bytes can be used, false otherwise. The buffer passed via {bytes} and {size} is owned by the caller. If {SetCompiledModuleBytes} returns true, the buffer must remain valid until either {Finish} or {Abort} completes. The compiled module bytes should not be used until {Finish(true)} is called, because they can be invalidated later by {Finish(false)}.

Definition at line 11950 of file api.cc.

◆ SetMoreFunctionsCanBeSerializedCallback()

void v8::WasmStreaming::SetMoreFunctionsCanBeSerializedCallback ( std::function< void(CompiledWasmModule)> callback)

Sets a callback which is called whenever a significant number of new functions are ready for serialization.

Definition at line 11954 of file api.cc.

◆ SetUrl()

void v8::WasmStreaming::SetUrl ( const char * url,
size_t length )

Definition at line 11959 of file api.cc.

◆ Unpack()

std::shared_ptr< WasmStreaming > v8::WasmStreaming::Unpack ( Isolate * isolate,
Local< Value > value )
static

Unpacks a {WasmStreaming} object wrapped in a {Managed} for the embedder. Since the embedder is on the other side of the API, it cannot unpack the {Managed} itself.

Definition at line 11962 of file api.cc.

Member Data Documentation

◆ impl_

std::unique_ptr<WasmStreamingImpl> v8::WasmStreaming::impl_
private

Definition at line 199 of file v8-wasm.h.

◆ kManagedTag

internal::ExternalPointerTag v8::WasmStreaming::kManagedTag
staticconstexpr
Initial value:

Definition at line 133 of file v8-wasm.h.


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