5#ifndef INCLUDE_V8_WASM_H_
6#define INCLUDE_V8_WASM_H_
24namespace internal::wasm {
32 std::unique_ptr<const uint8_t[]>
buffer;
56 const std::string&
source_url()
const {
return source_url_; }
64 std::string source_url);
66 const std::shared_ptr<internal::wasm::NativeModule> native_module_;
67 const std::string source_url_;
81#ifdef V8_ENABLE_CHECKS
88 static void CheckCast(
Value*
object);
116#ifdef V8_ENABLE_CHECKS
123 static void CheckCast(
Value* obj);
135 internal::kWasmWasmStreamingTag;
136 class WasmStreamingImpl;
174 "Use the new variant of Finish which takes the caching callback argument")
175 void Finish(
bool can_use_compiled_module = true) {
177 if (can_use_compiled_module && !cached_compiled_module_bytes_.empty()) {
178 callback = [bytes = cached_compiled_module_bytes_](
180 caching_interface.SetCachedCompiledModuleBytes(bytes);
215 "Use SetHasCompiledModule in combination with the new variant of Finish")
216 bool SetCompiledModuleBytes(const uint8_t* bytes,
size_t size) {
217 SetHasCompiledModuleBytes();
218 cached_compiled_module_bytes_ = {bytes, size};
245 void SetUrl(
const char* url,
size_t length);
256 std::unique_ptr<WasmStreamingImpl> impl_;
305 const std::function<
void(
307 resolution_callback);
336 void SetUrl(
const char* url,
size_t length);
340 const std::unique_ptr<Impl> impl_;
353#ifdef V8_ENABLE_CHECKS
365 static void CheckCast(
Value*
object);
MemorySpan< const uint8_t > GetWireBytesRef()
const std::string & source_url() const
Definition: v8-wasm.h:56
Definition: v8-isolate.h:291
Definition: v8-local-handle.h:366
Definition: v8-local-handle.h:734
Definition: v8-memory-span.h:48
Definition: v8-object.h:262
Definition: v8-value.h:32
Definition: v8-wasm.h:348
int32_t WasmFileDescriptor
Definition: v8-wasm.h:359
static Local< WasmMemoryMapDescriptor > New(Isolate *isolate, WasmFileDescriptor fd)
WasmMemoryMapDescriptor()=delete
static WasmMemoryMapDescriptor * Cast(Value *value)
Definition: v8-wasm.h:352
static WasmMemoryObject * Cast(Value *value)
Definition: v8-wasm.h:80
WasmMemoryObject()=delete
Local< ArrayBuffer > Buffer()
Definition: v8-wasm.h:268
void OnBytesReceived(const uint8_t *bytes, size_t size)
void SetMoreFunctionsCanBeSerializedCallback(std::function< void(CompiledWasmModule)>)
void SetHasCompiledModuleBytes()
WasmStreaming::ModuleCachingCallback ModuleCachingCallback
Definition: v8-wasm.h:270
WasmModuleCompilation(const WasmModuleCompilation &)=delete
void Finish(Isolate *, const ModuleCachingCallback &caching_callback, const std::function< void(std::variant< Local< WasmModuleObject >, Local< Value > > module_or_error)> &resolution_callback)
void SetUrl(const char *url, size_t length)
WasmModuleCompilation & operator=(const WasmModuleCompilation &)=delete
WasmModuleObject()=delete
static MaybeLocal< WasmModuleObject > Compile(Isolate *isolate, MemorySpan< const uint8_t > wire_bytes)
static MaybeLocal< WasmModuleObject > FromCompiledModule(Isolate *isolate, const CompiledWasmModule &)
CompiledWasmModule GetCompiledModule()
static WasmModuleObject * Cast(Value *value)
Definition: v8-wasm.h:115
Definition: v8-wasm.h:138
virtual MemorySpan< const uint8_t > GetWireBytes() const =0
virtual bool SetCachedCompiledModuleBytes(MemorySpan< const uint8_t >)=0
Definition: v8-wasm.h:132
std::function< void(ModuleCachingInterface &)> ModuleCachingCallback
Definition: v8-wasm.h:152
WasmStreaming(std::unique_ptr< WasmStreamingImpl > impl)
void Finish(const ModuleCachingCallback &caching_callback)
static std::shared_ptr< WasmStreaming > Unpack(Isolate *isolate, Local< Value > value)
void SetUrl(const char *url, size_t length)
void SetHasCompiledModuleBytes()
void SetMoreFunctionsCanBeSerializedCallback(std::function< void(CompiledWasmModule)>)
void Abort(MaybeLocal< Value > exception)
void OnBytesReceived(const uint8_t *bytes, size_t size)
ExternalPointerTag
Definition: v8-internal.h:548
Definition: libplatform.h:15
size_t size
Definition: v8-wasm.h:33
std::unique_ptr< const uint8_t[]> buffer
Definition: v8-wasm.h:32
OwnedBuffer(std::unique_ptr< const uint8_t[]> buffer, size_t size)
Definition: v8-wasm.h:34
#define V8_EXPORT
Definition: v8config.h:855
#define V8_INLINE
Definition: v8config.h:508
#define V8_DEPRECATE_SOON(message)
Definition: v8config.h:622