|  | // Copyright 2019 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. | 
|  |  | 
|  | load('test/mjsunit/wasm/wasm-module-builder.js'); | 
|  |  | 
|  | const builder = new WasmModuleBuilder(); | 
|  | const sig0 = builder.addType(makeSig([kWasmF32], [kWasmI32])); | 
|  | const sig1 = builder.addType(makeSig([kWasmI64, kWasmI32, kWasmI64, kWasmF32, kWasmI64], [kWasmF32])); | 
|  | const sig2 = builder.addType(makeSig([kWasmF32], [kWasmF32])); | 
|  | // Generate function 1 (out of 3). | 
|  | builder.addFunction(undefined, sig0).addBody([kExprI32Const, 0x00]); | 
|  | // Generate function 2 (out of 3). | 
|  | builder.addFunction(undefined, sig1) | 
|  | .addBody([ | 
|  | // signature: f_lilfl | 
|  | kExprBlock, kWasmF32,   // @1 f32 | 
|  | kExprI32Const, 0x00, | 
|  | kExprIf, kWasmStmt,   // @5 | 
|  | kExprLoop, kWasmStmt,   // @7 | 
|  | kExprBlock, kWasmI32,   // @9 i32 | 
|  | kExprF32Const, 0x00, 0x00, 0x80, 0xc1, | 
|  | kExprF32Const, 0x00, 0x00, 0x80, 0x45, | 
|  | kExprCallFunction, 0x00, // function #0: i_f | 
|  | kExprBrIf, 0x03,   // depth=3 | 
|  | kExprDrop, | 
|  | kExprI32Const, 0xd8, 0x00, | 
|  | kExprEnd,   // @29 | 
|  | kExprBrIf, 0x00,   // depth=0 | 
|  | kExprEnd,   // @32 | 
|  | kExprF32Const, 0x00, 0x00, 0x80, 0x3f, | 
|  | kExprF32Const, 0x00, 0x00, 0x80, 0xc6, | 
|  | kExprBlock, kWasmI32,   // @43 i32 | 
|  | kExprF32Const, 0x00, 0x00, 0x80, 0x3f, | 
|  | kExprCallFunction, 0x02, // function #2: f_f | 
|  | kExprDrop, | 
|  | kExprI32Const, 0x68, | 
|  | kExprEnd,   // @55 | 
|  | kExprBrIf, 0x01,   // depth=1 | 
|  | kExprI32Const, 0x00, | 
|  | kExprSelect, | 
|  | kExprDrop, | 
|  | kExprUnreachable, | 
|  | kExprElse,   // @63 | 
|  | kExprNop, | 
|  | kExprEnd,   // @65 | 
|  | kExprF32Const, 0x00, 0x00, 0x69, 0x43, | 
|  | kExprEnd   // @71 | 
|  | ]); | 
|  | // Generate function 3 (out of 3). | 
|  | builder.addFunction(undefined, sig2).addBody([ | 
|  | kExprF32Const, 0x00, 0x00, 0x80, 0x3f | 
|  | ]); | 
|  | builder.instantiate(); |