regress-6196.js 714 Bytes
Newer Older
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
// Copyright 2017 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: --validate-asm --allow-natives-syntax

function Module(stdlib, imports, buffer) {
  "use asm";
  function f(a,b,c) {
    a = a | 0;
    b = b | 0;
    c = c | 0;
    var x = 0;
    x = funTable[a & 1](funTable[b & 1](c) | 0) | 0;
    return x | 0;
  }
  function g(a) {
    a = a | 0;
    return (a + 23) | 0;
  }
  function h(a) {
    a = a | 0;
    return (a + 42) | 0;
  }
  var funTable = [ g, h ];
  return f;
}
var f = Module(this);
assertTrue(%IsWasmCode(f));
assertTrue(%IsAsmWasmCode(Module));
assertEquals(165, f(0, 1, 100));