| // Copyright 2016 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: --expose-wasm |
| |
| load("test/mjsunit/wasm/wasm-module-builder.js"); |
| |
| (function TestFunctionPrototype() { |
| var builder = new WasmModuleBuilder(); |
| |
| var f = builder.addFunction("nine", kSig_i_v) |
| .addBody([kExprI32Const, 9]) |
| .exportFunc(); |
| |
| var func = builder.instantiate().exports.nine; |
| |
| // Check type and existence of prototype |
| assertEquals('function', typeof func); |
| assertEquals('function', typeof func.apply); |
| assertEquals('prototype' in func, false); |
| assertEquals(String(f.index), func.name); |
| assertEquals(undefined, func.displayName); |
| |
| // Check that .apply() works. |
| assertEquals(9, func.apply([])); |
| assertEquals(9, func.apply([1])); |
| assertEquals(9, func.apply([2, 3])); |
| assertEquals(9, func.apply([6, 7, 9, 9])); |
| |
| // TODO(titzer): assertEquals(1, func.length); |
| |
| // Check we don't crash when converting to a string. |
| print(func.toString()); |
| })(); |