| 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: --harmony-simd --harmony-tostring --harmony-reflect | 5 // Flags: --harmony-simd --harmony-tostring --harmony-reflect |
| 6 // Flags: --allow-natives-syntax --expose-natives-as natives --noalways-opt | 6 // Flags: --allow-natives-syntax --expose-natives-as natives --noalways-opt |
| 7 | 7 |
| 8 function lanesForType(typeName) { | 8 function lanesForType(typeName) { |
| 9 // The lane count follows the first 'x' in the type name, which begins with | 9 // The lane count follows the first 'x' in the type name, which begins with |
| 10 // 'float', 'int', or 'bool'. | 10 // 'float', 'int', or 'bool'. |
| (...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 400 test(false, true); | 400 test(false, true); |
| 401 break; | 401 break; |
| 402 } | 402 } |
| 403 } | 403 } |
| 404 | 404 |
| 405 | 405 |
| 406 function TestSameValue(type, lanes) { | 406 function TestSameValue(type, lanes) { |
| 407 var simdFn = SIMD[type]; | 407 var simdFn = SIMD[type]; |
| 408 var instance = createInstance(type); | 408 var instance = createInstance(type); |
| 409 var sameValue = Object.is | 409 var sameValue = Object.is |
| 410 var sameValueZero = natives.ImportNow("SameValueZero"); | 410 var sameValueZero = function(x, y) { return %SameValue(x, y); } |
| 411 | 411 |
| 412 // SIMD values should not be the same as instances of different types. | 412 // SIMD values should not be the same as instances of different types. |
| 413 checkTypeMatrix(type, function(other) { | 413 checkTypeMatrix(type, function(other) { |
| 414 assertFalse(sameValue(instance, other)); | 414 assertFalse(sameValue(instance, other)); |
| 415 assertFalse(sameValueZero(instance, other)); | 415 assertFalse(sameValueZero(instance, other)); |
| 416 }); | 416 }); |
| 417 | 417 |
| 418 // Test that f(a, b) is the same as f(SIMD(a), SIMD(b)) for sameValue and | 418 // Test that f(a, b) is the same as f(SIMD(a), SIMD(b)) for sameValue and |
| 419 // sameValueZero, at every lane. | 419 // sameValueZero, at every lane. |
| 420 function test(a, b) { | 420 function test(a, b) { |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 625 assertEquals(expected, JSON.stringify(input, null, 0)); | 625 assertEquals(expected, JSON.stringify(input, null, 0)); |
| 626 } | 626 } |
| 627 | 627 |
| 628 TestStringify(undefined, SIMD.Float32x4(1, 2, 3, 4)); | 628 TestStringify(undefined, SIMD.Float32x4(1, 2, 3, 4)); |
| 629 TestStringify('[null]', [SIMD.Float32x4(1, 2, 3, 4)]); | 629 TestStringify('[null]', [SIMD.Float32x4(1, 2, 3, 4)]); |
| 630 TestStringify('[{}]', [Object(SIMD.Float32x4(1, 2, 3, 4))]); | 630 TestStringify('[{}]', [Object(SIMD.Float32x4(1, 2, 3, 4))]); |
| 631 var simd_wrapper = Object(SIMD.Float32x4(1, 2, 3, 4)); | 631 var simd_wrapper = Object(SIMD.Float32x4(1, 2, 3, 4)); |
| 632 TestStringify('{}', simd_wrapper); | 632 TestStringify('{}', simd_wrapper); |
| 633 simd_wrapper.a = 1; | 633 simd_wrapper.a = 1; |
| 634 TestStringify('{"a":1}', simd_wrapper); | 634 TestStringify('{"a":1}', simd_wrapper); |
| OLD | NEW |