// 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.

#ifndef V8_WASM_WASM_JS_H_
#define V8_WASM_WASM_JS_H_

#include "src/globals.h"

namespace v8 {
namespace internal {

namespace wasm {
class StreamingDecoder;
}

// Exposes a WebAssembly API to JavaScript through the V8 API.
class WasmJs {
 public:
  V8_EXPORT_PRIVATE static void Install(Isolate* isolate,
                                        bool exposed_on_global_object);
};

}  // namespace internal
}  // namespace v8

#endif  // V8_WASM_WASM_JS_H_
