blob: 00a9b878c6d44a7c4028cfaeea984b171b9d9aeb [file] [log] [blame]
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00001// 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_MODULE_DECODER_H_
6#define V8_WASM_MODULE_DECODER_H_
7
8#include "src/wasm/ast-decoder.h"
9#include "src/wasm/wasm-module.h"
10
11namespace v8 {
12namespace internal {
13namespace wasm {
14// Decodes the bytes of a WASM module between {module_start} and {module_end}.
15ModuleResult DecodeWasmModule(Isolate* isolate, Zone* zone,
16 const byte* module_start, const byte* module_end,
Ben Murdochda12d292016-06-02 14:46:10 +010017 bool verify_functions, ModuleOrigin origin);
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000018
19// Exposed for testing. Decodes a single function signature, allocating it
20// in the given zone. Returns {nullptr} upon failure.
21FunctionSig* DecodeWasmSignatureForTesting(Zone* zone, const byte* start,
22 const byte* end);
23
24// Decodes the bytes of a WASM function between
25// {function_start} and {function_end}.
26FunctionResult DecodeWasmFunction(Isolate* isolate, Zone* zone, ModuleEnv* env,
27 const byte* function_start,
28 const byte* function_end);
29} // namespace wasm
30} // namespace internal
31} // namespace v8
32
33#endif // V8_WASM_MODULE_DECODER_H_