1 // Copyright 2015 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef V8_WASM_JS_H_ 6 #define V8_WASM_JS_H_ 7 8 #include "src/allocation.h" 9 #include "src/base/hashmap.h" 10 11 namespace v8 { 12 namespace internal { 13 // Exposes a WASM API to JavaScript through the V8 API. 14 class WasmJs { 15 public: 16 static void Install(Isolate* isolate, Handle<JSGlobalObject> global_object); 17 18 V8_EXPORT_PRIVATE static void InstallWasmModuleSymbolIfNeeded( 19 Isolate* isolate, Handle<JSGlobalObject> global, Handle<Context> context); 20 21 V8_EXPORT_PRIVATE static void InstallWasmMapsIfNeeded( 22 Isolate* isolate, Handle<Context> context); 23 static void InstallWasmConstructors(Isolate* isolate, 24 Handle<JSGlobalObject> global, 25 Handle<Context> context); 26 27 // WebAssembly.Table. 28 static bool IsWasmTableObject(Isolate* isolate, Handle<Object> value); 29 30 // WebAssembly.Memory 31 static bool IsWasmMemoryObject(Isolate* isolate, Handle<Object> value); 32 }; 33 34 } // namespace internal 35 } // namespace v8 36 #endif 37