| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Flags: --expose-wasm | 5 // Flags: --expose-wasm |
| 6 | 6 |
| 7 load("test/mjsunit/wasm/wasm-constants.js"); | 7 load("test/mjsunit/wasm/wasm-constants.js"); |
| 8 load("test/mjsunit/wasm/wasm-module-builder.js"); | 8 load("test/mjsunit/wasm/wasm-module-builder.js"); |
| 9 | 9 |
| 10 const JS = false; // for testing the tests. | 10 const JS = false; // for testing the tests. |
| 11 const WRONG1 = 0x0DEDFACE; | 11 const WRONG1 = 0x0DEDFACE; |
| 12 const WRONG2 = 0x0DEDBABE; | 12 const WRONG2 = 0x0DEDBABE; |
| 13 const WRONG3 = 0x0DEDD011 | 13 const WRONG3 = 0x0DEDD011 |
| 14 | 14 |
| 15 function makeSelect(type, args, which) { | 15 function makeSelect(type, args, which) { |
| 16 if (JS) { | 16 if (JS) { |
| 17 // For testing the tests. | 17 // For testing the tests. |
| 18 return function() { | 18 return function() { |
| 19 var val = +arguments[which]; | 19 var val = +arguments[which]; |
| 20 print(" " + val); | 20 print(" " + val); |
| 21 if (type == kAstI32) return val | 0; | 21 if (type == kAstI32) return val | 0; |
| 22 if (type == kAstF32) return Math.fround(val); | 22 if (type == kAstF32) return Math.fround(val); |
| 23 if (type == kAstF64) return val; | 23 if (type == kAstF64) return val; |
| 24 return undefined; | 24 return undefined; |
| 25 } | 25 } |
| 26 } | 26 } |
| 27 | 27 |
| 28 var builder = new WasmModuleBuilder(); | 28 var builder = new WasmModuleBuilder(); |
| 29 var sig = new Array(); | 29 var sig = new Array(); |
| 30 sig.push(args); |
| 31 for (var i = 0; i < args; i++) sig.push(type); |
| 32 sig.push(1); |
| 30 sig.push(type); | 33 sig.push(type); |
| 31 for (var i = 0; i < args; i++) sig.push(type); | |
| 32 builder.addFunction("select", sig) | 34 builder.addFunction("select", sig) |
| 33 .addBody([kExprGetLocal, which]) | 35 .addBody([kExprGetLocal, which]) |
| 34 .exportFunc(); | 36 .exportFunc(); |
| 35 | 37 |
| 36 return builder.instantiate().exports.select; | 38 return builder.instantiate().exports.select; |
| 37 } | 39 } |
| 38 | 40 |
| 39 const inputs = [ | 41 const inputs = [ |
| 40 -1, 0, 2.2, 3.3, 3000.11, Infinity, -Infinity, NaN | 42 -1, 0, 2.2, 3.3, 3000.11, Infinity, -Infinity, NaN |
| 41 ]; | 43 ]; |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 assertEquals(C(val), select(WRONG1, WRONG2, val)); | 314 assertEquals(C(val), select(WRONG1, WRONG2, val)); |
| 313 | 315 |
| 314 // under args | 316 // under args |
| 315 assertEquals(C(undefined), select()); | 317 assertEquals(C(undefined), select()); |
| 316 assertEquals(C(undefined), select(0xDEDFACE)); | 318 assertEquals(C(undefined), select(0xDEDFACE)); |
| 317 assertEquals(C(undefined), select(WRONG1, WRONG2)); | 319 assertEquals(C(undefined), select(WRONG1, WRONG2)); |
| 318 // over args | 320 // over args |
| 319 assertEquals(C(val), select(WRONG1, WRONG2, val, WRONG3)); | 321 assertEquals(C(val), select(WRONG1, WRONG2, val, WRONG3)); |
| 320 } | 322 } |
| 321 })(); | 323 })(); |
| OLD | NEW |