summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/wasm/instantiate-run-basic.js
blob: b0016ec9aad330aebdf24103624fecc91754a81c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 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.

// Flags: --allow-natives-syntax

load("test/mjsunit/wasm/wasm-constants.js");
load("test/mjsunit/wasm/wasm-module-builder.js");

const kReturnValue = 15;

function getBuilder() {
  var builder = new WasmModuleBuilder();

  builder.addFunction("main", kSig_i_i)
    .addBody([kExprI32Const, kReturnValue])
    .exportFunc();
  return builder;
}

(function BasicTest() {
  var builder = getBuilder();
  var main = builder.instantiate().exports.main;
  assertEquals(kReturnValue, main());
})();

(function AsyncTest() {
  var builder = getBuilder();
  var buffer = builder.toBuffer();
  assertPromiseResult(
    WebAssembly.instantiate(buffer)
      .then(pair => pair.instance.exports.main(), assertUnreachable)
      .then(result => assertEquals(kReturnValue, result), assertUnreachable));
})();