%PDF- %PDF-
Direktori : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/wasm/ |
Current File : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/wasm/wasm-js.h |
// Copyright 2015 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_JS_H_ #define V8_WASM_WASM_JS_H_ #include <memory> #include "src/common/globals.h" namespace v8 { class Value; template <typename T> class FunctionCallbackInfo; class WasmStreaming; } // namespace v8 namespace v8::internal { namespace wasm { class CompilationResultResolver; class StreamingDecoder; V8_EXPORT_PRIVATE std::unique_ptr<WasmStreaming> StartStreamingForTesting( Isolate*, std::shared_ptr<wasm::CompilationResultResolver>); #define WASM_JS_EXTERNAL_REFERENCE_LIST(V) \ V(WebAssemblyCompile) \ V(WebAssemblyException) \ V(WebAssemblyExceptionGetArg) \ V(WebAssemblyExceptionIs) \ V(WebAssemblyGlobal) \ V(WebAssemblyGlobalGetValue) \ V(WebAssemblyGlobalSetValue) \ V(WebAssemblyGlobalValueOf) \ V(WebAssemblyInstance) \ V(WebAssemblyInstanceGetExports) \ V(WebAssemblyInstantiate) \ V(WebAssemblyMemory) \ V(WebAssemblyMemoryGetBuffer) \ V(WebAssemblyMemoryGrow) \ V(WebAssemblyModule) \ V(WebAssemblyModuleCustomSections) \ V(WebAssemblyModuleExports) \ V(WebAssemblyModuleImports) \ V(WebAssemblyTable) \ V(WebAssemblyTableGet) \ V(WebAssemblyTableGetLength) \ V(WebAssemblyTableGrow) \ V(WebAssemblyTableSet) \ V(WebAssemblyTag) \ V(WebAssemblyValidate) #define DECL_WASM_JS_EXTERNAL_REFERENCE(Name) \ V8_EXPORT_PRIVATE void Name(const v8::FunctionCallbackInfo<v8::Value>& info); WASM_JS_EXTERNAL_REFERENCE_LIST(DECL_WASM_JS_EXTERNAL_REFERENCE) #undef DECL_WASM_JS_EXTERNAL_REFERENCE } // namespace wasm // Exposes a WebAssembly API to JavaScript through the V8 API. class WasmJs { public: // Creates all API objects before the snapshot is serialized. V8_EXPORT_PRIVATE static void PrepareForSnapshot(Isolate* isolate); // Finalizes API object setup: // - installs the WebAssembly object on the global object, if requested; and // - creates API objects and properties that depend on runtime-enabled flags. V8_EXPORT_PRIVATE static void Install(Isolate* isolate, bool exposed_on_global_object); V8_EXPORT_PRIVATE static void InstallConditionalFeatures( Isolate* isolate, Handle<NativeContext> context); }; } // namespace v8::internal #endif // V8_WASM_WASM_JS_H_