| // 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: --allow-natives-syntax --liftoff --no-future --no-wasm-tier-up |
| // Compile functions 0 and 2 with Turbofan, the rest with Liftoff: |
| // Flags: --wasm-tier-mask-for-testing=5 |
| |
| load('test/mjsunit/wasm/wasm-module-builder.js'); |
| |
| const num_functions = 5; |
| |
| function create_builder() { |
| const builder = new WasmModuleBuilder(); |
| for (let i = 0; i < num_functions; ++i) { |
| builder.addFunction('f' + i, kSig_i_v) |
| .addBody(wasmI32Const(i)) |
| .exportFunc(); |
| } |
| return builder; |
| } |
| |
| function check(instance) { |
| for (let i = 0; i < num_functions; ++i) { |
| const expect_liftoff = i != 0 && i != 2; |
| assertEquals( |
| expect_liftoff, %IsLiftoffFunction(instance.exports['f' + i]), |
| 'function ' + i); |
| } |
| } |
| |
| (function testTierTestingFlag() { |
| print(arguments.callee.name); |
| const instance = create_builder().instantiate(); |
| check(instance); |
| })(); |
| |
| |
| async function testTierTestingFlag() { |
| print(arguments.callee.name); |
| const instance = await create_builder().asyncInstantiate(); |
| check(instance); |
| } |
| |
| assertPromiseResult(testTierTestingFlag()); |