// Copyright 2017 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. #if !V8_ENABLE_WEBASSEMBLY #error This header should only be included if WebAssembly is enabled. #endif // !V8_ENABLE_WEBASSEMBLY #ifndef V8_WASM_WASM_SERIALIZATION_H_ #define V8_WASM_WASM_SERIALIZATION_H_ #include "src/wasm/wasm-code-manager.h" #include "src/wasm/wasm-objects.h" namespace v8::internal::wasm { // Support for serializing WebAssembly {NativeModule} objects. This class takes // a snapshot of the module state at instantiation, and other code that modifies // the module after that won't affect the serialized result. class V8_EXPORT_PRIVATE WasmSerializer { … }; // Support for deserializing WebAssembly {NativeModule} objects. // Checks the version header of the data against the current version. bool IsSupportedVersion(base::Vector<const uint8_t> data, WasmEnabledFeatures enabled_features); // Deserializes the given data to create a Wasm module object. V8_EXPORT_PRIVATE MaybeHandle<WasmModuleObject> DeserializeNativeModule( Isolate*, base::Vector<const uint8_t> data, base::Vector<const uint8_t> wire_bytes, const CompileTimeImports& compile_imports, base::Vector<const char> source_url); } // namespace v8::internal::wasm #endif // V8_WASM_WASM_SERIALIZATION_H_