Home | History | Annotate | Download | only in wasm
      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