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 function testCallImport(func, check) { | 10 function testCallImport(func, check) { |
(...skipping 27 matching lines...) Expand all Loading... |
38 was_called = true; | 38 was_called = true; |
39 params[0] = this; | 39 params[0] = this; |
40 params[1] = a; | 40 params[1] = a; |
41 params[2] = b; | 41 params[2] = b; |
42 return (a - b) | 0; | 42 return (a - b) | 0; |
43 } | 43 } |
44 | 44 |
45 function check_FOREIGN_SUB(r, a, b) { | 45 function check_FOREIGN_SUB(r, a, b) { |
46 assertEquals(a - b | 0, r); | 46 assertEquals(a - b | 0, r); |
47 assertTrue(was_called); | 47 assertTrue(was_called); |
48 // assertEquals(global, params[0]); // sloppy mode | 48 assertEquals(global, params[0]); // sloppy mode |
49 assertEquals(a, params[1]); | 49 assertEquals(a, params[1]); |
50 assertEquals(b, params[2]); | 50 assertEquals(b, params[2]); |
51 was_called = false; | 51 was_called = false; |
52 } | 52 } |
53 | 53 |
54 testCallImport(FOREIGN_SUB, check_FOREIGN_SUB); | 54 testCallImport(FOREIGN_SUB, check_FOREIGN_SUB); |
55 | 55 |
56 | 56 |
57 function FOREIGN_ABCD(a, b, c, d) { | 57 function FOREIGN_ABCD(a, b, c, d) { |
58 print("FOREIGN_ABCD(" + a + ", " + b + ", " + c + ", " + d + ")"); | 58 print("FOREIGN_ABCD(" + a + ", " + b + ", " + c + ", " + d + ")"); |
59 was_called = true; | 59 was_called = true; |
60 params[0] = this; | 60 params[0] = this; |
61 params[1] = a; | 61 params[1] = a; |
62 params[2] = b; | 62 params[2] = b; |
63 params[3] = c; | 63 params[3] = c; |
64 params[4] = d; | 64 params[4] = d; |
65 return (a * b * 6) | 0; | 65 return (a * b * 6) | 0; |
66 } | 66 } |
67 | 67 |
68 function check_FOREIGN_ABCD(r, a, b) { | 68 function check_FOREIGN_ABCD(r, a, b) { |
69 assertEquals((a * b * 6) | 0, r); | 69 assertEquals((a * b * 6) | 0, r); |
70 assertTrue(was_called); | 70 assertTrue(was_called); |
71 // assertEquals(global, params[0]); // sloppy mode. | 71 assertEquals(global, params[0]); // sloppy mode. |
72 assertEquals(a, params[1]); | 72 assertEquals(a, params[1]); |
73 assertEquals(b, params[2]); | 73 assertEquals(b, params[2]); |
74 assertEquals(undefined, params[3]); | 74 assertEquals(undefined, params[3]); |
75 assertEquals(undefined, params[4]); | 75 assertEquals(undefined, params[4]); |
76 was_called = false; | 76 was_called = false; |
77 } | 77 } |
78 | 78 |
79 testCallImport(FOREIGN_ABCD, check_FOREIGN_ABCD); | 79 testCallImport(FOREIGN_ABCD, check_FOREIGN_ABCD); |
80 | 80 |
81 function FOREIGN_ARGUMENTS0() { | 81 function FOREIGN_ARGUMENTS0() { |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 kExprCallImport, kArity0, 1, // -- | 274 kExprCallImport, kArity0, 1, // -- |
275 kExprI32Add, // -- | 275 kExprI32Add, // -- |
276 ]) // -- | 276 ]) // -- |
277 .exportFunc(); | 277 .exportFunc(); |
278 | 278 |
279 var main = builder.instantiate({foo: foo, bar: bar}).exports.main; | 279 var main = builder.instantiate({foo: foo, bar: bar}).exports.main; |
280 assertEquals(expected, main()); | 280 assertEquals(expected, main()); |
281 } | 281 } |
282 | 282 |
283 testCallImport2(function() { return 33; }, function () { return 44; }, 77); | 283 testCallImport2(function() { return 33; }, function () { return 44; }, 77); |
OLD | NEW |