5#ifndef INCLUDE_V8_WASM_H_
6#define INCLUDE_V8_WASM_H_
28namespace internal::wasm {
37 std::unique_ptr<const uint8_t[]>
buffer;
46 "Use
as_span() instead; external construction is deprecated")
54 :
buffer(std::move(other.buffer)),
size(std::exchange(other.size, 0)) {}
58 buffer = std::move(other.buffer);
59 size = std::exchange(other.size, 0);
66 constexpr std::span<const uint8_t>
as_span()
const {
89 const std::string&
source_url()
const {
return source_url_; }
97 std::string source_url);
99 const std::shared_ptr<internal::wasm::NativeModule> native_module_;
100 const std::string source_url_;
119#ifdef V8_ENABLE_CHECKS
126 static void CheckCast(
Value*
object);
163 int builtins = Builtins::kNone;
167 const char* imported_string_constants_module =
nullptr;
171 std::string_view source_url = {};
178 Isolate* isolate, std::span<const uint8_t> wire_bytes);
185 Isolate* isolate, std::span<const uint8_t> wire_bytes,
189#ifdef V8_ENABLE_CHECKS
196 static void CheckCast(
Value* obj);
208 internal::ManagedTypeId::kWasmStreaming;
209 class WasmStreamingImpl;
277 void SetUrl(
const char* url,
size_t length);
288 std::unique_ptr<WasmStreamingImpl> impl_;
336 const std::function<
void(
338 resolution_callback);
367 void SetUrl(
const char* url,
size_t length);
371 const std::unique_ptr<Impl> impl_;
Definition: v8-array-buffer.h:143
Definition: v8-array-buffer.h:244
const std::string & source_url() const
Definition: v8-wasm.h:89
std::span< const uint8_t > GetWireBytesRef()
Definition: v8-isolate.h:305
Definition: v8-local-handle.h:359
Definition: v8-local-handle.h:730
Definition: v8-object.h:267
int PlatformHandle
Definition: v8-platform.h:500
Definition: v8-value.h:32
Definition: v8-wasm.h:379
static Local< WasmMemoryMapDescriptor > New(Isolate *isolate, WasmFileDescriptor fd)
WasmMemoryMapDescriptor()=delete
SharedMemoryHandle::PlatformHandle WasmFileDescriptor
Definition: v8-wasm.h:383
static bool Unmap(Isolate *isolate, Local< Object > wasm_memory_map_descriptor)
static size_t Map(Isolate *isolate, Local< Object > wasm_memory_map_descriptor, Local< WasmMemoryObject > memory, size_t offset)
Definition: v8-wasm.h:104
WasmMemoryObject()=delete
Definition: v8-wasm.h:297
void OnBytesReceived(const uint8_t *bytes, size_t size)
void SetMoreFunctionsCanBeSerializedCallback(std::function< void(CompiledWasmModule)>)
void SetHasCompiledModuleBytes()
WasmStreaming::ModuleCachingCallback ModuleCachingCallback
Definition: v8-wasm.h:299
WasmModuleCompilation(const WasmModuleCompilation &)=delete
WasmModuleCompilation(const CompileOptions &options={})
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
Definition: v8-wasm.h:130
static MaybeLocal< WasmModuleObject > Compile(Isolate *isolate, std::span< const uint8_t > wire_bytes, const CompileOptions &options)
WasmModuleObject()=delete
static MaybeLocal< WasmModuleObject > FromCompiledModule(Isolate *isolate, const CompiledWasmModule &)
static MaybeLocal< WasmModuleObject > Compile(Isolate *isolate, std::span< const uint8_t > wire_bytes)
CompiledWasmModule GetCompiledModule()
static WasmModuleObject * Cast(Value *value)
Definition: v8-wasm.h:188
Definition: v8-wasm.h:211
virtual std::span< const uint8_t > GetWireBytes() const =0
virtual bool SetCachedCompiledModuleBytes(std::span< const uint8_t >)=0
Definition: v8-wasm.h:205
std::function< void(ModuleCachingInterface &)> ModuleCachingCallback
Definition: v8-wasm.h:225
WasmStreaming(std::unique_ptr< WasmStreamingImpl > impl)
void Finish(const ModuleCachingCallback &caching_callback)
static std::shared_ptr< WasmStreaming > Unpack(Isolate *isolate, Local< Data > data)
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)
ManagedTypeId
Definition: v8-internal.h:597
Definition: libplatform.h:15
constexpr bool empty() const
Definition: v8-wasm.h:64
size_t size
Definition: v8-wasm.h:39
OwnedBuffer & operator=(OwnedBuffer &&other) noexcept
Definition: v8-wasm.h:56
std::unique_ptr< const uint8_t[]> buffer
Definition: v8-wasm.h:37
OwnedBuffer(const OwnedBuffer &)=delete
OwnedBuffer(OwnedBuffer &&other) noexcept
Definition: v8-wasm.h:53
OwnedBuffer & operator=(const OwnedBuffer &)=delete
constexpr std::span< const uint8_t > as_span() const
Definition: v8-wasm.h:66
Definition: v8-wasm.h:156
Definition: v8-wasm.h:152
#define V8_EXPORT
Definition: v8config.h:874
#define V8_INLINE
Definition: v8config.h:518
#define V8_DEPRECATE_SOON(message)
Definition: v8config.h:631
#define END_ALLOW_USE_DEPRECATED()
Definition: v8config.h:651
#define START_ALLOW_USE_DEPRECATED()
Definition: v8config.h:650