// Copyright 2021 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef INCLUDE_V8_WASM_H_ #define INCLUDE_V8_WASM_H_ #include <functional> #include <memory> #include <string> #include "v8-internal.h" // NOLINT(build/include_directory) #include "v8-local-handle.h" // NOLINT(build/include_directory) #include "v8-memory-span.h" // NOLINT(build/include_directory) #include "v8-object.h" // NOLINT(build/include_directory) #include "v8config.h" // NOLINT(build/include_directory) namespace v8 { class ArrayBuffer; class Promise; namespace internal { namespace wasm { class NativeModule; class StreamingDecoder; } // namespace wasm } // namespace internal /** * An owned byte buffer with associated size. */ struct OwnedBuffer { … }; // Wrapper around a compiled WebAssembly module, which is potentially shared by // different WasmModuleObjects. class V8_EXPORT CompiledWasmModule { … }; // An instance of WebAssembly.Memory. class V8_EXPORT WasmMemoryObject : public Object { … }; // An instance of WebAssembly.Module. class V8_EXPORT WasmModuleObject : public Object { … }; /** * 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. */ class V8_EXPORT WasmStreaming final { … }; } // namespace v8 #endif // INCLUDE_V8_WASM_H_