diff --git a/test/built-ins/Atomics/Symbol.toStringTag.js b/test/built-ins/Atomics/Symbol.toStringTag.js index 83d8c5695cfc741583f018e00eddee82dc1cfe0a..5ae41be23154aa40fdba69840f3e45af9f31e08b 100644 --- a/test/built-ins/Atomics/Symbol.toStringTag.js +++ b/test/built-ins/Atomics/Symbol.toStringTag.js @@ -14,7 +14,11 @@ includes: [propertyHelper.js] features: [Atomics, Symbol, Symbol.toStringTag] ---*/ -assert.sameValue(Atomics[Symbol.toStringTag], 'Atomics'); +assert.sameValue( + Atomics[Symbol.toStringTag], + 'Atomics', + 'The value of Atomics[Symbol.toStringTag] is "Atomics"' +); verifyNotEnumerable(Atomics, Symbol.toStringTag); verifyNotWritable(Atomics, Symbol.toStringTag); diff --git a/test/built-ins/Atomics/add/bad-range.js b/test/built-ins/Atomics/add/bad-range.js index fd02ea5ae3d83e6e6bdea3624541fe6b4c8fec7a..e718c447c883e0c75a0ac7c861f04ed2160ced4e 100644 --- a/test/built-ins/Atomics/add/bad-range.js +++ b/test/built-ins/Atomics/add/bad-range.js @@ -9,14 +9,14 @@ includes: [testAtomics.js, testTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); -var views = intArrayConstructors.slice(); +const buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { let view = new TA(buffer); testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { Atomics.add(view, IdxGen(view), 10); - }, 'Atomics.add(view, IdxGen(view), 10) throws RangeError'); + }, '`Atomics.add(view, IdxGen(view), 10)` throws RangeError'); }); }, views); diff --git a/test/built-ins/Atomics/add/bigint/bad-range.js b/test/built-ins/Atomics/add/bigint/bad-range.js index 2cc2155d6712aa41d174476aa0595546062a6f1d..50dbda674e38ac0ed7dc8e6914f15dc3c56f83f7 100644 --- a/test/built-ins/Atomics/add/bigint/bad-range.js +++ b/test/built-ins/Atomics/add/bigint/bad-range.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.add description: > @@ -8,14 +7,14 @@ description: > includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); +var buffer = new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { let view = new TA(buffer); + testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { - Atomics.add(view, IdxGen(view), 10); - }, 'Atomics.add(view, IdxGen(view), 10) throws RangeError'); + Atomics.add(view, IdxGen(view), 10n); + }, '`Atomics.add(view, IdxGen(view), 10n)` throws RangeError'); }); -}); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/add/bigint/good-views.js b/test/built-ins/Atomics/add/bigint/good-views.js index c3781dbfc6ba9d0824782f94440c50e28beccd9e..5af7ffad241024037319daf23eeec6f4030986ce 100644 --- a/test/built-ins/Atomics/add/bigint/good-views.js +++ b/test/built-ins/Atomics/add/bigint/good-views.js @@ -1,53 +1,53 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.add description: Test Atomics.add on arrays that allow atomic operations. includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var sab = new SharedArrayBuffer(1024); -var ab = new ArrayBuffer(16); +const sab = new SharedArrayBuffer(1024); +const ab = new ArrayBuffer(16); testWithBigIntTypedArrayConstructors(function(TA) { - // Make it interesting - use non-zero byteOffsets and non-zero indexes. - - var view = new TA(sab, 32, 20); - var control = new TA(ab, 0, 2); - - // Add positive number - view[8] = 0; - assert.sameValue(Atomics.add(view, 8, 10), 0, 'Atomics.add(view, 8, 10) returns 0'); - assert.sameValue(view[8], 10, 'The value of view[8] is 10'); - - // Add negative number - assert.sameValue(Atomics.add(view, 8, -5), 10, 'Atomics.add(view, 8, -5) returns 10'); - assert.sameValue(view[8], 5, 'The value of view[8] is 5'); - - view[3] = -5; - control[0] = -5; - assert.sameValue(Atomics.add(view, 3, 0), control[0], - 'Atomics.add(view, 3, 0) equals the value of control[0] (-5)'); - - control[0] = 12345; - view[3] = 12345; - assert.sameValue(Atomics.add(view, 3, 0), control[0], - 'Atomics.add(view, 3, 0) equals the value of control[0] (12345)'); - - control[0] = 123456789; - view[3] = 123456789; - assert.sameValue(Atomics.add(view, 3, 0), control[0], - 'Atomics.add(view, 3, 0) equals the value of control[0] (123456789)'); + const view = new TA(sab, 32, 20); + const control = new TA(ab, 0, 2); + view[8] = 0n; + assert.sameValue(Atomics.add(view, 8, 10n), 0, 'Atomics.add(view, 8, 10n) returns 0'); + assert.sameValue(view[8], 10n, 'The value of view[8] is 10n'); + assert.sameValue(Atomics.add(view, 8, -5n), 10n, 'Atomics.add(view, 8, -5n) returns 10n'); + assert.sameValue(view[8], 5n, 'The value of view[8] is 5n'); + view[3] = -5n; + control[0] = -5n; + + assert.sameValue( + Atomics.add(view, 3, 0n), + control[0], + 'Atomics.add(view, 3, 0n) returns the value of `control[0]` (-5n)' + ); + + control[0] = 12345n; + view[3] = 12345n; + + assert.sameValue( + Atomics.add(view, 3, 0n), + control[0], + 'Atomics.add(view, 3, 0n) returns the value of `control[0]` (12345n)' + ); + + control[0] = 123456789n; + view[3] = 123456789n; + + assert.sameValue( + Atomics.add(view, 3, 0n), + control[0], + 'Atomics.add(view, 3, 0n) returns the value of `control[0]` (123456789n)' + ); - // In-bounds boundary cases for indexing testWithAtomicsInBoundsIndices(function(IdxGen) { let Idx = IdxGen(view); view.fill(0); - // Atomics.store() computes an index from Idx in the same way as other - // Atomics operations, not quite like view[Idx]. - Atomics.store(view, Idx, 37); - assert.sameValue(Atomics.add(view, Idx, 0), 37, 'Atomics.add(view, Idx, 0) returns 37'); + Atomics.store(view, Idx, 37n); + assert.sameValue(Atomics.add(view, Idx, 0), 37n, 'Atomics.add(view, Idx, 0) returns 37n'); }); -}); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/add/bigint/nonshared-int-views.js b/test/built-ins/Atomics/add/bigint/nonshared-int-views.js index 72d796fd2e4faf32ec496a802c7fa72ebe1aad27..1231021f152ed21fb67d86845301fec1205010ce 100644 --- a/test/built-ins/Atomics/add/bigint/nonshared-int-views.js +++ b/test/built-ins/Atomics/add/bigint/nonshared-int-views.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.add description: > @@ -8,11 +7,10 @@ description: > includes: [testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, TypedArray] ---*/ - -var ab = new ArrayBuffer(16); +var ab = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { - Atomics.add(new TA(ab), 0, 0); - }, 'Atomics.add(new TA(ab), 0, 0) throws TypeError'); -}); + Atomics.add(new TA(ab), 0, 0n); + }, '`Atomics.add(new TA(ab), 0, 0n)` throws TypeError'); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/add/expected-return-value.js b/test/built-ins/Atomics/add/expected-return-value.js index 6de926e9b348bdc494a58820fe89f4c97e762c2c..1840a92f7aee554b5bca00dcd550da17fd129578 100644 --- a/test/built-ins/Atomics/add/expected-return-value.js +++ b/test/built-ins/Atomics/add/expected-return-value.js @@ -27,9 +27,10 @@ info: | features: [Atomics, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4); -var i32a = new Int32Array(buffer); -var newValue = 0b00000001000000001000000010000001; +const i32a = new Int32Array( + new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4) +); +const newValue = 0b00000001000000001000000010000001; assert.sameValue(Atomics.add(i32a, 0, newValue), 0, 'Atomics.add(i32a, 0, newValue) returns 0'); -assert.sameValue(i32a[0], newValue, 'The value of i32a[0] equals the value of newValue (0b00000001000000001000000010000001)'); +assert.sameValue(i32a[0], newValue, 'The value of i32a[0] equals the value of `newValue` (0b00000001000000001000000010000001)'); diff --git a/test/built-ins/Atomics/add/good-views.js b/test/built-ins/Atomics/add/good-views.js index 07731646be44597e33a1abdbe6f1435c9a5f4272..9e047fbd4ac45db06ef33c9a8c2ef6bca8c3d3ab 100644 --- a/test/built-ins/Atomics/add/good-views.js +++ b/test/built-ins/Atomics/add/good-views.js @@ -8,15 +8,15 @@ includes: [testAtomics.js, testTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ -var sab = new SharedArrayBuffer(1024); -var ab = new ArrayBuffer(16); -var views = intArrayConstructors.slice(); +const sab = new SharedArrayBuffer(1024); +const ab = new ArrayBuffer(16); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { // Make it interesting - use non-zero byteOffsets and non-zero indexes. - var view = new TA(sab, 32, 20); - var control = new TA(ab, 0, 2); + const view = new TA(sab, 32, 20); + const control = new TA(ab, 0, 2); // Add positive number view[8] = 0; @@ -30,17 +30,17 @@ testWithTypedArrayConstructors(function(TA) { view[3] = -5; control[0] = -5; assert.sameValue(Atomics.add(view, 3, 0), control[0], - 'Atomics.add(view, 3, 0) equals the value of control[0] (-5)'); + 'Atomics.add(view, 3, 0) returns the value of `control[0]` (-5)'); control[0] = 12345; view[3] = 12345; assert.sameValue(Atomics.add(view, 3, 0), control[0], - 'Atomics.add(view, 3, 0) equals the value of control[0] (12345)'); + 'Atomics.add(view, 3, 0) returns the value of `control[0]` (12345)'); control[0] = 123456789; view[3] = 123456789; assert.sameValue(Atomics.add(view, 3, 0), control[0], - 'Atomics.add(view, 3, 0) equals the value of control[0] (123456789)'); + 'Atomics.add(view, 3, 0) returns the value of `control[0]` (123456789)'); // In-bounds boundary cases for indexing testWithAtomicsInBoundsIndices(function(IdxGen) { diff --git a/test/built-ins/Atomics/add/non-views.js b/test/built-ins/Atomics/add/non-views.js index 82711c52ab78dc50f0e323d645b698234ae3ec7c..6e5cbbd9a6c17307ebcf85acc4ad8033fb0772e8 100644 --- a/test/built-ins/Atomics/add/non-views.js +++ b/test/built-ins/Atomics/add/non-views.js @@ -12,5 +12,5 @@ features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedAr testWithAtomicsNonViewValues(function(view) { assert.throws(TypeError, function() { Atomics.add(view, 0, 0); - }, 'Atomics.add(view, 0, 0) throws TypeError'); + }, '`Atomics.add(view, 0, 0)` throws TypeError'); }); diff --git a/test/built-ins/Atomics/add/nonshared-int-views.js b/test/built-ins/Atomics/add/nonshared-int-views.js index b09f1b7c2f11e3e7caaa4d5cac0b80df139610a5..fd90fa00545eb1868b8f12972a92b5ee2df5c465 100644 --- a/test/built-ins/Atomics/add/nonshared-int-views.js +++ b/test/built-ins/Atomics/add/nonshared-int-views.js @@ -9,11 +9,11 @@ includes: [testTypedArray.js] features: [ArrayBuffer, Atomics, TypedArray] ---*/ -var ab = new ArrayBuffer(16); -var views = intArrayConstructors.slice(); +const ab = new ArrayBuffer(16); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.add(new TA(ab), 0, 0); - }, 'Atomics.add(new TA(ab), 0, 0) throws TypeError'); + }, '`Atomics.add(new TA(ab), 0, 0)` throws TypeError'); }, views); diff --git a/test/built-ins/Atomics/add/shared-nonint-views.js b/test/built-ins/Atomics/add/shared-nonint-views.js index 505ea511c37c1368917e53dd20b0923d4656e379..e3f05edf2263c309b28840a3ae911e1c65757e15 100644 --- a/test/built-ins/Atomics/add/shared-nonint-views.js +++ b/test/built-ins/Atomics/add/shared-nonint-views.js @@ -9,10 +9,10 @@ includes: [testTypedArray.js] features: [Atomics, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(1024); +const buffer = new SharedArrayBuffer(1024); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.add(new TA(buffer), 0, 0); - }, 'Atomics.add(new TA(buffer), 0, 0) throws TypeError'); + }, '`Atomics.add(new TA(buffer), 0, 0)` throws TypeError'); }, floatArrayConstructors); diff --git a/test/built-ins/Atomics/and/bad-range.js b/test/built-ins/Atomics/and/bad-range.js index d44b4b4fbf3052996847bbbe12f765f6e49565ef..9bd37b2fbef90f12e2d70f111ef2a18440acb2b1 100644 --- a/test/built-ins/Atomics/and/bad-range.js +++ b/test/built-ins/Atomics/and/bad-range.js @@ -9,14 +9,14 @@ includes: [testAtomics.js, testTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); -var views = intArrayConstructors.slice(); +const buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { - let view = new TA(buffer); + const view = new TA(buffer); testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { Atomics.and(view, IdxGen(view), 10); - }, 'Atomics.and(view, IdxGen(view), 10) throws RangeError'); + }, '`Atomics.and(view, IdxGen(view), 10)` throws RangeError'); }); }, views); diff --git a/test/built-ins/Atomics/and/bigint/bad-range.js b/test/built-ins/Atomics/and/bigint/bad-range.js index 6e688ed178c4299fce0cb2c34adfe22fa26f760f..eb75e9c6875ea11dfc0385b0e94acc9830d440bd 100644 --- a/test/built-ins/Atomics/and/bigint/bad-range.js +++ b/test/built-ins/Atomics/and/bigint/bad-range.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.and description: > @@ -8,14 +7,14 @@ description: > includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); +const buffer = new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { - let view = new TA(buffer); + const view = new TA(buffer); + testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { - Atomics.and(view, IdxGen(view), 10); - }, 'Atomics.and(view, IdxGen(view), 10) throws RangeError'); + Atomics.and(view, IdxGen(view), 10n); + }, '`Atomics.and(view, IdxGen(view), 10n)` throws RangeError'); }); -}); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/and/bigint/good-views.js b/test/built-ins/Atomics/and/bigint/good-views.js index 9f31e377a022e053c22b9fe30f40c6acee8ccac6..09cad2ce4474ad266ce5eaa4ac324066074dd945 100644 --- a/test/built-ins/Atomics/and/bigint/good-views.js +++ b/test/built-ins/Atomics/and/bigint/good-views.js @@ -1,68 +1,83 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.and description: Test Atomics.and on arrays that allow atomic operations includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var sab = new SharedArrayBuffer(1024); -var ab = new ArrayBuffer(16); +const sab = new SharedArrayBuffer(1024); +const ab = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { - // Make it interesting - use non-zero byteOffsets and non-zero indexes. + const view = new TA(sab, 32, 20); + const control = new TA(ab, 0, 2); + view[8] = 0x33333333n; + control[0] = 0x33333333n; - var view = new TA(sab, 32, 20); - var control = new TA(ab, 0, 2); + assert.sameValue( + Atomics.and(view, 8, 0x55555555n), + control[0], + 'Atomics.and(view, 8, 0x55555555n) returns the value of `control[0]` (0x33333333n)' + ); - view[8] = 0x33333333; - control[0] = 0x33333333; - assert.sameValue(Atomics.and(view, 8, 0x55555555), control[0], - 'Atomics.and(view, 8, 0x55555555) equals the value of control[0] (0x33333333)'); + control[0] = 0x11111111n; - control[0] = 0x11111111; assert.sameValue( view[8], control[0], - 'The value of view[8] equals the value of control[0] (0x11111111)' + 'The value of view[8] equals the value of `control[0]` (0x11111111n)' + ); + + assert.sameValue( + Atomics.and(view, 8, 0xF0F0F0F0n), + control[0], + 'Atomics.and(view, 8, 0xF0F0F0F0n) returns the value of `control[0]` (0x11111111n)' ); - assert.sameValue(Atomics.and(view, 8, 0xF0F0F0F0), control[0], - 'Atomics.and(view, 8, 0xF0F0F0F0) equals the value of control[0] (0x11111111)'); - control[0] = 0x10101010; + control[0] = 0x10101010n; + assert.sameValue( view[8], control[0], - 'The value of view[8] equals the value of control[0] (0x10101010)' + 'The value of view[8] equals the value of `control[0]` (0x10101010n)' ); - view[3] = -5; - control[0] = -5; - assert.sameValue(Atomics.and(view, 3, 0), control[0], - 'Atomics.and(view, 3, 0) equals the value of control[0] (-5)'); - assert.sameValue(view[3], 0, 'The value of view[3] is 0'); + view[3] = -5n; + control[0] = -5n; - control[0] = 12345; - view[3] = 12345; - assert.sameValue(Atomics.and(view, 3, 0), control[0], - 'Atomics.and(view, 3, 0) equals the value of control[0] (12345)'); - assert.sameValue(view[3], 0, 'The value of view[3] is 0'); + assert.sameValue( + Atomics.and(view, 3, 0n), + control[0], + 'Atomics.and(view, 3, 0n) returns the value of `control[0]` (-5n)' + ); + + assert.sameValue(view[3], 0n, 'The value of view[3] is 0n'); + control[0] = 12345n; + view[3] = 12345n; + + assert.sameValue( + Atomics.and(view, 3, 0n), + control[0], + 'Atomics.and(view, 3, 0n) returns the value of `control[0]` (12345n)' + ); + + assert.sameValue(view[3], 0n, 'The value of view[3] is 0n'); + control[0] = 123456789n; + view[3] = 123456789n; + + assert.sameValue( + Atomics.and(view, 3, 0n), + control[0], + 'Atomics.and(view, 3, 0n) returns the value of `control[0]` (123456789n)' + ); - control[0] = 123456789; - view[3] = 123456789; - assert.sameValue(Atomics.and(view, 3, 0), control[0], - 'Atomics.and(view, 3, 0) equals the value of control[0] (123456789)'); - assert.sameValue(view[3], 0, 'The value of view[3] is 0'); + assert.sameValue(view[3], 0n, 'The value of view[3] is 0n'); - // In-bounds boundary cases for indexing testWithAtomicsInBoundsIndices(function(IdxGen) { let Idx = IdxGen(view); - view.fill(0); - // Atomics.store() computes an index from Idx in the same way as other - // Atomics operations, not quite like view[Idx]. - Atomics.store(view, Idx, 37); - assert.sameValue(Atomics.and(view, Idx, 0), 37, 'Atomics.and(view, Idx, 0) returns 37'); + view.fill(0n); + Atomics.store(view, Idx, 37n); + assert.sameValue(Atomics.and(view, Idx, 0n), 37n, 'Atomics.and(view, Idx, 0n) returns 37n'); }); -}); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/and/bigint/nonshared-int-views.js b/test/built-ins/Atomics/and/bigint/nonshared-int-views.js index 17b270dc23baa6c2d4a13e7b505a7d5fbc98379e..e4d86fbee4accff06bcce49d7693b19e06bbaea3 100644 --- a/test/built-ins/Atomics/and/bigint/nonshared-int-views.js +++ b/test/built-ins/Atomics/and/bigint/nonshared-int-views.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.and description: > @@ -8,11 +7,10 @@ description: > includes: [testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, TypedArray] ---*/ - -var buffer = new ArrayBuffer(16); +const buffer = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { - Atomics.and(new TA(buffer), 0, 0); - }, 'Atomics.and(new TA(buffer), 0, 0) throws TypeError'); -}); + Atomics.and(new TA(buffer), 0, 0n); + }, '`Atomics.and(new TA(buffer), 0, 0n)` throws TypeError'); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/and/expected-return-value.js b/test/built-ins/Atomics/and/expected-return-value.js index a9a9e5d30d1b08cbba469cc597c73f4f3e6c153a..b587dfcb9a07ab39f4d57214a7555d1fce43fa35 100644 --- a/test/built-ins/Atomics/and/expected-return-value.js +++ b/test/built-ins/Atomics/and/expected-return-value.js @@ -27,18 +27,19 @@ info: | features: [Atomics, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4); -var i32a = new Int32Array(buffer); -var initial = 0b00000001000000001000000010000001; -var other = 0b00000001111111111000000011111111; -var anded = 0b00000001000000001000000010000001; +const i32a = new Int32Array( + new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4) +); +const a = 0b00000001000000001000000010000001; +const b = 0b00000001111111111000000011111111; +const c = 0b00000001000000001000000010000001; -i32a[0] = initial; +i32a[0] = a; assert.sameValue( - Atomics.and(i32a, 0, other), - initial, - 'Atomics.and(i32a, 0, other) equals the value of `initial` (0b00000001000000001000000010000001)' + Atomics.and(i32a, 0, b), + a, + 'Atomics.and(i32a, 0, b) returns the value of `a` (0b00000001000000001000000010000001)' ); -assert.sameValue(i32a[0], anded, 'The value of i32a[0] equals the value of `anded` (0b00000001000000001000000010000001)'); +assert.sameValue(i32a[0], c, 'The value of i32a[0] equals the value of `c` (0b00000001000000001000000010000001)'); diff --git a/test/built-ins/Atomics/and/good-views.js b/test/built-ins/Atomics/and/good-views.js index d6ec3fafbbf9aa91d992d0953b8209abae2ba3de..b1dee33d0fc1a0704a957d519e8f2d0184948f58 100644 --- a/test/built-ins/Atomics/and/good-views.js +++ b/test/built-ins/Atomics/and/good-views.js @@ -8,53 +8,53 @@ includes: [testAtomics.js, testTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ -var sab = new SharedArrayBuffer(1024); -var ab = new ArrayBuffer(16); -var views = intArrayConstructors.slice(); +const sab = new SharedArrayBuffer(1024); +const ab = new ArrayBuffer(16); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { // Make it interesting - use non-zero byteOffsets and non-zero indexes. - var view = new TA(sab, 32, 20); - var control = new TA(ab, 0, 2); + const view = new TA(sab, 32, 20); + const control = new TA(ab, 0, 2); view[8] = 0x33333333; control[0] = 0x33333333; assert.sameValue(Atomics.and(view, 8, 0x55555555), control[0], - 'Atomics.and(view, 8, 0x55555555) equals the value of control[0] (0x33333333)'); + 'Atomics.and(view, 8, 0x55555555) returns the value of `control[0]` (0x33333333)'); control[0] = 0x11111111; assert.sameValue( view[8], control[0], - 'The value of view[8] equals the value of control[0] (0x11111111)' + 'The value of view[8] equals the value of `control[0]` (0x11111111)' ); assert.sameValue(Atomics.and(view, 8, 0xF0F0F0F0), control[0], - 'Atomics.and(view, 8, 0xF0F0F0F0) equals the value of control[0] (0x11111111)'); + 'Atomics.and(view, 8, 0xF0F0F0F0) returns the value of `control[0]` (0x11111111)'); control[0] = 0x10101010; assert.sameValue( view[8], control[0], - 'The value of view[8] equals the value of control[0] (0x10101010)' + 'The value of view[8] equals the value of `control[0]` (0x10101010)' ); view[3] = -5; control[0] = -5; assert.sameValue(Atomics.and(view, 3, 0), control[0], - 'Atomics.and(view, 3, 0) equals the value of control[0] (-5)'); + 'Atomics.and(view, 3, 0) returns the value of `control[0]` (-5)'); assert.sameValue(view[3], 0, 'The value of view[3] is 0'); control[0] = 12345; view[3] = 12345; assert.sameValue(Atomics.and(view, 3, 0), control[0], - 'Atomics.and(view, 3, 0) equals the value of control[0] (12345)'); + 'Atomics.and(view, 3, 0) returns the value of `control[0]` (12345)'); assert.sameValue(view[3], 0, 'The value of view[3] is 0'); control[0] = 123456789; view[3] = 123456789; assert.sameValue(Atomics.and(view, 3, 0), control[0], - 'Atomics.and(view, 3, 0) equals the value of control[0] (123456789)'); + 'Atomics.and(view, 3, 0) returns the value of `control[0]` (123456789)'); assert.sameValue(view[3], 0, 'The value of view[3] is 0'); // In-bounds boundary cases for indexing diff --git a/test/built-ins/Atomics/and/non-views.js b/test/built-ins/Atomics/and/non-views.js index 45544aee28b0a58e4d39eabbac60c5dc1cb06aa7..4b50141d8fa3a5a19a2d19a1dc4dc8b09ca0c989 100644 --- a/test/built-ins/Atomics/and/non-views.js +++ b/test/built-ins/Atomics/and/non-views.js @@ -12,5 +12,5 @@ features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedAr testWithAtomicsNonViewValues(function(view) { assert.throws(TypeError, function() { Atomics.and(view, 0, 0); - }, 'Atomics.and(view, 0, 0) throws TypeError'); + }, '`Atomics.and(view, 0, 0)` throws TypeError'); }); diff --git a/test/built-ins/Atomics/and/nonshared-int-views.js b/test/built-ins/Atomics/and/nonshared-int-views.js index b578f411ac9db06f5ef687a9624148d609209699..ab37d61c981d9c4ec2adb92ab847f04fb641f907 100644 --- a/test/built-ins/Atomics/and/nonshared-int-views.js +++ b/test/built-ins/Atomics/and/nonshared-int-views.js @@ -9,11 +9,11 @@ includes: [testTypedArray.js] features: [ArrayBuffer, Atomics, TypedArray] ---*/ -var buffer = new ArrayBuffer(16); -var views = intArrayConstructors.slice(); +const buffer = new ArrayBuffer(16); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.and(new TA(buffer), 0, 0); - }, 'Atomics.and(new TA(buffer), 0, 0) throws TypeError'); + }, '`Atomics.and(new TA(buffer), 0, 0)` throws TypeError'); }, views); diff --git a/test/built-ins/Atomics/and/shared-nonint-views.js b/test/built-ins/Atomics/and/shared-nonint-views.js index 3dbd81b3b87399516ba468a92b71dd78348e9209..2ba7884540314c61520d946a4c6c830b5069a651 100644 --- a/test/built-ins/Atomics/and/shared-nonint-views.js +++ b/test/built-ins/Atomics/and/shared-nonint-views.js @@ -9,10 +9,10 @@ includes: [testTypedArray.js] features: [Atomics, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(1024); +const buffer = new SharedArrayBuffer(1024); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.and(new TA(buffer), 0, 0); - }, 'Atomics.and(new TA(buffer), 0, 0) throws TypeError'); + }, '`Atomics.and(new TA(buffer), 0, 0)` throws TypeError'); }, floatArrayConstructors); diff --git a/test/built-ins/Atomics/compareExchange/bad-range.js b/test/built-ins/Atomics/compareExchange/bad-range.js index 9f1bcb0105f00820543af340a463ac09ca33d9c0..f4d007db2703ed698e0bb9d6402f98571b0dbf4e 100644 --- a/test/built-ins/Atomics/compareExchange/bad-range.js +++ b/test/built-ins/Atomics/compareExchange/bad-range.js @@ -9,14 +9,14 @@ includes: [testAtomics.js, testTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); -var views = intArrayConstructors.slice(); +const buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { - let view = new TA(buffer); + const view = new TA(buffer); testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { Atomics.compareExchange(view, IdxGen(view), 10, 0); - }, 'Atomics.compareExchange(view, IdxGen(view), 10, 0) throws RangeError'); + }, '`Atomics.compareExchange(view, IdxGen(view), 10, 0)` throws RangeError'); }); }, views); diff --git a/test/built-ins/Atomics/compareExchange/bigint/bad-range.js b/test/built-ins/Atomics/compareExchange/bigint/bad-range.js index d28f9e861d35abf20e3d1f0f0f3c9e2fdf419c47..ed0929fd87da0d26a29c4d3378df2a8df4ff594f 100644 --- a/test/built-ins/Atomics/compareExchange/bigint/bad-range.js +++ b/test/built-ins/Atomics/compareExchange/bigint/bad-range.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.compareexchange description: > @@ -8,14 +7,14 @@ description: > includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); +const buffer = new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { - let view = new TA(buffer); + const view = new TA(buffer); + testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { - Atomics.compareExchange(view, IdxGen(view), 10, 0); - }, 'Atomics.compareExchange(view, IdxGen(view), 10, 0) throws RangeError'); + Atomics.compareExchange(view, IdxGen(view), 10, 0n); + }, '`Atomics.compareExchange(view, IdxGen(view), 10, 0n)` throws RangeError'); }); -}); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/compareExchange/bigint/good-views.js b/test/built-ins/Atomics/compareExchange/bigint/good-views.js index af8c26c093e4be9787bc6ee4b328dfa411809feb..c954bd52ace1169f2a3774282c59976af982d339 100644 --- a/test/built-ins/Atomics/compareExchange/bigint/good-views.js +++ b/test/built-ins/Atomics/compareExchange/bigint/good-views.js @@ -1,73 +1,91 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.compareexchange description: Test Atomics.compareExchange on arrays that allow atomic operations. includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var sab = new SharedArrayBuffer(1024); -var ab = new ArrayBuffer(16); +const sab = new SharedArrayBuffer(1024); +const ab = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { - // Make it interesting - use non-zero byteOffsets and non-zero indexes. + const view = new TA(sab, 32, 20); + const control = new TA(ab, 0, 2); + view[8] = 0n; + + assert.sameValue( + Atomics.compareExchange(view, 8, 0n, 10n), + 0n, + 'Atomics.compareExchange(view, 8, 0n, 10n) returns 0n' + ); + + assert.sameValue(view[8], 10n, 'The value of view[8] is 10n'); + view[8] = 0n; + + assert.sameValue( + Atomics.compareExchange(view, 8, 1n, 10n), + 0n, + 'Atomics.compareExchange(view, 8, 1n, 10n) returns 0n' + ); + + assert.sameValue(view[8], 0n, 'The value of view[8] is 0n'); + view[8] = 0n; - var view = new TA(sab, 32, 20); - var control = new TA(ab, 0, 2); + assert.sameValue( + Atomics.compareExchange(view, 8, 0n, -5n), + 0n, + 'Atomics.compareExchange(view, 8, 0n, -5n) returns 0n' + ); + + control[0] = -5n; - // Performs the exchange - view[8] = 0; assert.sameValue( - Atomics.compareExchange(view, 8, 0, 10), - 0, - 'Atomics.compareExchange(view, 8, 0, 10) returns 0' + view[8], + control[0], + 'The value of view[8] equals the value of `control[0]` (-5n)' ); - assert.sameValue(view[8], 10, 'The value of view[8] is 10'); - view[8] = 0; - assert.sameValue(Atomics.compareExchange(view, 8, 1, 10), 0, - 'Atomics.compareExchange(view, 8, 1, 10) returns 0'); - assert.sameValue(view[8], 0, 'The value of view[8] is 0'); + view[3] = -5n; + control[0] = -5n; - view[8] = 0; - assert.sameValue(Atomics.compareExchange(view, 8, 0, -5), 0, - 'Atomics.compareExchange(view, 8, 0, -5) returns 0'); - control[0] = -5; - assert.sameValue(view[8], control[0], 'The value of view[8] equals the value of control[0] (-5)'); + assert.sameValue( + Atomics.compareExchange(view, 3, -5n, 0n), + control[0], + 'Atomics.compareExchange(view, 3, -5n, 0n) returns the value of `control[0]` (-5n)' + ); + assert.sameValue(view[3], 0n, 'The value of view[3] is 0n'); + control[0] = 12345n; + view[3] = 12345n; - view[3] = -5; - control[0] = -5; - assert.sameValue(Atomics.compareExchange(view, 3, -5, 0), control[0], - 'Atomics.compareExchange(view, 3, -5, 0) equals the value of control[0] (-5)'); - assert.sameValue(view[3], 0, 'The value of view[3] is 0'); + assert.sameValue( + Atomics.compareExchange(view, 3, 12345n, 0n), + control[0], + 'Atomics.compareExchange(view, 3, 12345n, 0n) returns the value of `control[0]` (12345n)' + ); + assert.sameValue(view[3], 0n, 'The value of view[3] is 0n'); + control[0] = 123456789n; + view[3] = 123456789n; - control[0] = 12345; - view[3] = 12345; - assert.sameValue(Atomics.compareExchange(view, 3, 12345, 0), control[0], - 'Atomics.compareExchange(view, 3, 12345, 0) equals the value of control[0] (12345)'); - assert.sameValue(view[3], 0, 'The value of view[3] is 0'); + assert.sameValue( + Atomics.compareExchange(view, 3, 123456789n, 0n), + control[0], + 'Atomics.compareExchange(view, 3, 123456789n, 0n) returns the value of `control[0]` (123456789n)' + ); - control[0] = 123456789; - view[3] = 123456789; - assert.sameValue(Atomics.compareExchange(view, 3, 123456789, 0), control[0], - 'Atomics.compareExchange(view, 3, 123456789, 0) equals the value of control[0] (123456789)'); - assert.sameValue(view[3], 0, 'The value of view[3] is 0'); + assert.sameValue(view[3], 0n, 'The value of view[3] is 0n'); - // In-bounds boundary cases for indexing testWithAtomicsInBoundsIndices(function(IdxGen) { let Idx = IdxGen(view); - view.fill(0); - // Atomics.store() computes an index from Idx in the same way as other - // Atomics operations, not quite like view[Idx]. - Atomics.store(view, Idx, 37); + view.fill(0n); + Atomics.store(view, Idx, 37n); + assert.sameValue( - Atomics.compareExchange(view, Idx, 37, 0), - 37, - 'Atomics.compareExchange(view, Idx, 37, 0) returns 37' + Atomics.compareExchange(view, Idx, 37n, 0n), + 37n, + 'Atomics.compareExchange(view, Idx, 37n, 0n) returns 37n' ); }); -}); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/compareExchange/bigint/nonshared-int-views.js b/test/built-ins/Atomics/compareExchange/bigint/nonshared-int-views.js index 5efe40c8e62b7af0165317a8d33a576e7d101a6a..ad4cb89f10bd1e5e0fb475ede1434e2608b96267 100644 --- a/test/built-ins/Atomics/compareExchange/bigint/nonshared-int-views.js +++ b/test/built-ins/Atomics/compareExchange/bigint/nonshared-int-views.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.compareexchange description: > @@ -8,11 +7,10 @@ description: > includes: [testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, TypedArray] ---*/ - -var buffer = new ArrayBuffer(16); +const buffer = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { - Atomics.compareExchange(new TA(buffer), 0, 0, 0); - }, 'Atomics.compareExchange(new TA(buffer), 0, 0, 0) throws TypeError'); -}); + Atomics.compareExchange(new TA(buffer), 0, 0n, 0n); + }, '`Atomics.compareExchange(new TA(buffer), 0, 0n, 0n)` throws TypeError'); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/compareExchange/expected-return-value.js b/test/built-ins/Atomics/compareExchange/expected-return-value.js index 5810279b146c7c9e5ee0607c70f423b8e6eb0f66..9af90bae7b981a9d34154a7b2d3a7e56f09438ad 100644 --- a/test/built-ins/Atomics/compareExchange/expected-return-value.js +++ b/test/built-ins/Atomics/compareExchange/expected-return-value.js @@ -26,15 +26,15 @@ info: | features: [Atomics, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4); -var i32a = new Int32Array(buffer); -var update = 0b00000001000000001000000010000001; +const buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4); +const i32a = new Int32Array(buffer); +const update = 0b00000001000000001000000010000001; i32a[0] = update; assert.sameValue( Atomics.compareExchange(i32a, 0, update, 0), update, - 'Atomics.compareExchange(i32a, 0, update, 0) equals the value of update (0b00000001000000001000000010000001)' + 'Atomics.compareExchange(i32a, 0, update, 0) returns the value of `update` (0b00000001000000001000000010000001)' ); assert.sameValue(i32a[0], 0, 'The value of i32a[0] is 0'); diff --git a/test/built-ins/Atomics/compareExchange/good-views.js b/test/built-ins/Atomics/compareExchange/good-views.js index 091414b49606233a88c023660df9f2a39bcdf8ec..bc9d29af7fd402aa5a176599115d694e06133df5 100644 --- a/test/built-ins/Atomics/compareExchange/good-views.js +++ b/test/built-ins/Atomics/compareExchange/good-views.js @@ -8,15 +8,15 @@ includes: [testAtomics.js, testTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ -var sab = new SharedArrayBuffer(1024); -var ab = new ArrayBuffer(16); -var views = intArrayConstructors.slice(); +const sab = new SharedArrayBuffer(1024); +const ab = new ArrayBuffer(16); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { // Make it interesting - use non-zero byteOffsets and non-zero indexes. - var view = new TA(sab, 32, 20); - var control = new TA(ab, 0, 2); + const view = new TA(sab, 32, 20); + const control = new TA(ab, 0, 2); // Performs the exchange view[8] = 0; @@ -36,26 +36,26 @@ testWithTypedArrayConstructors(function(TA) { assert.sameValue(Atomics.compareExchange(view, 8, 0, -5), 0, 'Atomics.compareExchange(view, 8, 0, -5) returns 0'); control[0] = -5; - assert.sameValue(view[8], control[0], 'The value of view[8] equals the value of control[0] (-5)'); + assert.sameValue(view[8], control[0], 'The value of view[8] equals the value of `control[0]` (-5)'); view[3] = -5; control[0] = -5; assert.sameValue(Atomics.compareExchange(view, 3, -5, 0), control[0], - 'Atomics.compareExchange(view, 3, -5, 0) equals the value of control[0] (-5)'); + 'Atomics.compareExchange(view, 3, -5, 0) returns the value of `control[0]` (-5)'); assert.sameValue(view[3], 0, 'The value of view[3] is 0'); control[0] = 12345; view[3] = 12345; assert.sameValue(Atomics.compareExchange(view, 3, 12345, 0), control[0], - 'Atomics.compareExchange(view, 3, 12345, 0) equals the value of control[0] (12345)'); + 'Atomics.compareExchange(view, 3, 12345, 0) returns the value of `control[0]` (12345)'); assert.sameValue(view[3], 0, 'The value of view[3] is 0'); control[0] = 123456789; view[3] = 123456789; assert.sameValue(Atomics.compareExchange(view, 3, 123456789, 0), control[0], - 'Atomics.compareExchange(view, 3, 123456789, 0) equals the value of control[0] (123456789)'); + 'Atomics.compareExchange(view, 3, 123456789, 0) returns the value of `control[0]` (123456789)'); assert.sameValue(view[3], 0, 'The value of view[3] is 0'); // In-bounds boundary cases for indexing diff --git a/test/built-ins/Atomics/compareExchange/non-views.js b/test/built-ins/Atomics/compareExchange/non-views.js index 2f49a21c90be3fedf771b51207ce0a9084125a11..f32827e59409d759d31889421c879c5b6df5a370 100644 --- a/test/built-ins/Atomics/compareExchange/non-views.js +++ b/test/built-ins/Atomics/compareExchange/non-views.js @@ -12,5 +12,5 @@ features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedAr testWithAtomicsNonViewValues(function(view) { assert.throws(TypeError, function() { Atomics.compareExchange(view, 0, 0, 0); - }, 'Atomics.compareExchange(view, 0, 0, 0) throws TypeError'); + }, '`Atomics.compareExchange(view, 0, 0, 0)` throws TypeError'); }); diff --git a/test/built-ins/Atomics/compareExchange/nonshared-int-views.js b/test/built-ins/Atomics/compareExchange/nonshared-int-views.js index d1477aa0bec35ef64385ad74ee77c69cca0779ab..2ffd28d66a9c05d9632b372add27a3a0a5962133 100644 --- a/test/built-ins/Atomics/compareExchange/nonshared-int-views.js +++ b/test/built-ins/Atomics/compareExchange/nonshared-int-views.js @@ -15,5 +15,5 @@ var views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.compareExchange(new TA(buffer), 0, 0, 0); - }, 'Atomics.compareExchange(new TA(buffer), 0, 0, 0) throws TypeError'); + }, '`Atomics.compareExchange(new TA(buffer), 0, 0, 0)` throws TypeError'); }, views); diff --git a/test/built-ins/Atomics/compareExchange/shared-nonint-views.js b/test/built-ins/Atomics/compareExchange/shared-nonint-views.js index 3160bc441984e80470343add0b2387891b90c056..e0590d6e8b202c16965e51899333851a3fc79bff 100644 --- a/test/built-ins/Atomics/compareExchange/shared-nonint-views.js +++ b/test/built-ins/Atomics/compareExchange/shared-nonint-views.js @@ -14,5 +14,5 @@ var buffer = new SharedArrayBuffer(1024); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.compareExchange(new TA(buffer), 0, 0, 0); - }, 'Atomics.compareExchange(new TA(buffer), 0, 0, 0) throws TypeError'); + }, '`Atomics.compareExchange(new TA(buffer), 0, 0, 0)` throws TypeError'); }, floatArrayConstructors); diff --git a/test/built-ins/Atomics/exchange/bad-range.js b/test/built-ins/Atomics/exchange/bad-range.js index 80163b287f0043d89f88d2a8f2d0a7e343a0b7f9..330f3333cc76f2ffc4b2164a925b3c2146d0a519 100644 --- a/test/built-ins/Atomics/exchange/bad-range.js +++ b/test/built-ins/Atomics/exchange/bad-range.js @@ -9,14 +9,14 @@ includes: [testAtomics.js, testTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); -var views = intArrayConstructors.slice(); +const buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { - let view = new TA(buffer); + const view = new TA(buffer); testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { Atomics.exchange(view, IdxGen(view), 10, 0); - }, 'Atomics.exchange(view, IdxGen(view), 10, 0) throws RangeError'); + }, '`Atomics.exchange(view, IdxGen(view), 10, 0)` throws RangeError'); }); }, views); diff --git a/test/built-ins/Atomics/exchange/bigint/bad-range.js b/test/built-ins/Atomics/exchange/bigint/bad-range.js index 659d375970128939abd984b42012fe686e1f4dd1..b2326d0fa7e2c6a66baeeecf56fe5740370c4250 100644 --- a/test/built-ins/Atomics/exchange/bigint/bad-range.js +++ b/test/built-ins/Atomics/exchange/bigint/bad-range.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.exchange description: > @@ -8,14 +7,14 @@ description: > includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); +var buffer = new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { let view = new TA(buffer); + testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { - Atomics.exchange(view, IdxGen(view), 10, 0); - }, 'Atomics.exchange(view, IdxGen(view), 10, 0) throws RangeError'); + Atomics.exchange(view, IdxGen(view), 10n, 0n); + }, '`Atomics.exchange(view, IdxGen(view), 10n, 0n)` throws RangeError'); }); -}); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/exchange/bigint/good-views.js b/test/built-ins/Atomics/exchange/bigint/good-views.js index cca30e8aeb1524b6315d17d13ea9a8469425f13e..9c2cacc45b755aabef34ee9a4deb990d4d00ef1c 100644 --- a/test/built-ins/Atomics/exchange/bigint/good-views.js +++ b/test/built-ins/Atomics/exchange/bigint/good-views.js @@ -1,54 +1,71 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.exchange description: Test Atomics.exchange on arrays that allow atomic operations. includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var sab = new SharedArrayBuffer(1024); -var ab = new ArrayBuffer(16); +const sab = new SharedArrayBuffer(1024); +const ab = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { - // Make it interesting - use non-zero byteOffsets and non-zero indexes. + const view = new TA(sab, 32, 20); + const control = new TA(ab, 0, 2); + view[8] = 0n; + assert.sameValue(Atomics.exchange(view, 8, 10n), 0n, 'Atomics.exchange(view, 8, 10n) returns 0n'); + assert.sameValue(view[8], 10n, 'The value of view[8] is 10n'); + + assert.sameValue( + Atomics.exchange(view, 8, -5n), + 10n, + 'Atomics.exchange(view, 8, -5n) returns 10n' + ); - var view = new TA(sab, 32, 20); - var control = new TA(ab, 0, 2); + control[0] = -5n; - view[8] = 0; - assert.sameValue(Atomics.exchange(view, 8, 10), 0, - 'Atomics.exchange(view, 8, 10) returns 0'); - assert.sameValue(view[8], 10, 'The value of view[8] is 10'); + assert.sameValue( + view[8], + control[0], + 'The value of view[8] equals the value of `control[0]` (-5n)' + ); - assert.sameValue(Atomics.exchange(view, 8, -5), 10, - 'Atomics.exchange(view, 8, -5) returns 10'); - control[0] = -5; - assert.sameValue(view[8], control[0], 'The value of view[8] equals the value of control[0] (-5)'); + view[3] = -5n; + control[0] = -5n; - view[3] = -5; - control[0] = -5; - assert.sameValue(Atomics.exchange(view, 3, 0), control[0], - 'Atomics.exchange(view, 3, 0) equals the value of control[0] (-5)'); + assert.sameValue( + Atomics.exchange(view, 3, 0n), + control[0], + 'Atomics.exchange(view, 3, 0n) returns the value of `control[0]` (-5n)' + ); - control[0] = 12345; - view[3] = 12345; - assert.sameValue(Atomics.exchange(view, 3, 0), control[0], - 'Atomics.exchange(view, 3, 0) equals the value of control[0] (12345)'); + control[0] = 12345n; + view[3] = 12345n; - control[0] = 123456789; - view[3] = 123456789; - assert.sameValue(Atomics.exchange(view, 3, 0), control[0], - 'Atomics.exchange(view, 3, 0) equals the value of control[0] (123456789)'); + assert.sameValue( + Atomics.exchange(view, 3, 0n), + control[0], + 'Atomics.exchange(view, 3, 0n) returns the value of `control[0]` (12345n)' + ); + + control[0] = 123456789n; + view[3] = 123456789n; + + assert.sameValue( + Atomics.exchange(view, 3, 0n), + control[0], + 'Atomics.exchange(view, 3, 0n) returns the value of `control[0]` (123456789n)' + ); - // In-bounds boundary cases for indexing testWithAtomicsInBoundsIndices(function(IdxGen) { let Idx = IdxGen(view); - view.fill(0); - // Atomics.store() computes an index from Idx in the same way as other - // Atomics operations, not quite like view[Idx]. - Atomics.store(view, Idx, 37); - assert.sameValue(Atomics.exchange(view, Idx, 0), 37, 'Atomics.exchange(view, Idx, 0) returns 37'); + view.fill(0n); + Atomics.store(view, Idx, 37n); + + assert.sameValue( + Atomics.exchange(view, Idx, 0n), + 37n, + 'Atomics.exchange(view, Idx, 0n) returns 37n' + ); }); -}); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/exchange/bigint/nonshared-int-views.js b/test/built-ins/Atomics/exchange/bigint/nonshared-int-views.js index 8a2d2a82593b1b0a1c2f3c4da620df36531a4149..c5fc8213b52e4df4e7a5faec805da857d899fa5e 100644 --- a/test/built-ins/Atomics/exchange/bigint/nonshared-int-views.js +++ b/test/built-ins/Atomics/exchange/bigint/nonshared-int-views.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.exchange description: > @@ -8,11 +7,10 @@ description: > includes: [testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, TypedArray] ---*/ - -var buffer = new ArrayBuffer(16); +var buffer = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { - Atomics.exchange(new TA(buffer), 0, 0); - }, 'Atomics.exchange(new TA(buffer), 0, 0) throws TypeError'); -}); + Atomics.exchange(new TA(buffer), 0n, 0n); + }, '`Atomics.exchange(new TA(buffer), 0n, 0n)` throws TypeError'); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/exchange/expected-return-value.js b/test/built-ins/Atomics/exchange/expected-return-value.js index 58eab15ef49582523fb5ad02722230c128ac6a27..ef2e979928f9bb04dfb63e7f9b75de12cf2cb2c2 100644 --- a/test/built-ins/Atomics/exchange/expected-return-value.js +++ b/test/built-ins/Atomics/exchange/expected-return-value.js @@ -27,9 +27,10 @@ info: | features: [Atomics, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4); -var i32a = new Int32Array(buffer); -var update = 0b00000001000000001000000010000001; +const i32a = new Int32Array( + new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4) +); +const update = 0b00000001000000001000000010000001; assert.sameValue( Atomics.exchange(i32a, 0, update), @@ -39,5 +40,5 @@ assert.sameValue( assert.sameValue( i32a[0], update, - 'The value of i32a[0] equals the value of update (0b00000001000000001000000010000001)' + 'The value of i32a[0] equals the value of `update` (0b00000001000000001000000010000001)' ); diff --git a/test/built-ins/Atomics/exchange/good-views.js b/test/built-ins/Atomics/exchange/good-views.js index d0a21d455ef2c200edbd153e43cb1d85bdb59c4a..c3f63ab9e04ffe22fde6c4b6546a297ef2496088 100644 --- a/test/built-ins/Atomics/exchange/good-views.js +++ b/test/built-ins/Atomics/exchange/good-views.js @@ -8,15 +8,15 @@ includes: [testAtomics.js, testTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ -var sab = new SharedArrayBuffer(1024); -var ab = new ArrayBuffer(16); -var views = intArrayConstructors.slice(); +const sab = new SharedArrayBuffer(1024); +const ab = new ArrayBuffer(16); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { // Make it interesting - use non-zero byteOffsets and non-zero indexes. - var view = new TA(sab, 32, 20); - var control = new TA(ab, 0, 2); + const view = new TA(sab, 32, 20); + const control = new TA(ab, 0, 2); view[8] = 0; assert.sameValue(Atomics.exchange(view, 8, 10), 0, @@ -26,22 +26,22 @@ testWithTypedArrayConstructors(function(TA) { assert.sameValue(Atomics.exchange(view, 8, -5), 10, 'Atomics.exchange(view, 8, -5) returns 10'); control[0] = -5; - assert.sameValue(view[8], control[0], 'The value of view[8] equals the value of control[0] (-5)'); + assert.sameValue(view[8], control[0], 'The value of view[8] equals the value of `control[0]` (-5)'); view[3] = -5; control[0] = -5; assert.sameValue(Atomics.exchange(view, 3, 0), control[0], - 'Atomics.exchange(view, 3, 0) equals the value of control[0] (-5)'); + 'Atomics.exchange(view, 3, 0) returns the value of `control[0]` (-5)'); control[0] = 12345; view[3] = 12345; assert.sameValue(Atomics.exchange(view, 3, 0), control[0], - 'Atomics.exchange(view, 3, 0) equals the value of control[0] (12345)'); + 'Atomics.exchange(view, 3, 0) returns the value of `control[0]` (12345)'); control[0] = 123456789; view[3] = 123456789; assert.sameValue(Atomics.exchange(view, 3, 0), control[0], - 'Atomics.exchange(view, 3, 0) equals the value of control[0] (123456789)'); + 'Atomics.exchange(view, 3, 0) returns the value of `control[0]` (123456789)'); // In-bounds boundary cases for indexing testWithAtomicsInBoundsIndices(function(IdxGen) { diff --git a/test/built-ins/Atomics/exchange/non-views.js b/test/built-ins/Atomics/exchange/non-views.js index 02a899ec4fcf86b3355be00bbfbf53007d5e0028..20e1acda7e33d3d15c33c62529575716fce942e4 100644 --- a/test/built-ins/Atomics/exchange/non-views.js +++ b/test/built-ins/Atomics/exchange/non-views.js @@ -12,5 +12,5 @@ features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedAr testWithAtomicsNonViewValues(function(view) { assert.throws(TypeError, function() { Atomics.exchange(view, 0, 0); - }, 'Atomics.exchange(view, 0, 0) throws TypeError'); + }, '`Atomics.exchange(view, 0, 0)` throws TypeError'); }); diff --git a/test/built-ins/Atomics/exchange/nonshared-int-views.js b/test/built-ins/Atomics/exchange/nonshared-int-views.js index 8de5815f5f6af74bd77bc299b3dbf9f5a96ab3fd..f3514d11651af15f08c504bd713aa81447ca9bc4 100644 --- a/test/built-ins/Atomics/exchange/nonshared-int-views.js +++ b/test/built-ins/Atomics/exchange/nonshared-int-views.js @@ -15,5 +15,5 @@ var views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.exchange(new TA(buffer), 0, 0); - }, 'Atomics.exchange(new TA(buffer), 0, 0) throws TypeError'); + }, '`Atomics.exchange(new TA(buffer), 0, 0)` throws TypeError'); }, views); diff --git a/test/built-ins/Atomics/exchange/shared-nonint-views.js b/test/built-ins/Atomics/exchange/shared-nonint-views.js index c3e4ad4d0a4897103775052e772614e60d94b50c..371c9e191f5fc2118acd07e4abe2e5cc2d95d541 100644 --- a/test/built-ins/Atomics/exchange/shared-nonint-views.js +++ b/test/built-ins/Atomics/exchange/shared-nonint-views.js @@ -14,5 +14,5 @@ var buffer = new SharedArrayBuffer(1024); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.exchange(new TA(buffer), 0, 0); - }, 'Atomics.exchange(new TA(buffer), 0, 0) throws TypeError'); + }, '`Atomics.exchange(new TA(buffer), 0, 0)` throws TypeError'); }, floatArrayConstructors); diff --git a/test/built-ins/Atomics/isLockFree/bigint/corner-cases.js b/test/built-ins/Atomics/isLockFree/bigint/corner-cases.js index ee48ff883c00e6e3ed965e0b6d7c4141ceb487d5..51958fe100aeace5de61f14f4b6713668ed114d5 100644 --- a/test/built-ins/Atomics/isLockFree/bigint/corner-cases.js +++ b/test/built-ins/Atomics/isLockFree/bigint/corner-cases.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.islockfree description: > @@ -8,22 +7,24 @@ description: > features: [arrow-function, Atomics, SharedArrayBuffer, ArrayBuffer, DataView, BigInt, let, TypedArray, for-of] includes: [testAtomics.js, testBigIntTypedArray.js] ---*/ - assert.sameValue( Atomics.isLockFree(hide(3, Number.NaN)), false, 'Atomics.isLockFree(hide(3, Number.NaN)) returns false' ); + assert.sameValue( Atomics.isLockFree(hide(3, -1)), false, 'Atomics.isLockFree(hide(3, -1)) returns false' ); + assert.sameValue( Atomics.isLockFree(hide(3, 3.14)), false, 'Atomics.isLockFree(hide(3, 3.14)) returns false' ); + assert.sameValue( Atomics.isLockFree(hide(3, 0)), false, @@ -33,12 +34,13 @@ assert.sameValue( assert.sameValue( Atomics.isLockFree('1'), Atomics.isLockFree(1), - 'Atomics.isLockFree(\'1\') returns Atomics.isLockFree(1)' + 'Atomics.isLockFree("1") returns Atomics.isLockFree(1)' ); + assert.sameValue( Atomics.isLockFree('3'), Atomics.isLockFree(3), - 'Atomics.isLockFree(\'3\') returns Atomics.isLockFree(3)' + 'Atomics.isLockFree("3") returns Atomics.isLockFree(3)' ); assert.sameValue( @@ -47,30 +49,26 @@ assert.sameValue( 'Atomics.isLockFree(true) returns Atomics.isLockFree(1)' ); -assert.sameValue( - Atomics.isLockFree(1), - Atomics.isLockFree({valueOf: () => 1}), - 'Atomics.isLockFree(1) returns Atomics.isLockFree({valueOf: () => 1})' -); -assert.sameValue( - Atomics.isLockFree(3), - Atomics.isLockFree({valueOf: () => 3}), - 'Atomics.isLockFree(3) returns Atomics.isLockFree({valueOf: () => 3})' -); -assert.sameValue( - Atomics.isLockFree(1), - Atomics.isLockFree({toString: () => '1'}), - 'Atomics.isLockFree(1) returns Atomics.isLockFree({toString: () => \'1\'})' -); -assert.sameValue( - Atomics.isLockFree(3), - Atomics.isLockFree({toString: () => '3'}), - 'Atomics.isLockFree(3) returns Atomics.isLockFree({toString: () => \'3\'})' -); +assert.sameValue(Atomics.isLockFree(1), Atomics.isLockFree({ + valueOf: () => 1 +}), 'Atomics.isLockFree(1) returns Atomics.isLockFree({\n valueOf: () => 1\n})'); + +assert.sameValue(Atomics.isLockFree(3), Atomics.isLockFree({ + valueOf: () => 3 +}), 'Atomics.isLockFree(3) returns Atomics.isLockFree({\n valueOf: () => 3\n})'); + +assert.sameValue(Atomics.isLockFree(1), Atomics.isLockFree({ + toString: () => '1' +}), 'Atomics.isLockFree(1) returns Atomics.isLockFree({\n toString: () => "1"\n})'); + +assert.sameValue(Atomics.isLockFree(3), Atomics.isLockFree({ + toString: () => '3' +}), 'Atomics.isLockFree(3) returns Atomics.isLockFree({\n toString: () => "3"\n})'); function hide(k, x) { if (k) { - return hide(k - 3, x) + x; + return BigInt(hide(k - 3, x) + x); } - return 0; -} + + return 0n; +} \ No newline at end of file diff --git a/test/built-ins/Atomics/isLockFree/bigint/expected-return-value.js b/test/built-ins/Atomics/isLockFree/bigint/expected-return-value.js index 69cad37db6e68b25711556ef334460c4477b5641..b73f2901c81c0f7d7e9d81f8b62f32944d7293ce 100644 --- a/test/built-ins/Atomics/isLockFree/bigint/expected-return-value.js +++ b/test/built-ins/Atomics/isLockFree/bigint/expected-return-value.js @@ -28,7 +28,7 @@ testWithBigIntTypedArrayConstructors(function(TA) { assert.sameValue( Atomics.isLockFree(TA.BYTES_PER_ELEMENT), observed, - 'Atomics.isLockFree(TA.BYTES_PER_ELEMENT) equals the value of `observed` (Atomics.isLockFree(TA.BYTES_PER_ELEMENT))' + 'Atomics.isLockFree(TA.BYTES_PER_ELEMENT) returns the value of `observed` (Atomics.isLockFree(TA.BYTES_PER_ELEMENT))' ); }); diff --git a/test/built-ins/Atomics/isLockFree/corner-cases.js b/test/built-ins/Atomics/isLockFree/corner-cases.js index 8f77cda292f4fe8a64af1153860c51d7b9c7a234..d4e713e8f3b0b494549cf6b5260cb9016178be90 100644 --- a/test/built-ins/Atomics/isLockFree/corner-cases.js +++ b/test/built-ins/Atomics/isLockFree/corner-cases.js @@ -32,12 +32,12 @@ assert.sameValue( assert.sameValue( Atomics.isLockFree('1'), Atomics.isLockFree(1), - 'Atomics.isLockFree("1") returns Atomics.isLockFree(1)' + 'Atomics.isLockFree(\'1\') returns Atomics.isLockFree(1)' ); assert.sameValue( Atomics.isLockFree('3'), Atomics.isLockFree(3), - 'Atomics.isLockFree("3") returns Atomics.isLockFree(3)' + 'Atomics.isLockFree(\'3\') returns Atomics.isLockFree(3)' ); assert.sameValue( @@ -59,12 +59,12 @@ assert.sameValue( assert.sameValue( Atomics.isLockFree(1), Atomics.isLockFree({toString: () => '1'}), - 'Atomics.isLockFree(1) returns Atomics.isLockFree({toString: () => "1"})' + 'Atomics.isLockFree(1) returns Atomics.isLockFree({toString: () => \'1\'})' ); assert.sameValue( Atomics.isLockFree(3), Atomics.isLockFree({toString: () => '3'}), - 'Atomics.isLockFree(3) returns Atomics.isLockFree({toString: () => "3"})' + 'Atomics.isLockFree(3) returns Atomics.isLockFree({toString: () => \'3\'})' ); function hide(k, x) { diff --git a/test/built-ins/Atomics/isLockFree/expected-return-value.js b/test/built-ins/Atomics/isLockFree/expected-return-value.js index cd5795c7849eba2dff3eb62eecc4afc2d0137a59..72448c657685b1a9776c26fec4b533488d66037b 100644 --- a/test/built-ins/Atomics/isLockFree/expected-return-value.js +++ b/test/built-ins/Atomics/isLockFree/expected-return-value.js @@ -32,7 +32,7 @@ var isLockFree8; assert.sameValue( Atomics.isLockFree(1), isLockFree1, - 'Atomics.isLockFree(1) equals the value of `isLockFree1` (1)' + 'Atomics.isLockFree(1) returns the value of `isLockFree1` (Atomics.isLockFree(1))' ); }; { @@ -47,7 +47,7 @@ var isLockFree8; assert.sameValue( Atomics.isLockFree(2), isLockFree2, - 'Atomics.isLockFree(2) equals the value of `isLockFree2` (2)' + 'Atomics.isLockFree(2) returns the value of `isLockFree2` (Atomics.isLockFree(2))' ); }; { @@ -55,8 +55,8 @@ var isLockFree8; // // If n equals 4, return true. // - assert.sameValue(typeof isLockFree4, 'boolean', 'The value of `typeof isLockFree` is "boolean"'); - assert.sameValue(isLockFree4, true, 'The value of `isLockFree` is true'); + assert.sameValue(typeof isLockFree4, 'boolean', 'The value of `typeof isLockFree4` is "boolean"'); + assert.sameValue(isLockFree4, true, 'The value of `isLockFree4` is true'); }; { @@ -71,14 +71,14 @@ var isLockFree8; assert.sameValue( Atomics.isLockFree(8), isLockFree8, - 'Atomics.isLockFree(8) equals the value of `isLockFree8` (8)' + 'Atomics.isLockFree(8) returns the value of `isLockFree8` (Atomics.isLockFree(8))' ); }; { for (let i = 0; i < 12; i++) { if (![1, 2, 4, 8].includes(i)) { - assert.sameValue(Atomics.isLockFree(i), false); + assert.sameValue(Atomics.isLockFree(i), false, 'Atomics.isLockFree(i) returns false'); } } }; @@ -86,17 +86,17 @@ var isLockFree8; assert.sameValue( Atomics.isLockFree(1), isLockFree1, - 'Later call to Atomics.isLockFree(1) equals the value of `isLockFree1` (1)' + 'Atomics.isLockFree(1) returns the value of `isLockFree1` (Atomics.isLockFree(1))' ); assert.sameValue( Atomics.isLockFree(2), isLockFree2, - 'Later call to Atomics.isLockFree(2) equals the value of `isLockFree2` (2)' + 'Atomics.isLockFree(2) returns the value of `isLockFree2` (Atomics.isLockFree(2))' ); assert.sameValue( Atomics.isLockFree(8), isLockFree8, - 'Later call to Atomics.isLockFree(8) equals the value of `isLockFree8` (8)' + 'Atomics.isLockFree(8) returns the value of `isLockFree8` (Atomics.isLockFree(8))' ); // Duplicates behavior created by loop from above diff --git a/test/built-ins/Atomics/load/bad-range.js b/test/built-ins/Atomics/load/bad-range.js index 14054e0dbcc93139f3fb92b5fbc07d69c3f487e1..c698ded175de25ac4d17e8c125d937e403d51fca 100644 --- a/test/built-ins/Atomics/load/bad-range.js +++ b/test/built-ins/Atomics/load/bad-range.js @@ -17,6 +17,6 @@ testWithTypedArrayConstructors(function(TA) { testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { Atomics.load(view, IdxGen(view)); - }, 'Atomics.load(view, IdxGen(view)) throws RangeError'); + }, '`Atomics.load(view, IdxGen(view))` throws RangeError'); }); }, views); diff --git a/test/built-ins/Atomics/load/bigint/bad-range.js b/test/built-ins/Atomics/load/bigint/bad-range.js index 3f2578508795b8dc4dd9635696c7888f27144ba1..9da162b6a706e45d0667d6f1fc1e4aab8e2815d7 100644 --- a/test/built-ins/Atomics/load/bigint/bad-range.js +++ b/test/built-ins/Atomics/load/bigint/bad-range.js @@ -9,13 +9,13 @@ includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); +var buffer = new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { let view = new TA(buffer); testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { Atomics.load(view, IdxGen(view)); - }, 'Atomics.load(view, IdxGen(view)) throws RangeError'); + }, '`Atomics.load(view, IdxGen(view))` throws RangeError'); }); }); diff --git a/test/built-ins/Atomics/load/bigint/good-views.js b/test/built-ins/Atomics/load/bigint/good-views.js index e044358c0168d0a15853c6af6d62d1a8cb4af58d..bc6824d1339eeb579e467fdddc8e2966687fed8f 100644 --- a/test/built-ins/Atomics/load/bigint/good-views.js +++ b/test/built-ins/Atomics/load/bigint/good-views.js @@ -1,45 +1,48 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.load description: Test Atomics.load on arrays that allow atomic operations. includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var sab = new SharedArrayBuffer(1024); -var ab = new ArrayBuffer(16); - +const sab = new SharedArrayBuffer(1024); +const ab = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { - // Make it interesting - use non-zero byteOffsets and non-zero indexes. - - var view = new TA(sab, 32, 20); - var control = new TA(ab, 0, 2); - - view[3] = -5; - control[0] = -5; - assert.sameValue(Atomics.load(view, 3), control[0], - "Result is subject to coercion"); - - control[0] = 12345; - view[3] = 12345; - assert.sameValue(Atomics.load(view, 3), control[0], - "Result is subject to chopping"); - - control[0] = 123456789; - view[3] = 123456789; - assert.sameValue(Atomics.load(view, 3), control[0], - "Result is subject to chopping"); + const view = new TA(sab, 32, 20); + const control = new TA(ab, 0, 2); + view[3] = -5n; + control[0] = -5n; + + assert.sameValue( + Atomics.load(view, 3), + control[0], + 'Atomics.load(view, 3) returns the value of `control[0]` (-5n)' + ); + + control[0] = 12345n; + view[3] = 12345n; + + assert.sameValue( + Atomics.load(view, 3), + control[0], + 'Atomics.load(view, 3) returns the value of `control[0]` (12345n)' + ); + + control[0] = 123456789n; + view[3] = 123456789n; + + assert.sameValue( + Atomics.load(view, 3), + control[0], + 'Atomics.load(view, 3) returns the value of `control[0]` (123456789n)' + ); - // In-bounds boundary cases for indexing testWithAtomicsInBoundsIndices(function(IdxGen) { let Idx = IdxGen(view); - view.fill(0); - // Atomics.store() computes an index from Idx in the same way as other - // Atomics operations, not quite like view[Idx]. - Atomics.store(view, Idx, 37); - assert.sameValue(Atomics.load(view, Idx), 37); + view.fill(0n); + Atomics.store(view, Idx, 37n); + assert.sameValue(Atomics.load(view, Idx), 37n, 'Atomics.load(view, Idx) returns 37n'); }); -}); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/load/bigint/nonshared-int-views.js b/test/built-ins/Atomics/load/bigint/nonshared-int-views.js index 8dc6195901f6f071ddae901396dde08be6272794..949fb745960f524ac0f9a2c9a621bf77619416d5 100644 --- a/test/built-ins/Atomics/load/bigint/nonshared-int-views.js +++ b/test/built-ins/Atomics/load/bigint/nonshared-int-views.js @@ -9,7 +9,7 @@ includes: [testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, TypedArray] ---*/ -var ab = new ArrayBuffer(16); +var ab = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { @@ -17,5 +17,5 @@ testWithBigIntTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.load(view, 0); - }, 'Atomics.load(view, 0) throws TypeError'); + }, '`Atomics.load(view, 0)` throws TypeError'); }); diff --git a/test/built-ins/Atomics/load/expected-return-value.js b/test/built-ins/Atomics/load/expected-return-value.js index bc373f27a91bd6dee6bb722c4a1d6c396c5ba1f8..204d18058f42c0f19bfb7846b04dc174d69923cd 100644 --- a/test/built-ins/Atomics/load/expected-return-value.js +++ b/test/built-ins/Atomics/load/expected-return-value.js @@ -28,13 +28,18 @@ info: | features: [Atomics, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4); -var i32a = new Int32Array(buffer); -var update = 0b00000001000000001000000010000001; +const i32a = new Int32Array( + new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4) +); +const update = 0b00000001000000001000000010000001; -assert.sameValue(Atomics.load(i32a, 0), 0); +assert.sameValue(Atomics.load(i32a, 0), 0, 'Atomics.load(i32a, 0) returns 0'); i32a[0] = update; -assert.sameValue(Atomics.load(i32a, 0), update); +assert.sameValue( + Atomics.load(i32a, 0), + update, + 'Atomics.load(i32a, 0) returns the value of `update` (0b00000001000000001000000010000001)' +); diff --git a/test/built-ins/Atomics/load/good-views.js b/test/built-ins/Atomics/load/good-views.js index b36b892513dab876ddc2581d042d512ca034933b..0f43410a511ee36010fef39021199b24952a7864 100644 --- a/test/built-ins/Atomics/load/good-views.js +++ b/test/built-ins/Atomics/load/good-views.js @@ -8,31 +8,31 @@ includes: [testAtomics.js, testTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ -var sab = new SharedArrayBuffer(1024); -var ab = new ArrayBuffer(16); +const sab = new SharedArrayBuffer(1024); +const ab = new ArrayBuffer(16); -var views = intArrayConstructors.slice(); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { // Make it interesting - use non-zero byteOffsets and non-zero indexes. - var view = new TA(sab, 32, 20); - var control = new TA(ab, 0, 2); + const view = new TA(sab, 32, 20); + const control = new TA(ab, 0, 2); view[3] = -5; control[0] = -5; assert.sameValue(Atomics.load(view, 3), control[0], - "Result is subject to coercion"); + 'Atomics.load(view, 3) returns the value of `control[0]` (-5)'); control[0] = 12345; view[3] = 12345; assert.sameValue(Atomics.load(view, 3), control[0], - "Result is subject to chopping"); + 'Atomics.load(view, 3) returns the value of `control[0]` (12345)'); control[0] = 123456789; view[3] = 123456789; assert.sameValue(Atomics.load(view, 3), control[0], - "Result is subject to chopping"); + 'Atomics.load(view, 3) returns the value of `control[0]` (123456789)'); // In-bounds boundary cases for indexing testWithAtomicsInBoundsIndices(function(IdxGen) { @@ -41,6 +41,6 @@ testWithTypedArrayConstructors(function(TA) { // Atomics.store() computes an index from Idx in the same way as other // Atomics operations, not quite like view[Idx]. Atomics.store(view, Idx, 37); - assert.sameValue(Atomics.load(view, Idx), 37); + assert.sameValue(Atomics.load(view, Idx), 37, 'Atomics.load(view, Idx) returns 37'); }); }, views); diff --git a/test/built-ins/Atomics/load/non-views.js b/test/built-ins/Atomics/load/non-views.js index 2dab45f5da869680f848523668bd6940d65a6e6b..ac9d0f57a74e2d2fede1c570dd224bcc1f70a098 100644 --- a/test/built-ins/Atomics/load/non-views.js +++ b/test/built-ins/Atomics/load/non-views.js @@ -12,5 +12,5 @@ features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedAr testWithAtomicsNonViewValues(function(view) { assert.throws(TypeError, function() { Atomics.load(view, 0); - }, 'Atomics.load(view, 0) throws TypeError'); + }, '`Atomics.load(view, 0)` throws TypeError'); }); diff --git a/test/built-ins/Atomics/load/nonshared-int-views.js b/test/built-ins/Atomics/load/nonshared-int-views.js index 6c33c020914dc8813d576f23c2da76d78051863c..58f04ddc7ac8c7718933c9b888d2591b6f0929d1 100644 --- a/test/built-ins/Atomics/load/nonshared-int-views.js +++ b/test/built-ins/Atomics/load/nonshared-int-views.js @@ -9,14 +9,13 @@ includes: [testTypedArray.js] features: [ArrayBuffer, Atomics, TypedArray] ---*/ -var ab = new ArrayBuffer(16); - -var views = intArrayConstructors.slice(); +const buffer = new ArrayBuffer(16); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { - var view = new TA(ab); + const view = new TA(buffer); assert.throws(TypeError, function() { Atomics.load(view, 0); - }, 'Atomics.load(view, 0) throws TypeError'); + }, '`Atomics.load(view, 0)` throws TypeError'); }, views); diff --git a/test/built-ins/Atomics/load/shared-nonint-views.js b/test/built-ins/Atomics/load/shared-nonint-views.js index 3e1f875a9d6533fa0a09ce54097be81820e21520..ea493ccf82ff7e0f7afd7dcdd677aa11fdff7949 100644 --- a/test/built-ins/Atomics/load/shared-nonint-views.js +++ b/test/built-ins/Atomics/load/shared-nonint-views.js @@ -9,9 +9,9 @@ includes: [testTypedArray.js] features: [Atomics, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(1024); +const buffer = new SharedArrayBuffer(1024); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.load(new TA(buffer), 0); - }, 'Atomics.load(new TA(buffer), 0) throws TypeError'); + }, '`Atomics.load(new TA(buffer), 0)` throws TypeError'); }, floatArrayConstructors); diff --git a/test/built-ins/Atomics/or/bad-range.js b/test/built-ins/Atomics/or/bad-range.js index 679eae4895642c1ab7de30fc614f90393628bc16..b3f94b5e346e2e519f7f677ec109c2dcaf4992ca 100644 --- a/test/built-ins/Atomics/or/bad-range.js +++ b/test/built-ins/Atomics/or/bad-range.js @@ -17,6 +17,6 @@ testWithTypedArrayConstructors(function(TA) { testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { Atomics.or(view, IdxGen(view), 10); - }, 'Atomics.or(view, IdxGen(view), 10) throws RangeError'); + }, '`Atomics.or(view, IdxGen(view), 10)` throws RangeError'); }); }, views); diff --git a/test/built-ins/Atomics/or/bigint/bad-range.js b/test/built-ins/Atomics/or/bigint/bad-range.js index 81d866a55fa941848157d8bae7eb234424fa0f27..c8440e9b04a4f505442d6b953fc977fbaa42b083 100644 --- a/test/built-ins/Atomics/or/bigint/bad-range.js +++ b/test/built-ins/Atomics/or/bigint/bad-range.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.or description: > @@ -8,14 +7,14 @@ description: > includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); +var buffer = new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { let view = new TA(buffer); + testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { - Atomics.or(view, IdxGen(view), 10); - }, 'Atomics.or(view, IdxGen(view), 10) throws RangeError'); + Atomics.or(view, IdxGen(view), 10n); + }, '`Atomics.or(view, IdxGen(view), 10n)` throws RangeError'); }); -}); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/or/bigint/good-views.js b/test/built-ins/Atomics/or/bigint/good-views.js index 5c9afcf62aaee82ad05ee7ba49a3b78eb70360ed..fd882a36296001abcad63e0d9b35f05dad2c8b9a 100644 --- a/test/built-ins/Atomics/or/bigint/good-views.js +++ b/test/built-ins/Atomics/or/bigint/good-views.js @@ -1,60 +1,97 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.or description: Test Atomics.or on arrays that allow atomic operations includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var sab = new SharedArrayBuffer(1024); -var ab = new ArrayBuffer(16); +const sab = new SharedArrayBuffer(1024); +const ab = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { - // Make it interesting - use non-zero byteOffsets and non-zero indexes. - - var view = new TA(sab, 32, 20); - var control = new TA(ab, 0, 2); - - view[8] = 0x33333333; - control[0] = 0x33333333; - assert.sameValue(Atomics.or(view, 8, 0x55555555), control[0], - "Result is subject to chopping"); - - control[0] = 0x77777777; - assert.sameValue(view[8], control[0]); - assert.sameValue(Atomics.or(view, 8, 0xF0F0F0F0), control[0], - "Result is subject to chopping"); - - control[0] = 0xF7F7F7F7; - assert.sameValue(view[8], control[0]); - - view[3] = -5; - control[0] = -5; - assert.sameValue(Atomics.or(view, 3, 0), control[0], - "Result is negative and subject to coercion"); - assert.sameValue(view[3], control[0]); - - control[0] = 12345; - view[3] = 12345; - assert.sameValue(Atomics.or(view, 3, 0), control[0], - "Result is subject to chopping"); - assert.sameValue(view[3], control[0]); - - control[0] = 123456789; - view[3] = 123456789; - assert.sameValue(Atomics.or(view, 3, 0), control[0], - "Result is subject to chopping"); - assert.sameValue(view[3], control[0]); - - // In-bounds boundary cases for indexing + const view = new TA(sab, 32, 20); + const control = new TA(ab, 0, 2); + view[8] = 0x33333333n; + control[0] = 0x33333333n; + + assert.sameValue( + Atomics.or(view, 8, 0x55555555n), + control[0], + 'Atomics.or(view, 8, 0x55555555n) returns the value of `control[0]` (0x33333333n)' + ); + + control[0] = 0x77777777n; + + assert.sameValue( + view[8], + control[0], + 'The value of view[8] equals the value of `control[0]` (0x77777777n)' + ); + + assert.sameValue( + Atomics.or(view, 8, 0xF0F0F0F0n), + control[0], + 'Atomics.or(view, 8, 0xF0F0F0F0n) returns the value of `control[0]` (0x77777777n)' + ); + + control[0] = 0xF7F7F7F7n; + + assert.sameValue( + view[8], + control[0], + 'The value of view[8] equals the value of `control[0]` (0xF7F7F7F7n)' + ); + + view[3] = -5n; + control[0] = -5n; + + assert.sameValue( + Atomics.or(view, 3, 0n), + control[0], + 'Atomics.or(view, 3, 0n) returns the value of `control[0]` (-5n)' + ); + + assert.sameValue( + view[3], + control[0], + 'The value of view[3] equals the value of `control[0]` (-5n)' + ); + + control[0] = 12345n; + view[3] = 12345n; + + assert.sameValue( + Atomics.or(view, 3, 0n), + control[0], + 'Atomics.or(view, 3, 0n) returns the value of `control[0]` (12345n)' + ); + + assert.sameValue( + view[3], + control[0], + 'The value of view[3] equals the value of `control[0]` (12345n)' + ); + + control[0] = 123456789n; + view[3] = 123456789n; + + assert.sameValue( + Atomics.or(view, 3, 0n), + control[0], + 'Atomics.or(view, 3, 0n) returns the value of `control[0]` (123456789n)' + ); + + assert.sameValue( + view[3], + control[0], + 'The value of view[3] equals the value of `control[0]` (123456789n)' + ); + testWithAtomicsInBoundsIndices(function(IdxGen) { let Idx = IdxGen(view); - view.fill(0); - // Atomics.store() computes an index from Idx in the same way as other - // Atomics operations, not quite like view[Idx]. - Atomics.store(view, Idx, 37); - assert.sameValue(Atomics.or(view, Idx, 0), 37); + view.fill(0n); + Atomics.store(view, Idx, 37n); + assert.sameValue(Atomics.or(view, Idx, 0n), 37n, 'Atomics.or(view, Idx, 0n) returns 37n'); }); -}); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/or/bigint/nonshared-int-views.js b/test/built-ins/Atomics/or/bigint/nonshared-int-views.js index ae8b56117fb5834bc12cb5f15f4b3a7c0330d68e..1dea6f24298a8610725335207ba759b5d11c7c44 100644 --- a/test/built-ins/Atomics/or/bigint/nonshared-int-views.js +++ b/test/built-ins/Atomics/or/bigint/nonshared-int-views.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.or description: > @@ -8,11 +7,10 @@ description: > includes: [testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, TypedArray] ---*/ - -var buffer = new ArrayBuffer(16); +const buffer = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { - Atomics.or(new TA(buffer), 0, 0); - }, 'Atomics.or(new TA(buffer), 0, 0) throws TypeError'); -}); + Atomics.or(new TA(buffer), 0, 0n); + }, '`Atomics.or(new TA(buffer), 0, 0n)` throws TypeError'); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/or/expected-return-value.js b/test/built-ins/Atomics/or/expected-return-value.js index 71971d2c8594ea5a1e571d2f9d310cecdaa71066..9b560247ebb518cf9879cebc51825a0ca7cf43cc 100644 --- a/test/built-ins/Atomics/or/expected-return-value.js +++ b/test/built-ins/Atomics/or/expected-return-value.js @@ -27,9 +27,20 @@ info: | features: [Atomics, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4); -var i32a = new Int32Array(buffer); -var update = 0b00000001000000001000000010000001; +const i32a = new Int32Array( + new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4) +); +const a = 0b00000001000000001000000010000001; +const b = 0b00000001111111111000000011111111; +const c = 0b00000001111111111000000011111111; + +i32a[0] = a; + +assert.sameValue( + Atomics.or(i32a, 0, b), + a, + 'Atomics.or(i32a, 0, b) returns the value of `a` (0b00000001000000001000000010000001)' +); + +assert.sameValue(i32a[0], c, 'The value of i32a[0] equals the value of `c` (0b00000001111111111000000011111111)'); -assert.sameValue(Atomics.or(i32a, 0, update), 0); -assert.sameValue(i32a[0], 0 | update); diff --git a/test/built-ins/Atomics/or/good-views.js b/test/built-ins/Atomics/or/good-views.js index 228500d69ac44fbf67704bc5f09c97f46fa2ecb3..7522f1da4330d5609b13a4abea30484a5a7ea3a7 100644 --- a/test/built-ins/Atomics/or/good-views.js +++ b/test/built-ins/Atomics/or/good-views.js @@ -21,33 +21,53 @@ testWithTypedArrayConstructors(function(TA) { view[8] = 0x33333333; control[0] = 0x33333333; assert.sameValue(Atomics.or(view, 8, 0x55555555), control[0], - "Result is subject to chopping"); + 'Atomics.or(view, 8, 0x55555555) returns the value of `control[0]` (0x33333333)'); control[0] = 0x77777777; - assert.sameValue(view[8], control[0]); + assert.sameValue( + view[8], + control[0], + 'The value of view[8] equals the value of `control[0]` (0x77777777)' + ); assert.sameValue(Atomics.or(view, 8, 0xF0F0F0F0), control[0], - "Result is subject to chopping"); + 'Atomics.or(view, 8, 0xF0F0F0F0) returns the value of `control[0]` (0x77777777)'); control[0] = 0xF7F7F7F7; - assert.sameValue(view[8], control[0]); + assert.sameValue( + view[8], + control[0], + 'The value of view[8] equals the value of `control[0]` (0xF7F7F7F7)' + ); view[3] = -5; control[0] = -5; assert.sameValue(Atomics.or(view, 3, 0), control[0], - "Result is negative and subject to coercion"); - assert.sameValue(view[3], control[0]); + 'Atomics.or(view, 3, 0) returns the value of `control[0]` (-5)'); + assert.sameValue( + view[3], + control[0], + 'The value of view[3] equals the value of `control[0]` (-5)' + ); control[0] = 12345; view[3] = 12345; assert.sameValue(Atomics.or(view, 3, 0), control[0], - "Result is subject to chopping"); - assert.sameValue(view[3], control[0]); + 'Atomics.or(view, 3, 0) returns the value of `control[0]` (12345)'); + assert.sameValue( + view[3], + control[0], + 'The value of view[3] equals the value of `control[0]` (12345)' + ); control[0] = 123456789; view[3] = 123456789; assert.sameValue(Atomics.or(view, 3, 0), control[0], - "Result is subject to chopping"); - assert.sameValue(view[3], control[0]); + 'Atomics.or(view, 3, 0) returns the value of `control[0]` (123456789)'); + assert.sameValue( + view[3], + control[0], + 'The value of view[3] equals the value of `control[0]` (123456789)' + ); // In-bounds boundary cases for indexing testWithAtomicsInBoundsIndices(function(IdxGen) { @@ -56,6 +76,6 @@ testWithTypedArrayConstructors(function(TA) { // Atomics.store() computes an index from Idx in the same way as other // Atomics operations, not quite like view[Idx]. Atomics.store(view, Idx, 37); - assert.sameValue(Atomics.or(view, Idx, 0), 37); + assert.sameValue(Atomics.or(view, Idx, 0), 37, 'Atomics.or(view, Idx, 0) returns 37'); }); }, views); diff --git a/test/built-ins/Atomics/or/non-views.js b/test/built-ins/Atomics/or/non-views.js index 04f82bacfc0cfa0380ded67ddc5dd28212ba9466..4cebf0f8926e7904c786eff9c7a73dcb4eca3d18 100644 --- a/test/built-ins/Atomics/or/non-views.js +++ b/test/built-ins/Atomics/or/non-views.js @@ -12,5 +12,5 @@ features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedAr testWithAtomicsNonViewValues(function(view) { assert.throws(TypeError, function() { Atomics.or(view, 0, 0); - }, 'Atomics.or(view, 0, 0) throws TypeError'); + }, '`Atomics.or(view, 0, 0)` throws TypeError'); }); diff --git a/test/built-ins/Atomics/or/nonshared-int-views.js b/test/built-ins/Atomics/or/nonshared-int-views.js index 5c92bd5665e19672d1c5cf0e90700d6672e742c6..13d226697df467ce1b3ce6fa89b8a8ecf6c57998 100644 --- a/test/built-ins/Atomics/or/nonshared-int-views.js +++ b/test/built-ins/Atomics/or/nonshared-int-views.js @@ -9,11 +9,11 @@ includes: [testTypedArray.js] features: [ArrayBuffer, Atomics, TypedArray] ---*/ -var buffer = new ArrayBuffer(16); -var views = intArrayConstructors.slice(); +const buffer = new ArrayBuffer(16); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.or(new TA(buffer), 0, 0); - }, 'Atomics.or(new TA(buffer), 0, 0) throws TypeError'); + }, '`Atomics.or(new TA(buffer), 0, 0)` throws TypeError'); }, views); diff --git a/test/built-ins/Atomics/or/shared-nonint-views.js b/test/built-ins/Atomics/or/shared-nonint-views.js index 2dd48cbc3c59a6c5881c0ba53ddb49641f7f7fc2..04ba84ab556421ba6f8ff6023083f1ebf299f964 100644 --- a/test/built-ins/Atomics/or/shared-nonint-views.js +++ b/test/built-ins/Atomics/or/shared-nonint-views.js @@ -14,7 +14,7 @@ var buffer = new SharedArrayBuffer(1024); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.or(new TA(buffer), 0, 0); - }, 'Atomics.or(new TA(buffer), 0, 0) throws TypeError'); + }, '`Atomics.or(new TA(buffer), 0, 0)` throws TypeError'); }, floatArrayConstructors); diff --git a/test/built-ins/Atomics/prop-desc.js b/test/built-ins/Atomics/prop-desc.js index 57cfb2ecba4cd1faacb4c70834f2c3f14bd8ae08..90825f14f7757622c9350e0150500685ea4e4afc 100644 --- a/test/built-ins/Atomics/prop-desc.js +++ b/test/built-ins/Atomics/prop-desc.js @@ -24,15 +24,15 @@ includes: [propertyHelper.js] features: [Atomics] ---*/ -assert.sameValue(typeof Atomics, "object"); +assert.sameValue(typeof Atomics, "object", 'The value of `typeof Atomics` is "object"'); assert.throws(TypeError, function() { Atomics(); -}, "no [[Call]]"); +}, '`Atomics()` throws TypeError'); assert.throws(TypeError, function() { new Atomics(); -}, "no [[Construct]]"); +}, '`new Atomics()` throws TypeError'); verifyProperty(this, "Atomics", { enumerable: false, diff --git a/test/built-ins/Atomics/proto.js b/test/built-ins/Atomics/proto.js index 8072c47494f389ec8853f9297ba6da3470c3589c..d6275cb56cd255090ec5af9ea1c9052dcb94dacd 100644 --- a/test/built-ins/Atomics/proto.js +++ b/test/built-ins/Atomics/proto.js @@ -13,4 +13,8 @@ info: | features: [Atomics] ---*/ -assert.sameValue(Object.getPrototypeOf(Atomics), Object.prototype); +assert.sameValue( + Object.getPrototypeOf(Atomics), + Object.prototype, + 'Object.getPrototypeOf(Atomics) returns the value of `Object.prototype`' +); diff --git a/test/built-ins/Atomics/store/bad-range.js b/test/built-ins/Atomics/store/bad-range.js index 224347fd36560e441336a88915732a83deb7211f..fd26e25b8285b6168d57a972f8e8fd7a4a67d2a5 100644 --- a/test/built-ins/Atomics/store/bad-range.js +++ b/test/built-ins/Atomics/store/bad-range.js @@ -9,14 +9,14 @@ includes: [testAtomics.js, testTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); -var views = intArrayConstructors.slice(); +const buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { - let view = new TA(buffer); + const view = new TA(buffer); testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { Atomics.store(view, IdxGen(view), 10); - }, 'Atomics.store(view, IdxGen(view), 10) throws RangeError'); + }, '`Atomics.store(view, IdxGen(view), 10)` throws RangeError'); }); }, views); diff --git a/test/built-ins/Atomics/store/bigint/bad-range.js b/test/built-ins/Atomics/store/bigint/bad-range.js index 38527f23c5b4de11695705b5ca2a51fa21f5fdd9..7cf5180359bc3fd04b680fffa536e2833b002670 100644 --- a/test/built-ins/Atomics/store/bigint/bad-range.js +++ b/test/built-ins/Atomics/store/bigint/bad-range.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.store description: > @@ -8,14 +7,14 @@ description: > includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); +const buffer = new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { - let view = new TA(buffer); + const view = new TA(buffer); + testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { - Atomics.store(view, IdxGen(view), 10); - }, 'Atomics.store(view, IdxGen(view), 10) throws RangeError'); + Atomics.store(view, IdxGen(view), 10n); + }, '`Atomics.store(view, IdxGen(view), 10n)` throws RangeError'); }); -}); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/store/bigint/good-views.js b/test/built-ins/Atomics/store/bigint/good-views.js index e6b27141f8174f4c7c11370e8d5af95da128a04e..08b40f0f5148fb3925cdc98e4f1c89d8dcf11fa0 100644 --- a/test/built-ins/Atomics/store/bigint/good-views.js +++ b/test/built-ins/Atomics/store/bigint/good-views.js @@ -1,59 +1,42 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.store description: Test Atomics.store on arrays that allow atomic operations. includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var sab = new SharedArrayBuffer(1024); -var ab = new ArrayBuffer(16); +// Make it interesting - use non-zero byteOffsets and non-zero indexes. +// In-bounds boundary cases for indexing +const sab = new SharedArrayBuffer(1024); +const ab = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { - // Make it interesting - use non-zero byteOffsets and non-zero indexes. - - var view = new TA(sab, 32, 20); - var control = new TA(ab, 0, 2); - - for (let val of [10, -5, - 12345, - 123456789, - Math.PI, - "33", - { - valueOf: () => 33 - }, - undefined - ]) - { - assert.sameValue(Atomics.store(view, 3, val), ToInteger(val), - "Atomics.store returns its third argument (" + val + ") converted to Integer, not the input value nor the value that was stored"); + const view = new TA(sab, 32, 20); + const control = new TA(ab, 0, 2); + + for (let val of [10n, -5n, 12345n, 123456789n, BigInt('33'), { + valueOf: () => 33n + }, BigInt(undefined)]) { + assert.sameValue( + Atomics.store(view, 3, val), + BigInt(val), + 'Atomics.store(view, 3, val) returns BigInt(val)' + ); control[0] = val; - assert.sameValue(view[3], control[0]); + + assert.sameValue( + view[3], + control[0], + 'The value of view[3] equals the value of `control[0]` (val)' + ); } - // In-bounds boundary cases for indexing testWithAtomicsInBoundsIndices(function(IdxGen) { let Idx = IdxGen(view); - view.fill(0); - Atomics.store(view, Idx, 37); - assert.sameValue(Atomics.load(view, Idx), 37); + view.fill(0n); + Atomics.store(view, Idx, 37n); + assert.sameValue(Atomics.load(view, Idx), 37n, 'Atomics.load(view, Idx) returns 37n'); }); }); - -function ToInteger(v) { - v = +v; - if (isNaN(v)) { - return 0; - } - if (v == 0 || !isFinite(v)) { - return v; - } - if (v < 0) { - return -Math.floor(Math.abs(v)); - } - return Math.floor(v); -} diff --git a/test/built-ins/Atomics/store/bigint/nonshared-int-views.js b/test/built-ins/Atomics/store/bigint/nonshared-int-views.js index ab5942d81ba86869764393635787d974cc7bd738..b1999d514e6725046cca68207d92f8ee24706414 100644 --- a/test/built-ins/Atomics/store/bigint/nonshared-int-views.js +++ b/test/built-ins/Atomics/store/bigint/nonshared-int-views.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.store description: > @@ -8,11 +7,10 @@ description: > includes: [testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, TypedArray] ---*/ - -var buffer = new ArrayBuffer(16); +const buffer = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { - Atomics.store(new TA(buffer), 0, 0); - }, 'Atomics.store(new TA(buffer), 0, 0) throws TypeError'); -}); + Atomics.store(new TA(buffer), 0, 0n); + }, '`Atomics.store(new TA(buffer), 0, 0n)` throws TypeError'); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/store/expected-return-value.js b/test/built-ins/Atomics/store/expected-return-value.js index 010886bbde930e53a478d4dfcbf3cfe0594cea95..1ccff20c35fe6fb667c79ef617630cb055050d7c 100644 --- a/test/built-ins/Atomics/store/expected-return-value.js +++ b/test/built-ins/Atomics/store/expected-return-value.js @@ -18,9 +18,18 @@ info: | features: [Atomics, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4); -var i32a = new Int32Array(buffer); -var update = 0b00000001000000001000000010000001; +const i32a = new Int32Array( + new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4) +); +const update = 0b00000001000000001000000010000001; -assert.sameValue(Atomics.store(i32a, 0, update), update); -assert.sameValue(i32a[0], update); +assert.sameValue( + Atomics.store(i32a, 0, update), + update, + 'Atomics.store(i32a, 0, update) returns the value of `update` (0b00000001000000001000000010000001)' +); +assert.sameValue( + i32a[0], + update, + 'The value of i32a[0] equals the value of `update` (0b00000001000000001000000010000001)' +); diff --git a/test/built-ins/Atomics/store/good-views.js b/test/built-ins/Atomics/store/good-views.js index 4e665a76392ac79c2e9eb53619fa79ba49fecd11..43a0c5f56f5ef16540d6cb62bbc7675d4402ca50 100644 --- a/test/built-ins/Atomics/store/good-views.js +++ b/test/built-ins/Atomics/store/good-views.js @@ -8,15 +8,15 @@ includes: [testAtomics.js, testTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ -var sab = new SharedArrayBuffer(1024); -var ab = new ArrayBuffer(16); -var views = intArrayConstructors.slice(); +const sab = new SharedArrayBuffer(1024); +const ab = new ArrayBuffer(16); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { // Make it interesting - use non-zero byteOffsets and non-zero indexes. - var view = new TA(sab, 32, 20); - var control = new TA(ab, 0, 2); + const view = new TA(sab, 32, 20); + const control = new TA(ab, 0, 2); for (let val of [10, -5, 12345, @@ -30,10 +30,14 @@ testWithTypedArrayConstructors(function(TA) { ]) { assert.sameValue(Atomics.store(view, 3, val), ToInteger(val), - "Atomics.store returns its third argument (" + val + ") converted to Integer, not the input value nor the value that was stored"); + 'Atomics.store(view, 3, val) returns ToInteger(val)'); control[0] = val; - assert.sameValue(view[3], control[0]); + assert.sameValue( + view[3], + control[0], + 'The value of view[3] equals the value of `control[0]` (val)' + ); } // In-bounds boundary cases for indexing @@ -41,7 +45,7 @@ testWithTypedArrayConstructors(function(TA) { let Idx = IdxGen(view); view.fill(0); Atomics.store(view, Idx, 37); - assert.sameValue(Atomics.load(view, Idx), 37); + assert.sameValue(Atomics.load(view, Idx), 37, 'Atomics.load(view, Idx) returns 37'); }); }, views); diff --git a/test/built-ins/Atomics/store/non-views.js b/test/built-ins/Atomics/store/non-views.js index bc256a3a27b01817bba74454f9241c0d91f770e3..aa0046aeafc1c8da3a7bb8cf11d627dc922efb3e 100644 --- a/test/built-ins/Atomics/store/non-views.js +++ b/test/built-ins/Atomics/store/non-views.js @@ -12,5 +12,5 @@ features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedAr testWithAtomicsNonViewValues(function(view) { assert.throws(TypeError, function() { Atomics.store(view, 0, 0); - }, 'Atomics.store(view, 0, 0) throws TypeError'); + }, '`Atomics.store(view, 0, 0)` throws TypeError'); }); diff --git a/test/built-ins/Atomics/store/nonshared-int-views.js b/test/built-ins/Atomics/store/nonshared-int-views.js index 90591d4489a104adb5a435bf1787f77bab37c346..06541264d841eb71f1faf98b831a7cf8e5a948b0 100644 --- a/test/built-ins/Atomics/store/nonshared-int-views.js +++ b/test/built-ins/Atomics/store/nonshared-int-views.js @@ -9,11 +9,11 @@ includes: [testTypedArray.js] features: [ArrayBuffer, Atomics, TypedArray] ---*/ -var buffer = new ArrayBuffer(16); -var views = intArrayConstructors.slice(); +const buffer = new ArrayBuffer(16); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.store(new TA(buffer), 0, 0); - }, 'Atomics.store(new TA(buffer), 0, 0) throws TypeError'); + }, '`Atomics.store(new TA(buffer), 0, 0)` throws TypeError'); }, views); diff --git a/test/built-ins/Atomics/store/shared-nonint-views.js b/test/built-ins/Atomics/store/shared-nonint-views.js index fd3d159e8980e1f28e702ccb68254ff515ba6494..acb7d8d880d9883a3afe8bd46020bea92433d01f 100644 --- a/test/built-ins/Atomics/store/shared-nonint-views.js +++ b/test/built-ins/Atomics/store/shared-nonint-views.js @@ -14,7 +14,7 @@ var buffer = new SharedArrayBuffer(1024); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.store(new TA(buffer), 0, 0); - }, 'Atomics.store(new TA(buffer), 0, 0) throws TypeError'); + }, '`Atomics.store(new TA(buffer), 0, 0)` throws TypeError'); }, floatArrayConstructors); diff --git a/test/built-ins/Atomics/sub/bad-range.js b/test/built-ins/Atomics/sub/bad-range.js index 6d9871bb9dd5502a6ee57181fb5e605a8ea9923c..e041a787482a3cec397078ddcbf099b44b5ef174 100644 --- a/test/built-ins/Atomics/sub/bad-range.js +++ b/test/built-ins/Atomics/sub/bad-range.js @@ -17,6 +17,6 @@ testWithTypedArrayConstructors(function(TA) { testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { Atomics.sub(view, IdxGen(view), 10); - }, 'Atomics.sub(view, IdxGen(view), 10) throws RangeError'); + }, '`Atomics.sub(view, IdxGen(view), 10)` throws RangeError'); }); }, views); diff --git a/test/built-ins/Atomics/sub/bigint/bad-range.js b/test/built-ins/Atomics/sub/bigint/bad-range.js index d033c212e08589992a15f8493f4205654a9dc30d..9ca736812fca74a5f73b0bbb78150a14b5d31717 100644 --- a/test/built-ins/Atomics/sub/bigint/bad-range.js +++ b/test/built-ins/Atomics/sub/bigint/bad-range.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.sub description: > @@ -8,14 +7,14 @@ description: > includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 2); +const buffer = new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { - let view = new TA(buffer); + const view = new TA(buffer); + testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { - Atomics.sub(view, IdxGen(view), 10); - }, 'Atomics.sub(view, IdxGen(view), 10) throws RangeError'); + Atomics.sub(view, IdxGen(view), 10n); + }, '`Atomics.sub(view, IdxGen(view), 10n)` throws RangeError'); }); -}); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/sub/bigint/good-views.js b/test/built-ins/Atomics/sub/bigint/good-views.js index ca79f540867f3058a896a4770dd635b65993c7bc..676dd8b5c3ed07440398ce9bdd96aad354e71460 100644 --- a/test/built-ins/Atomics/sub/bigint/good-views.js +++ b/test/built-ins/Atomics/sub/bigint/good-views.js @@ -1,53 +1,57 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.sub description: Test Atomics.sub on arrays that allow atomic operations includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var sab = new SharedArrayBuffer(1024); -var ab = new ArrayBuffer(16); +// Make it interesting - use non-zero byteOffsets and non-zero indexes. +// In-bounds boundary cases for indexing +// Atomics.store() computes an index from Idx in the same way as other +// Atomics operations, not quite like view[Idx]. +const sab = new SharedArrayBuffer(1024); +const ab = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { - // Make it interesting - use non-zero byteOffsets and non-zero indexes. - - var view = new TA(sab, 32, 20); - var control = new TA(ab, 0, 2); - - view[8] = 100; - assert.sameValue(Atomics.sub(view, 8, 10), 100, - "Subtract positive number"); - assert.sameValue(view[8], 90); - - assert.sameValue(Atomics.sub(view, 8, -5), 90, - "Subtract negative number, though result remains positive"); - assert.sameValue(view[8], 95); - - view[3] = -5; - control[0] = -5; - assert.sameValue(Atomics.sub(view, 3, 0), control[0], - "Result is negative and subject to coercion"); - - control[0] = 12345; - view[3] = 12345; - assert.sameValue(Atomics.sub(view, 3, 0), control[0], - "Result is subject to chopping"); - - control[0] = 123456789; - view[3] = 123456789; - assert.sameValue(Atomics.sub(view, 3, 0), control[0], - "Result is subject to chopping"); + const view = new TA(sab, 32, 20); + const control = new TA(ab, 0, 2); + view[8] = 100n; + assert.sameValue(Atomics.sub(view, 8, 10n), 100n, 'Atomics.sub(view, 8, 10n) returns 100n'); + assert.sameValue(view[8], 90n, 'The value of view[8] is 90n'); + assert.sameValue(Atomics.sub(view, 8, -5n), 90n, 'Atomics.sub(view, 8, -5n) returns 90n'); + assert.sameValue(view[8], 95, 'The value of view[8] is 95'); + view[3] = -5n; + control[0] = -5n; + + assert.sameValue( + Atomics.sub(view, 3, 0n), + control[0], + 'Atomics.sub(view, 3, 0n) returns the value of `control[0]` (-5n)' + ); + + control[0] = 12345n; + view[3] = 12345n; + + assert.sameValue( + Atomics.sub(view, 3, 0n), + control[0], + 'Atomics.sub(view, 3, 0n) returns the value of `control[0]` (12345n)' + ); + + control[0] = 123456789n; + view[3] = 123456789n; + + assert.sameValue( + Atomics.sub(view, 3, 0n), + control[0], + 'Atomics.sub(view, 3, 0n) returns the value of `control[0]` (123456789n)' + ); - // In-bounds boundary cases for indexing testWithAtomicsInBoundsIndices(function(IdxGen) { let Idx = IdxGen(view); - view.fill(0); - // Atomics.store() computes an index from Idx in the same way as other - // Atomics operations, not quite like view[Idx]. - Atomics.store(view, Idx, 37); - assert.sameValue(Atomics.sub(view, Idx, 0), 37); + view.fill(0n); + Atomics.store(view, Idx, 37n); + assert.sameValue(Atomics.sub(view, Idx, 0n), 37n, 'Atomics.sub(view, Idx, 0n) returns 37n'); }); -}); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/sub/bigint/nonshared-int-views.js b/test/built-ins/Atomics/sub/bigint/nonshared-int-views.js index de1455b3010794e3f129fd0b80f8b5c8ef7d89df..58274797dfd4debd9ef425a81e02ec4680a2221b 100644 --- a/test/built-ins/Atomics/sub/bigint/nonshared-int-views.js +++ b/test/built-ins/Atomics/sub/bigint/nonshared-int-views.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.sub description: > @@ -8,11 +7,10 @@ description: > includes: [testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, TypedArray] ---*/ - -var buffer = new ArrayBuffer(16); +const buffer = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 2); testWithBigIntTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { - Atomics.sub(new TA(buffer), 0, 0); - }, 'Atomics.sub(new TA(buffer), 0, 0) throws TypeError'); -}); + Atomics.sub(new TA(buffer), 0, 0n); + }, '`Atomics.sub(new TA(buffer), 0, 0n)` throws TypeError'); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/sub/expected-return-value.js b/test/built-ins/Atomics/sub/expected-return-value.js index eb0fcf88bac4359b0cc9a284253fc795e2f2149f..c4d1d1bf6eea29fe874d830815a4948bc5e1bf32 100644 --- a/test/built-ins/Atomics/sub/expected-return-value.js +++ b/test/built-ins/Atomics/sub/expected-return-value.js @@ -27,11 +27,16 @@ info: | features: [Atomics, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4); -var i32a = new Int32Array(buffer); -var update = 0b00000001000000001000000010000001; +const i32a = new Int32Array( + new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4) +); +const update = 0b00000001000000001000000010000001; i32a[0] = update; -assert.sameValue(Atomics.sub(i32a, 0, update), update); -assert.sameValue(i32a[0], 0); +assert.sameValue( + Atomics.sub(i32a, 0, update), + update, + 'Atomics.sub(i32a, 0, update) returns the value of `update` (0b00000001000000001000000010000001)' +); +assert.sameValue(i32a[0], 0, 'The value of i32a[0] is 0'); diff --git a/test/built-ins/Atomics/sub/good-views.js b/test/built-ins/Atomics/sub/good-views.js index 411e1ad1852ab1cf8a927bd435503417b08f917f..e05c6720c203a20b1198fb9384ae593e1765ba30 100644 --- a/test/built-ins/Atomics/sub/good-views.js +++ b/test/built-ins/Atomics/sub/good-views.js @@ -20,27 +20,27 @@ testWithTypedArrayConstructors(function(TA) { view[8] = 100; assert.sameValue(Atomics.sub(view, 8, 10), 100, - "Subtract positive number"); - assert.sameValue(view[8], 90); + 'Atomics.sub(view, 8, 10) returns 100'); + assert.sameValue(view[8], 90, 'The value of view[8] is 90'); assert.sameValue(Atomics.sub(view, 8, -5), 90, - "Subtract negative number, though result remains positive"); - assert.sameValue(view[8], 95); + 'Atomics.sub(view, 8, -5) returns 90'); + assert.sameValue(view[8], 95, 'The value of view[8] is 95'); view[3] = -5; control[0] = -5; assert.sameValue(Atomics.sub(view, 3, 0), control[0], - "Result is negative and subject to coercion"); + 'Atomics.sub(view, 3, 0) returns the value of `control[0]` (-5)'); control[0] = 12345; view[3] = 12345; assert.sameValue(Atomics.sub(view, 3, 0), control[0], - "Result is subject to chopping"); + 'Atomics.sub(view, 3, 0) returns the value of `control[0]` (12345)'); control[0] = 123456789; view[3] = 123456789; assert.sameValue(Atomics.sub(view, 3, 0), control[0], - "Result is subject to chopping"); + 'Atomics.sub(view, 3, 0) returns the value of `control[0]` (123456789)'); // In-bounds boundary cases for indexing testWithAtomicsInBoundsIndices(function(IdxGen) { @@ -49,6 +49,6 @@ testWithTypedArrayConstructors(function(TA) { // Atomics.store() computes an index from Idx in the same way as other // Atomics operations, not quite like view[Idx]. Atomics.store(view, Idx, 37); - assert.sameValue(Atomics.sub(view, Idx, 0), 37); + assert.sameValue(Atomics.sub(view, Idx, 0), 37, 'Atomics.sub(view, Idx, 0) returns 37'); }); }, views); diff --git a/test/built-ins/Atomics/sub/non-views.js b/test/built-ins/Atomics/sub/non-views.js index 46233994e67d1a1af92469d6fe9b9f0274f9c10c..695f0218633c8abef00c2eb664eef9c73a15e2d3 100644 --- a/test/built-ins/Atomics/sub/non-views.js +++ b/test/built-ins/Atomics/sub/non-views.js @@ -12,5 +12,5 @@ features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedAr testWithAtomicsNonViewValues(function(view) { assert.throws(TypeError, function() { Atomics.sub(view, 0, 0); - }, 'Atomics.sub(view, 0, 0) throws TypeError'); + }, '`Atomics.sub(view, 0, 0)` throws TypeError'); }); diff --git a/test/built-ins/Atomics/sub/nonshared-int-views.js b/test/built-ins/Atomics/sub/nonshared-int-views.js index ff7bbf0925429675b4b0f41031399613d07bfe84..b3f6c74a1cbd82d60a944548b292fc47e626d2f6 100644 --- a/test/built-ins/Atomics/sub/nonshared-int-views.js +++ b/test/built-ins/Atomics/sub/nonshared-int-views.js @@ -9,11 +9,11 @@ includes: [testTypedArray.js] features: [ArrayBuffer, Atomics, TypedArray] ---*/ -var buffer = new ArrayBuffer(16); -var views = intArrayConstructors.slice(); +const buffer = new ArrayBuffer(16); +const views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.sub(new TA(buffer), 0, 0); - }, 'Atomics.sub(new TA(buffer), 0, 0) throws TypeError'); + }, '`Atomics.sub(new TA(buffer), 0, 0)` throws TypeError'); }, views); diff --git a/test/built-ins/Atomics/sub/shared-nonint-views.js b/test/built-ins/Atomics/sub/shared-nonint-views.js index 9c373891cfe24fc8488c0956116919bc43332b13..599f77f4136fa9fec5cd3b0dcbf24b598ea4fa82 100644 --- a/test/built-ins/Atomics/sub/shared-nonint-views.js +++ b/test/built-ins/Atomics/sub/shared-nonint-views.js @@ -14,7 +14,7 @@ var buffer = new SharedArrayBuffer(1024); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.sub(new TA(buffer), 0, 0); - }, 'Atomics.sub(new TA(buffer), 0, 0) throws TypeError'); + }, '`Atomics.sub(new TA(buffer), 0, 0)` throws TypeError'); }, floatArrayConstructors); diff --git a/test/built-ins/Atomics/wait/bad-range.js b/test/built-ins/Atomics/wait/bad-range.js index 8299a66f0fbf70662c80722f1fee94bfdc46fa36..607149e6b4426691ad134f4a96e1550d602891a6 100644 --- a/test/built-ins/Atomics/wait/bad-range.js +++ b/test/built-ins/Atomics/wait/bad-range.js @@ -22,5 +22,5 @@ const i32a = new Int32Array( testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { Atomics.wait(i32a, IdxGen(i32a), 0, 0); - }, 'Atomics.wait(i32a, IdxGen(i32a), 0, 0) throws RangeError'); + }, '`Atomics.wait(i32a, IdxGen(i32a), 0, 0)` throws RangeError'); }); diff --git a/test/built-ins/Atomics/wait/bigint/bad-range.js b/test/built-ins/Atomics/wait/bigint/bad-range.js index 4a942951aed3eb57aff5c3964fde7bccbc8f63e8..ae0644e61835c5e70d3c2e864d66d8cb4d1e77e9 100644 --- a/test/built-ins/Atomics/wait/bigint/bad-range.js +++ b/test/built-ins/Atomics/wait/bigint/bad-range.js @@ -21,6 +21,6 @@ const i64a = new BigInt64Array( testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { - Atomics.wait(i64a, IdxGen(i64a), 0, 0); - }, 'Atomics.wait(i64a, IdxGen(i64a), 0, 0) throws RangeError'); + Atomics.wait(i64a, IdxGen(i64a), 0n, 0); + }, '`Atomics.wait(i64a, IdxGen(i64a), 0n, 0)` throws RangeError'); }); diff --git a/test/built-ins/Atomics/wait/bigint/cannot-suspend-throws.js b/test/built-ins/Atomics/wait/bigint/cannot-suspend-throws.js index 08b6551bb8aa2f69dc65efb869b500afed193d6f..05ad9aba090a6d77248520be8f046f6cbea701c0 100644 --- a/test/built-ins/Atomics/wait/bigint/cannot-suspend-throws.js +++ b/test/built-ins/Atomics/wait/bigint/cannot-suspend-throws.js @@ -1,6 +1,5 @@ // Copyright (C) 2018 Amal Hussein. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.wait description: > @@ -17,11 +16,8 @@ info: | features: [Atomics, BigInt, SharedArrayBuffer, TypedArray] flags: [CanBlockIsFalse] ---*/ - -const i64a = new BigInt64Array( - new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 8) -); +const i64a = new BigInt64Array(new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 8)); assert.throws(TypeError, function() { - Atomics.wait(i64a, 0, 0, 0); -}); + Atomics.wait(i64a, 0, 0n, 0); +}, '`Atomics.wait(i64a, 0, 0n, 0)` throws TypeError'); diff --git a/test/built-ins/Atomics/wait/bigint/false-for-timeout-agent.js b/test/built-ins/Atomics/wait/bigint/false-for-timeout-agent.js index 9ed38e8987f0b1ae231d8b417305f72fc1e95001..54732a390ba5b22ec499d104bfb377c22d626dba 100644 --- a/test/built-ins/Atomics/wait/bigint/false-for-timeout-agent.js +++ b/test/built-ins/Atomics/wait/bigint/false-for-timeout-agent.js @@ -32,9 +32,9 @@ $262.agent.start(` $262.agent.receiveBroadcast(function(sab) { const i64a = new BigInt64Array(sab); const before = $262.agent.monotonicNow(); - $262.agent.report(Atomics.wait(i64a, 0, 0, false)); - $262.agent.report(Atomics.wait(i64a, 0, 0, valueOf)); - $262.agent.report(Atomics.wait(i64a, 0, 0, toPrimitive)); + $262.agent.report(Atomics.wait(i64a, 0, 0n, false)); + $262.agent.report(Atomics.wait(i64a, 0, 0n, valueOf)); + $262.agent.report(Atomics.wait(i64a, 0, 0n, toPrimitive)); $262.agent.report($262.agent.monotonicNow() - before); $262.agent.leaving(); }); @@ -47,18 +47,30 @@ const i64a = new BigInt64Array( $262.agent.broadcast(i64a.buffer); $262.agent.sleep(100); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue($262.agent.getReport(), 'timed-out'); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); const lapse = $262.agent.getReport(); assert( lapse >= 0, - `${lapse} should be greater than, or equal to 0` + 'The result of `(lapse >= 0)` is true' ); assert( lapse <= $262.agent.MAX_TIME_EPSILON, - `${lapse} should be less than ${$262.agent.MAX_TIME_EPSILON}` + 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true' ); -assert.sameValue(Atomics.wake(i64a, 0), 0); +assert.sameValue(Atomics.wake(i64a, 0), 0, 'Atomics.wake(i64a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/bigint/false-for-timeout.js b/test/built-ins/Atomics/wait/bigint/false-for-timeout.js index 2188167e54ded0fd997b715ea57bb0458386c0b0..b16ac532746ea679fb6ee1a429f75f811447719d 100644 --- a/test/built-ins/Atomics/wait/bigint/false-for-timeout.js +++ b/test/built-ins/Atomics/wait/bigint/false-for-timeout.js @@ -32,7 +32,19 @@ const toPrimitive = { } }; -assert.sameValue(Atomics.wait(i64a, 0, 0, false), "timed-out"); -assert.sameValue(Atomics.wait(i64a, 0, 0, valueOf), "timed-out"); -assert.sameValue(Atomics.wait(i64a, 0, 0, toPrimitive), "timed-out"); +assert.sameValue( + Atomics.wait(i64a, 0, 0n, false), + "timed-out", + 'Atomics.wait(i64a, 0, 0n, false) returns "timed-out"' +); +assert.sameValue( + Atomics.wait(i64a, 0, 0n, valueOf), + "timed-out", + 'Atomics.wait(i64a, 0, 0n, valueOf) returns "timed-out"' +); +assert.sameValue( + Atomics.wait(i64a, 0, 0n, toPrimitive), + "timed-out", + 'Atomics.wait(i64a, 0, 0n, toPrimitive) returns "timed-out"' +); diff --git a/test/built-ins/Atomics/wait/bigint/good-views.js b/test/built-ins/Atomics/wait/bigint/good-views.js deleted file mode 100644 index 0c1bbc0ca89f37be43d6890cf85f18906c20addd..0000000000000000000000000000000000000000 --- a/test/built-ins/Atomics/wait/bigint/good-views.js +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (C) 2018 Rick Waldron. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -esid: sec-atomics.wait -description: > - Test Atomics.wait on arrays that allow atomic operations, - in an Agent that is allowed to wait. -includes: [atomicsHelper.js] -features: [Atomics, BigInt] ----*/ - -// Let's assume 'wait' is not allowed on the main thread, -// even in the shell. - -$262.agent.start(` - const sab = new SharedArrayBuffer(1024); - const ab = new ArrayBuffer(16); - - const good_indices = [ (view) => 0/-1, // -0 - (view) => '-0', - (view) => view.length - 1, - (view) => ({ valueOf: () => 0 }), - (view) => ({ toString: () => '0', valueOf: false }) // non-callable valueOf triggers invocation of toString - ]; - - const view = new BigInt64Array(sab, 32, 20); - - view[0] = 0; - $262.agent.report("A " + Atomics.wait(view, 0, 0, 0)) - $262.agent.report("B " + Atomics.wait(view, 0, 37, 0)); - - // In-bounds boundary cases for indexing - for ( let IdxGen of good_indices ) { - let Idx = IdxGen(view); - view.fill(0); - // Atomics.store() computes an index from Idx in the same way as other - // Atomics operations, not quite like view[Idx]. - Atomics.store(view, Idx, 37); - $262.agent.report("C " + Atomics.wait(view, Idx, 0)); - } - - $262.agent.report("done"); - $262.agent.leaving(); -`); - -assert.sameValue($262.agent.getReport(), 'A timed-out'); -assert.sameValue($262.agent.getReport(), 'B not-equal'); -assert.sameValue($262.agent.getReport(), 'C not-equal'); diff --git a/test/built-ins/Atomics/wait/bigint/nan-for-timeout.js b/test/built-ins/Atomics/wait/bigint/nan-for-timeout.js index 21723c9becc65d8d39725e2230dc24f423b09e05..04c8343fe3e9522a7000294002dec1bdd1f4b823 100644 --- a/test/built-ins/Atomics/wait/bigint/nan-for-timeout.js +++ b/test/built-ins/Atomics/wait/bigint/nan-for-timeout.js @@ -20,7 +20,7 @@ features: [Atomics, BigInt, SharedArrayBuffer, TypedArray] $262.agent.start(` $262.agent.receiveBroadcast(function(sab) { const i64a = new BigInt64Array(sab); - $262.agent.report(Atomics.wait(i64a, 0, 0, NaN)); // NaN => +Infinity + $262.agent.report(Atomics.wait(i64a, 0, 0n, NaN)); // NaN => +Infinity $262.agent.leaving(); }); `); @@ -31,5 +31,5 @@ const i64a = new BigInt64Array( $262.agent.broadcast(i64a.buffer); $262.agent.sleep(100); -assert.sameValue(Atomics.wake(i64a, 0), 1); -assert.sameValue($262.agent.getReport(), 'ok'); +assert.sameValue(Atomics.wake(i64a, 0), 1, 'Atomics.wake(i64a, 0) returns 1'); +assert.sameValue($262.agent.getReport(), 'ok', '$262.agent.getReport() returns "ok"'); diff --git a/test/built-ins/Atomics/wait/bigint/negative-index-throws.js b/test/built-ins/Atomics/wait/bigint/negative-index-throws.js index 9acd86db1e5782cee00af04edb24a90593a22d4a..552b710478864ff565dd58c13108e6fd4dc18dc1 100644 --- a/test/built-ins/Atomics/wait/bigint/negative-index-throws.js +++ b/test/built-ins/Atomics/wait/bigint/negative-index-throws.js @@ -27,13 +27,13 @@ const poisoned = { assert.throws(RangeError, function() { Atomics.wait(i64a, -Infinity, poisoned, poisoned); -}); +}, '`Atomics.wait(i64a, -Infinity, poisoned, poisoned)` throws RangeError'); assert.throws(RangeError, function() { Atomics.wait(i64a, -7.999, poisoned, poisoned); -}); +}, '`Atomics.wait(i64a, -7.999, poisoned, poisoned)` throws RangeError'); assert.throws(RangeError, function() { Atomics.wait(i64a, -1, poisoned, poisoned); -}); +}, '`Atomics.wait(i64a, -1, poisoned, poisoned)` throws RangeError'); assert.throws(RangeError, function() { Atomics.wait(i64a, -300, poisoned, poisoned); -}); +}, '`Atomics.wait(i64a, -300, poisoned, poisoned)` throws RangeError'); diff --git a/test/built-ins/Atomics/wait/bigint/negative-timeout-agent.js b/test/built-ins/Atomics/wait/bigint/negative-timeout-agent.js index d828c990c9950bd7919b426e62fac775ced0d91e..d46bc8b6910077d3e63d5e62eee4ff7505db9f69 100644 --- a/test/built-ins/Atomics/wait/bigint/negative-timeout-agent.js +++ b/test/built-ins/Atomics/wait/bigint/negative-timeout-agent.js @@ -23,5 +23,9 @@ const i64a = new BigInt64Array( $262.agent.broadcast(i64a.buffer); $262.agent.sleep(10); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i64a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i64a, 0), 0, 'Atomics.wake(i64a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/bigint/negative-timeout.js b/test/built-ins/Atomics/wait/bigint/negative-timeout.js index a3239d9ce01919966ca9bcb30b592fdcafdfce08..35bc0d57f6530fe0bd49ae5b127274738424e809 100644 --- a/test/built-ins/Atomics/wait/bigint/negative-timeout.js +++ b/test/built-ins/Atomics/wait/bigint/negative-timeout.js @@ -13,4 +13,8 @@ const i64a = new BigInt64Array( new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 8) ); -assert.sameValue(Atomics.wait(i64a, 0, 0, -1), "timed-out"); +assert.sameValue( + Atomics.wait(i64a, 0, 0n, -1), + "timed-out", + 'Atomics.wait(i64a, 0, 0n, -1) returns "timed-out"' +); diff --git a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-no-operation.js b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-no-operation.js index cb91b6da4e8cd94544feb1af5d4345f0c36ce200..221668f83dbfa9e42bb27545fe06becc84793beb 100644 --- a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-no-operation.js +++ b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-no-operation.js @@ -40,7 +40,11 @@ $262.agent.sleep(10); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i64a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i64a, 0), 0, 'Atomics.wake(i64a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-add.js b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-add.js index 2cc3ddae5fa6dca1eb17c2f76e41d6e8258349d8..7e223b6b049387e15bca58bc992668c43fda4988 100644 --- a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-add.js +++ b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-add.js @@ -18,7 +18,7 @@ $262.agent.start(` $262.agent.receiveBroadcast(function(sab) { const i64a = new BigInt64Array(sab); const before = $262.agent.monotonicNow(); - const unpark = Atomics.wait(i64a, 0, 0, ${TIMEOUT}); + const unpark = Atomics.wait(i64a, 0, 0n, ${TIMEOUT}); $262.agent.report($262.agent.monotonicNow() - before); $262.agent.report(unpark); $262.agent.leaving(); @@ -33,9 +33,13 @@ Atomics.add(i64a, 0, 1); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i64a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i64a, 0), 0, 'Atomics.wake(i64a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-and.js b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-and.js index 2d92ce6f43a4d4ef980405fb2230f9c057c17ac8..5352f006bfc93cd2f7683d8ed006f54ebfa2766d 100644 --- a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-and.js +++ b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-and.js @@ -17,7 +17,7 @@ $262.agent.start(` $262.agent.receiveBroadcast(function(sab) { const i64a = new BigInt64Array(sab); const before = $262.agent.monotonicNow(); - const unpark = Atomics.wait(i64a, 0, 0, ${TIMEOUT}); + const unpark = Atomics.wait(i64a, 0, 0n, ${TIMEOUT}); $262.agent.report($262.agent.monotonicNow() - before); $262.agent.report(unpark); $262.agent.leaving(); @@ -32,9 +32,13 @@ Atomics.and(i64a, 0, 1); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i64a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i64a, 0), 0, 'Atomics.wake(i64a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-compareExchange.js b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-compareExchange.js index b6faecf4778bd141eb82c81a173dae7e474c6da8..3b36acc82c53d9e502c36239d2ff5b08a35a9c72 100644 --- a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-compareExchange.js +++ b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-compareExchange.js @@ -17,7 +17,7 @@ $262.agent.start(` $262.agent.receiveBroadcast(function(sab) { const i64a = new BigInt64Array(sab); const before = $262.agent.monotonicNow(); - const unpark = Atomics.wait(i64a, 0, 0, ${TIMEOUT}); + const unpark = Atomics.wait(i64a, 0, 0n, ${TIMEOUT}); $262.agent.report($262.agent.monotonicNow() - before); $262.agent.report(unpark); $262.agent.leaving(); @@ -32,7 +32,11 @@ Atomics.compareExchange(i64a, 0, 0, 1); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i64a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i64a, 0), 0, 'Atomics.wake(i64a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-exchange.js b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-exchange.js index 23b63d38fc83eabe9f81adcfaa92521f9cb139aa..d50a5c20ffbbc1d0baa17751db137585cbb6d042 100644 --- a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-exchange.js +++ b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-exchange.js @@ -17,7 +17,7 @@ $262.agent.start(` $262.agent.receiveBroadcast(function(sab) { const i64a = new BigInt64Array(sab); const before = $262.agent.monotonicNow(); - const unpark = Atomics.wait(i64a, 0, 0, ${TIMEOUT}); + const unpark = Atomics.wait(i64a, 0, 0n, ${TIMEOUT}); $262.agent.report($262.agent.monotonicNow() - before); $262.agent.report(unpark); $262.agent.leaving(); @@ -32,8 +32,12 @@ Atomics.exchange(i64a, 0, 1); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i64a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i64a, 0), 0, 'Atomics.wake(i64a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-or.js b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-or.js index 352642bfa5e975b39f5352b517a12e89076a8fe1..29d0adb0fee156d1d5130efb36b6400286d73986 100644 --- a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-or.js +++ b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-or.js @@ -17,7 +17,7 @@ $262.agent.start(` $262.agent.receiveBroadcast(function(sab) { const i64a = new BigInt64Array(sab); const before = $262.agent.monotonicNow(); - const unpark = Atomics.wait(i64a, 0, 0, ${TIMEOUT}); + const unpark = Atomics.wait(i64a, 0, 0n, ${TIMEOUT}); $262.agent.report($262.agent.monotonicNow() - before); $262.agent.report(unpark); $262.agent.leaving(); @@ -32,9 +32,13 @@ Atomics.or(i64a, 0, 1); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i64a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i64a, 0), 0, 'Atomics.wake(i64a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-store.js b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-store.js index 7f955ac2c090c9023ad926c96af45dce59f7454a..646a6ea4f50bde831f78eb27d31342d0bd1e69bf 100644 --- a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-store.js +++ b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-store.js @@ -17,7 +17,7 @@ $262.agent.start(` $262.agent.receiveBroadcast(function(sab) { const i64a = new BigInt64Array(sab); const before = $262.agent.monotonicNow(); - const unpark = Atomics.wait(i64a, 0, 0, ${TIMEOUT}); + const unpark = Atomics.wait(i64a, 0, 0n, ${TIMEOUT}); $262.agent.report($262.agent.monotonicNow() - before); $262.agent.report(unpark); $262.agent.leaving(); @@ -32,8 +32,12 @@ Atomics.store(i64a, 0, 0x111111); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i64a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i64a, 0), 0, 'Atomics.wake(i64a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-sub.js b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-sub.js index 68bcdea9a3b8692870fa702d5a9acdd5e411cdd6..b60d398743d688f33fbfc22d2a46592e27d0075b 100644 --- a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-sub.js +++ b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-sub.js @@ -17,7 +17,7 @@ $262.agent.start(` $262.agent.receiveBroadcast(function(sab) { const i64a = new BigInt64Array(sab); const before = $262.agent.monotonicNow(); - const unpark = Atomics.wait(i64a, 0, 0, ${TIMEOUT}); + const unpark = Atomics.wait(i64a, 0, 0n, ${TIMEOUT}); $262.agent.report($262.agent.monotonicNow() - before); $262.agent.report(unpark); $262.agent.leaving(); @@ -32,7 +32,11 @@ Atomics.sub(i64a, 0, 1); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i64a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i64a, 0), 0, 'Atomics.wake(i64a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-xor.js b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-xor.js index b06ac9565cf9b14eda2826696432f13d0cd5653c..542a3f43352b4aef2985b159a5cfa8c03c5d8709 100644 --- a/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-xor.js +++ b/test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-xor.js @@ -17,7 +17,7 @@ $262.agent.start(` $262.agent.receiveBroadcast(function(sab) { const i64a = new BigInt64Array(sab); const before = $262.agent.monotonicNow(); - const unpark = Atomics.wait(i64a, 0, 0, ${TIMEOUT}); + const unpark = Atomics.wait(i64a, 0, 0n, ${TIMEOUT}); $262.agent.report($262.agent.monotonicNow() - before); $262.agent.report(unpark); $262.agent.leaving(); @@ -32,10 +32,14 @@ Atomics.xor(i64a, 0, 1); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i64a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i64a, 0), 0, 'Atomics.wake(i64a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/bigint/non-bigint64-typedarray-throws.js b/test/built-ins/Atomics/wait/bigint/non-bigint64-typedarray-throws.js index 6278a5c32890f268e63c7ea5114cda1b26f50042..e6437c19df2e3b3474a72005836300576e36aa6b 100644 --- a/test/built-ins/Atomics/wait/bigint/non-bigint64-typedarray-throws.js +++ b/test/built-ins/Atomics/wait/bigint/non-bigint64-typedarray-throws.js @@ -16,7 +16,7 @@ info: | ... 5. If waitable is true, then - a. If typeName is not "Int32Array" or "BigInt64Array", + a. If typeName is not "BigInt64Array", throw a TypeError exception. features: [Atomics, BigInt, SharedArrayBuffer, TypedArray, ArrayBuffer, DataView, let, arrow-function, for-of, Atomics, BigInt, SharedArrayBuffer, TypedArray] @@ -34,10 +34,10 @@ const poisoned = { }; assert.throws(TypeError, function() { - Atomics.wait(i64a, 0, 0, 0); -}, 'BigUint64Array'); + Atomics.wait(i64a, 0, 0n, 0); +}, '`Atomics.wait(i64a, 0, 0n, 0)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wait(i64a, poisoned, poisoned, poisoned); -}, 'BigUint64Array'); +}, '`Atomics.wait(i64a, poisoned, poisoned, poisoned)` throws TypeError'); diff --git a/test/built-ins/Atomics/wait/bigint/non-shared-bufferdata-throws.js b/test/built-ins/Atomics/wait/bigint/non-shared-bufferdata-throws.js index cbe7776b1d8156e3cd5fbb9ceb09665733a7649c..fefbd333b275cc57518e5b1c7f2fc39b6951bcfe 100644 --- a/test/built-ins/Atomics/wait/bigint/non-shared-bufferdata-throws.js +++ b/test/built-ins/Atomics/wait/bigint/non-shared-bufferdata-throws.js @@ -26,9 +26,9 @@ const poisoned = { }; assert.throws(TypeError, function() { - Atomics.wait(i64a, 0, 0, 0); -}, 'Atomics.wait(i64a, 0, 0, 0) on ArrayBuffer throws TypeError'); + Atomics.wait(i64a, 0, 0n, 0); +}, '`Atomics.wait(i64a, 0, 0n, 0)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wait(i64a, poisoned, poisoned, poisoned); -}, 'Atomics.wait(i64a, poisoned, poisoned, poisoned) on ArrayBuffer throws TypeError'); +}, '`Atomics.wait(i64a, poisoned, poisoned, poisoned)` throws TypeError'); diff --git a/test/built-ins/Atomics/wait/bigint/null-bufferdata-throws.js b/test/built-ins/Atomics/wait/bigint/null-bufferdata-throws.js index 0420510c6b4447b0a36bfc3875712650652a3f8d..ae4e3c2a0ee7b9964335fa9b0214a2b5d3464df4 100644 --- a/test/built-ins/Atomics/wait/bigint/null-bufferdata-throws.js +++ b/test/built-ins/Atomics/wait/bigint/null-bufferdata-throws.js @@ -42,4 +42,4 @@ try { assert.throws(TypeError, function() { Atomics.wait(i64a, poisoned, poisoned, poisoned); -}, 'Atomics.wait(i64a, poisoned, poisoned, poisoned) on detached buffer throws TypeError'); +}, '`Atomics.wait(i64a, poisoned, poisoned, poisoned)` throws TypeError'); diff --git a/test/built-ins/Atomics/wait/bigint/out-of-range-index-throws.js b/test/built-ins/Atomics/wait/bigint/out-of-range-index-throws.js index d4d936860b515d7594ec7ad7006f656dd123060d..ac029a9f603dac25e0a283091387c1c425d7f81f 100644 --- a/test/built-ins/Atomics/wait/bigint/out-of-range-index-throws.js +++ b/test/built-ins/Atomics/wait/bigint/out-of-range-index-throws.js @@ -28,10 +28,10 @@ const poisoned = { assert.throws(RangeError, function() { Atomics.wait(i64a, Infinity, poisoned, poisoned); -}); +}, '`Atomics.wait(i64a, Infinity, poisoned, poisoned)` throws RangeError'); assert.throws(RangeError, function() { Atomics.wait(i64a, 2, poisoned, poisoned); -}); +}, '`Atomics.wait(i64a, 2, poisoned, poisoned)` throws RangeError'); assert.throws(RangeError, function() { Atomics.wait(i64a, 200, poisoned, poisoned); -}); +}, '`Atomics.wait(i64a, 200, poisoned, poisoned)` throws RangeError'); diff --git a/test/built-ins/Atomics/wait/bigint/value-not-equal.js b/test/built-ins/Atomics/wait/bigint/value-not-equal.js index c67f82808081df47b87e9125f6259942233cfe4e..99be75f72d832ccbc25166a65894337710c08595 100644 --- a/test/built-ins/Atomics/wait/bigint/value-not-equal.js +++ b/test/built-ins/Atomics/wait/bigint/value-not-equal.js @@ -18,12 +18,12 @@ includes: [atomicsHelper.js] features: [Atomics, BigInt, SharedArrayBuffer, TypedArray] ---*/ -var value = 42; +const value = 42n; $262.agent.start(` $262.agent.receiveBroadcast(function(sab) { const i64a = new BigInt64Array(sab); - + Atomics.add(i64a, 1, 1); $262.agent.report(Atomics.store(i64a, 0, ${value})); $262.agent.report(Atomics.wait(i64a, 0, 0)); $262.agent.leaving(); @@ -35,8 +35,16 @@ const i64a = new BigInt64Array( ); $262.agent.broadcast(i64a.buffer); -$262.agent.sleep(100); +$262.agent.waitUntil(i64a, 1, 1); -assert.sameValue($262.agent.getReport(), value.toString()); -assert.sameValue($262.agent.getReport(), 'not-equal'); +assert.sameValue( + $262.agent.getReport(), + '42', + '$262.agent.getReport() returns "42"' +); +assert.sameValue( + $262.agent.getReport(), + 'not-equal', + '$262.agent.getReport() returns "not-equal"' +); diff --git a/test/built-ins/Atomics/wait/bigint/waiterlist-order-of-operations-is-fifo.js b/test/built-ins/Atomics/wait/bigint/waiterlist-order-of-operations-is-fifo.js index 95a554b72d2b946d19bb4d814bd9624ec6854af0..f9758bac6a1e3fd0f6050980f262c33821dc46b5 100644 --- a/test/built-ins/Atomics/wait/bigint/waiterlist-order-of-operations-is-fifo.js +++ b/test/built-ins/Atomics/wait/bigint/waiterlist-order-of-operations-is-fifo.js @@ -24,7 +24,7 @@ $262.agent.start(` const i64a = new BigInt64Array(sab); $262.agent.report(${agent1}); - $262.agent.report(Atomics.wait(i64a, 1, 0)); + $262.agent.report(Atomics.wait(i64a, 1, 0n)); $262.agent.report(${agent1}); $262.agent.leaving(); }); @@ -35,7 +35,7 @@ $262.agent.start(` const i64a = new BigInt64Array(sab); $262.agent.report(${agent2}); - $262.agent.report(Atomics.wait(i64a, 2, 0)); + $262.agent.report(Atomics.wait(i64a, 2, 0n)); $262.agent.report(${agent2}); $262.agent.leaving(); }); @@ -46,7 +46,7 @@ $262.agent.start(` const i64a = new BigInt64Array(sab); $262.agent.report(${agent3}); - $262.agent.report(Atomics.wait(i64a, 3, 0)); + $262.agent.report(Atomics.wait(i64a, 3, 0n)); $262.agent.report(${agent3}); $262.agent.leaving(); }); @@ -64,14 +64,26 @@ $262.agent.sleep(100); const started = [$262.agent.getReport(), $262.agent.getReport(), $262.agent.getReport()]; // Agents must wake in the order they waited -assert.sameValue(Atomics.wake(i64a, 1, 1), 1); -assert.sameValue($262.agent.getReport(), 'ok'); -assert.sameValue($262.agent.getReport(), started[0]); +assert.sameValue(Atomics.wake(i64a, 1, 1), 1, 'Atomics.wake(i64a, 1, 1) returns 1'); +assert.sameValue($262.agent.getReport(), 'ok', '$262.agent.getReport() returns "ok"'); +assert.sameValue( + $262.agent.getReport(), + started[0], + `$262.agent.getReport() returns the value of 'started[0]' (${started[0]})` +); -assert.sameValue(Atomics.wake(i64a, 2, 1), 1); -assert.sameValue($262.agent.getReport(), 'ok'); -assert.sameValue($262.agent.getReport(), started[1]); +assert.sameValue(Atomics.wake(i64a, 2, 1), 1, 'Atomics.wake(i64a, 2, 1) returns 1'); +assert.sameValue($262.agent.getReport(), 'ok', '$262.agent.getReport() returns "ok"'); +assert.sameValue( + $262.agent.getReport(), + started[1], + `$262.agent.getReport() returns the value of 'started[1]' (${started[1]})` +); -assert.sameValue(Atomics.wake(i64a, 3, 1), 1); -assert.sameValue($262.agent.getReport(), 'ok'); -assert.sameValue($262.agent.getReport(), started[2]); +assert.sameValue(Atomics.wake(i64a, 3, 1), 1, 'Atomics.wake(i64a, 3, 1) returns 1'); +assert.sameValue($262.agent.getReport(), 'ok', '$262.agent.getReport() returns "ok"'); +assert.sameValue( + $262.agent.getReport(), + started[2], + `$262.agent.getReport() returns the value of 'started[2]' (${started[2]})` +); diff --git a/test/built-ins/Atomics/wait/bigint/was-woken-before-timeout.js b/test/built-ins/Atomics/wait/bigint/was-woken-before-timeout.js index d9084dcdf57b9c55f4bcde603a8580aff1446001..48ad7d3abe1fa11765035c19160c7181ee458c4f 100644 --- a/test/built-ins/Atomics/wait/bigint/was-woken-before-timeout.js +++ b/test/built-ins/Atomics/wait/bigint/was-woken-before-timeout.js @@ -29,7 +29,7 @@ $262.agent.start(` $262.agent.receiveBroadcast(function(sab) { const i64a = new BigInt64Array(sab); const before = $262.agent.monotonicNow(); - const unpark = Atomics.wait(i64a, 0, 0, ${timeout}); + const unpark = Atomics.wait(i64a, 0, 0n, ${timeout}); $262.agent.report($262.agent.monotonicNow() - before); $262.agent.report(unpark); $262.agent.leaving(); @@ -43,14 +43,14 @@ const i64a = new BigInt64Array( $262.agent.broadcast(i64a.buffer); $262.agent.sleep(sleeping); -assert.sameValue(Atomics.wake(i64a, 0), 1); +assert.sameValue(Atomics.wake(i64a, 0), 1, 'Atomics.wake(i64a, 0) returns 1'); const lapse = $262.agent.getReport(); assert( sleeping + lapse < timeout, - `${sleeping + lapse} should be less than ${timeout}` + 'The result of `(sleeping + lapse < timeout)` is true' ); -assert.sameValue($262.agent.getReport(), 'ok'); +assert.sameValue($262.agent.getReport(), 'ok', '$262.agent.getReport() returns "ok"'); diff --git a/test/built-ins/Atomics/wait/cannot-suspend-throws.js b/test/built-ins/Atomics/wait/cannot-suspend-throws.js index 39792eb6825fc44e804a0464114ef6d5f025828f..48941b8cabea9cb1a67ddc709a02a62c0387fe17 100644 --- a/test/built-ins/Atomics/wait/cannot-suspend-throws.js +++ b/test/built-ins/Atomics/wait/cannot-suspend-throws.js @@ -24,4 +24,4 @@ const i32a = new Int32Array( assert.throws(TypeError, function() { Atomics.wait(i32a, 0, 0, 0); -}); +}, '`Atomics.wait(i32a, 0, 0, 0)` throws TypeError'); diff --git a/test/built-ins/Atomics/wait/false-for-timeout-agent.js b/test/built-ins/Atomics/wait/false-for-timeout-agent.js index 1bdda0a50e4c761c8f4dd6dfdd85a8ea84dd46f0..85bd22bc85fb5732e544292cf8b08ac5e896681c 100644 --- a/test/built-ins/Atomics/wait/false-for-timeout-agent.js +++ b/test/built-ins/Atomics/wait/false-for-timeout-agent.js @@ -47,15 +47,27 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.sleep(100); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue($262.agent.getReport(), 'timed-out'); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); var lapse = $262.agent.getReport(); -assert(lapse >= 0, 'timeout should be a min of 0ms'); +assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (The result of `(lapse >= 0)` is true (timeout should be a min of 0ms))'); -assert(lapse <= $262.agent.MAX_TIME_EPSILON, `timeout should be a max of ${$262.agent.MAX_TIME_EPSILON}`); +assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true)'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/false-for-timeout.js b/test/built-ins/Atomics/wait/false-for-timeout.js index b79fe25fe306777f154b3779fce255469c42155e..c008d21f61b43f907edef0adb7911ab0570affb4 100644 --- a/test/built-ins/Atomics/wait/false-for-timeout.js +++ b/test/built-ins/Atomics/wait/false-for-timeout.js @@ -32,7 +32,19 @@ const toPrimitive = { } }; -assert.sameValue(Atomics.wait(i32a, 0, 0, false), 'timed-out'); -assert.sameValue(Atomics.wait(i32a, 0, 0, valueOf), 'timed-out'); -assert.sameValue(Atomics.wait(i32a, 0, 0, toPrimitive), 'timed-out'); +assert.sameValue( + Atomics.wait(i32a, 0, 0, false), + 'timed-out', + 'Atomics.wait(i32a, 0, 0, false) returns "timed-out"' +); +assert.sameValue( + Atomics.wait(i32a, 0, 0, valueOf), + 'timed-out', + 'Atomics.wait(i32a, 0, 0, valueOf) returns "timed-out"' +); +assert.sameValue( + Atomics.wait(i32a, 0, 0, toPrimitive), + 'timed-out', + 'Atomics.wait(i32a, 0, 0, toPrimitive) returns "timed-out"' +); diff --git a/test/built-ins/Atomics/wait/good-views.js b/test/built-ins/Atomics/wait/good-views.js index 536293c23e86808acf494ad1dd47723c07cce6a6..f699c69346a84f874c4e6dc1fcce934f66ab9b9f 100644 --- a/test/built-ins/Atomics/wait/good-views.js +++ b/test/built-ins/Atomics/wait/good-views.js @@ -44,6 +44,18 @@ $262.agent.start(` $262.agent.leaving(); `); -assert.sameValue($262.agent.getReport(), 'A timed-out'); -assert.sameValue($262.agent.getReport(), 'B not-equal'); -assert.sameValue($262.agent.getReport(), 'C not-equal'); +assert.sameValue( + $262.agent.getReport(), + 'A timed-out', + '$262.agent.getReport() returns "A timed-out"' +); +assert.sameValue( + $262.agent.getReport(), + 'B not-equal', + '$262.agent.getReport() returns "B not-equal"' +); +assert.sameValue( + $262.agent.getReport(), + 'C not-equal', + '$262.agent.getReport() returns "C not-equal"' +); diff --git a/test/built-ins/Atomics/wait/nan-for-timeout.js b/test/built-ins/Atomics/wait/nan-for-timeout.js index 7ae886c772358c664714e224026a92e18a9bf4c3..3a1b109e0d360a284213e178b1f3809408d31e43 100644 --- a/test/built-ins/Atomics/wait/nan-for-timeout.js +++ b/test/built-ins/Atomics/wait/nan-for-timeout.js @@ -32,5 +32,5 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.sleep(500); // Ample time -assert.sameValue(Atomics.wake(i32a, 0), 1); -assert.sameValue($262.agent.getReport(), "ok"); +assert.sameValue(Atomics.wake(i32a, 0), 1, 'Atomics.wake(i32a, 0) returns 1'); +assert.sameValue($262.agent.getReport(), "ok", '$262.agent.getReport() returns "ok"'); diff --git a/test/built-ins/Atomics/wait/negative-index-throws.js b/test/built-ins/Atomics/wait/negative-index-throws.js index 5cb009486fdaf300ebd1446d856df118e557dfa7..0c2ecffcf5895c31c23caef50ecffa0badb5c311 100644 --- a/test/built-ins/Atomics/wait/negative-index-throws.js +++ b/test/built-ins/Atomics/wait/negative-index-throws.js @@ -30,13 +30,13 @@ const poisoned = { assert.throws(RangeError, function() { Atomics.wait(i32a, -Infinity, poisoned, poisoned); -}); +}, '`Atomics.wait(i32a, -Infinity, poisoned, poisoned)` throws RangeError'); assert.throws(RangeError, function() { Atomics.wait(i32a, -7.999, poisoned, poisoned); -}); +}, '`Atomics.wait(i32a, -7.999, poisoned, poisoned)` throws RangeError'); assert.throws(RangeError, function() { Atomics.wait(i32a, -1, poisoned, poisoned); -}); +}, '`Atomics.wait(i32a, -1, poisoned, poisoned)` throws RangeError'); assert.throws(RangeError, function() { Atomics.wait(i32a, -300, poisoned, poisoned); -}); +}, '`Atomics.wait(i32a, -300, poisoned, poisoned)` throws RangeError'); diff --git a/test/built-ins/Atomics/wait/negative-timeout-agent.js b/test/built-ins/Atomics/wait/negative-timeout-agent.js index 4b93eeb05faef5738b3979455fe21e5f910e41f0..15ee04348dba95b8a597c453b132967d6a119443 100644 --- a/test/built-ins/Atomics/wait/negative-timeout-agent.js +++ b/test/built-ins/Atomics/wait/negative-timeout-agent.js @@ -24,5 +24,9 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.sleep(100); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/negative-timeout.js b/test/built-ins/Atomics/wait/negative-timeout.js index 97a2ed91dd1ff3e652925502243d44fd44ac9159..59c74af2c0e2567aa97f2ba6e8d3e853734b7bb0 100644 --- a/test/built-ins/Atomics/wait/negative-timeout.js +++ b/test/built-ins/Atomics/wait/negative-timeout.js @@ -13,4 +13,8 @@ const i32a = new Int32Array( new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4) ); -assert.sameValue(Atomics.wait(i32a, 0, 0, -1), "timed-out"); +assert.sameValue( + Atomics.wait(i32a, 0, 0, -1), + "timed-out", + 'Atomics.wait(i32a, 0, 0, -1) returns "timed-out"' +); diff --git a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-add.js b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-add.js index 4ed4cc2b37bd02d4a8eecaa61278fa64092f2f03..6e43276b66799cc7baf14e4b6cd97b1d6675e880 100644 --- a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-add.js +++ b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-add.js @@ -33,9 +33,13 @@ Atomics.add(i32a, 0, 1); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true (The result of `(lapse >= TIMEOUT)` is true)' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-and.js b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-and.js index 66f6bc7c03dd717cb12212007a9f8faaf633fa8d..2d6216185b3cabc2cb327ba463ca668026058279 100644 --- a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-and.js +++ b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-and.js @@ -33,9 +33,13 @@ Atomics.and(i32a, 0, 1); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true (The result of `(lapse >= TIMEOUT)` is true)' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-compareExchange.js b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-compareExchange.js index fdb8bd04feaeb688ca0900330f554fe7ea5733e4..d48ad4bf56d48c825cda4abfd1e3ccca2f21e63f 100644 --- a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-compareExchange.js +++ b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-compareExchange.js @@ -33,7 +33,11 @@ Atomics.compareExchange(i32a, 0, 0, 1); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true (The result of `(lapse >= TIMEOUT)` is true)' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-exchange.js b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-exchange.js index 6976bcdfccba73891c3e80ff0d038e623ab5b2aa..11a9cc295f073c4f439c0434055b904867119e81 100644 --- a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-exchange.js +++ b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-exchange.js @@ -33,8 +33,12 @@ Atomics.exchange(i32a, 0, 1); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true (The result of `(lapse >= TIMEOUT)` is true)' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-or.js b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-or.js index 847706e762b6a19878851fb5320ccc6cdd4a626b..7e39a50df1f15e98be2cf40fcdb55d35479ded3c 100644 --- a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-or.js +++ b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-or.js @@ -33,9 +33,13 @@ Atomics.or(i32a, 0, 1); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true (The result of `(lapse >= TIMEOUT)` is true)' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-store.js b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-store.js index e2e918fab4c50556c7bd705addafcd2267b3dd48..bff44f4f1d341f49f04d53de72212845e4cbc262 100644 --- a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-store.js +++ b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-store.js @@ -33,8 +33,12 @@ Atomics.store(i32a, 0, 0x111111); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true (The result of `(lapse >= TIMEOUT)` is true)' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-sub.js b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-sub.js index 196d3d260466c0e5088d153c963dc49e7591f26e..317157442b44e9258ab6c3fe4abf22dac4d9b718 100644 --- a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-sub.js +++ b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-sub.js @@ -33,7 +33,11 @@ Atomics.sub(i32a, 0, 1); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true (The result of `(lapse >= TIMEOUT)` is true)' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-xor.js b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-xor.js index 83c7c97af92d05d7a89c7fd20a53f0facf983e26..e4e0014373846fa18d3a70bd0fda3f1125cc6f50 100644 --- a/test/built-ins/Atomics/wait/no-spurious-wakeup-on-xor.js +++ b/test/built-ins/Atomics/wait/no-spurious-wakeup-on-xor.js @@ -33,10 +33,14 @@ Atomics.xor(i32a, 0, 1); const lapse = $262.agent.getReport(); assert( lapse >= TIMEOUT, - `${lapse} should be at least ${TIMEOUT}` + 'The result of `(lapse >= TIMEOUT)` is true (The result of `(lapse >= TIMEOUT)` is true)' ); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/non-int32-typedarray-throws.js b/test/built-ins/Atomics/wait/non-int32-typedarray-throws.js index b0de7bcef9c8f76c17d295d9d25f96f4da273ba3..fd9df6169fab6f50e55ccab72ad69aa73b597e44 100644 --- a/test/built-ins/Atomics/wait/non-int32-typedarray-throws.js +++ b/test/built-ins/Atomics/wait/non-int32-typedarray-throws.js @@ -26,53 +26,53 @@ assert.throws(TypeError, function() { new SharedArrayBuffer(Float64Array.BYTES_PER_ELEMENT * 8) ); Atomics.wait(view, poisoned, poisoned, poisoned); -}, 'Float64Array'); +}, '`const view = new Float64Array( new SharedArrayBuffer(Float64Array.BYTES_PER_ELEMENT * 8) ); Atomics.wait(view, poisoned, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { const view = new Float32Array( new SharedArrayBuffer(Float32Array.BYTES_PER_ELEMENT * 4) ); Atomics.wait(view, poisoned, poisoned, poisoned); -}, 'Float32Array'); +}, '`const view = new Float32Array( new SharedArrayBuffer(Float32Array.BYTES_PER_ELEMENT * 4) ); Atomics.wait(view, poisoned, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { const view = new Int16Array( new SharedArrayBuffer(Int16Array.BYTES_PER_ELEMENT * 2) ); Atomics.wait(view, poisoned, poisoned, poisoned); -}, 'Int16Array'); +}, '`const view = new Int16Array( new SharedArrayBuffer(Int16Array.BYTES_PER_ELEMENT * 2) ); Atomics.wait(view, poisoned, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { const view = new Int8Array( new SharedArrayBuffer(Int8Array.BYTES_PER_ELEMENT) ); Atomics.wait(view, poisoned, poisoned, poisoned); -}, 'Int8Array'); +}, '`const view = new Int8Array( new SharedArrayBuffer(Int8Array.BYTES_PER_ELEMENT) ); Atomics.wait(view, poisoned, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { const view = new Uint32Array( new SharedArrayBuffer(Uint32Array.BYTES_PER_ELEMENT * 4) ); Atomics.wait(view, poisoned, poisoned, poisoned); -}, 'Uint32Array'); +}, '`const view = new Uint32Array( new SharedArrayBuffer(Uint32Array.BYTES_PER_ELEMENT * 4) ); Atomics.wait(view, poisoned, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { const view = new Uint16Array( new SharedArrayBuffer(Uint16Array.BYTES_PER_ELEMENT * 2) ); Atomics.wait(view, poisoned, poisoned, poisoned); -}, 'Uint16Array'); +}, '`const view = new Uint16Array( new SharedArrayBuffer(Uint16Array.BYTES_PER_ELEMENT * 2) ); Atomics.wait(view, poisoned, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { const view = new Uint8Array( new SharedArrayBuffer(Uint8Array.BYTES_PER_ELEMENT) ); Atomics.wait(view, poisoned, poisoned, poisoned); -}, 'Uint8Array'); +}, '`const view = new Uint8Array( new SharedArrayBuffer(Uint8Array.BYTES_PER_ELEMENT) ); Atomics.wait(view, poisoned, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { const view = new Uint8ClampedArray( new SharedArrayBuffer(Uint8ClampedArray.BYTES_PER_ELEMENT) ); Atomics.wait(view, poisoned, poisoned, poisoned); -}, 'Uint8ClampedArray'); +}, '`const view = new Uint8ClampedArray( new SharedArrayBuffer(Uint8ClampedArray.BYTES_PER_ELEMENT) ); Atomics.wait(view, poisoned, poisoned, poisoned)` throws TypeError'); diff --git a/test/built-ins/Atomics/wait/non-shared-bufferdata-throws.js b/test/built-ins/Atomics/wait/non-shared-bufferdata-throws.js index 164af59e2b7b5a69a08a7886a906a9ac2582162a..4da17d0bd4eef4dceb301def3dfe39aa34342710 100644 --- a/test/built-ins/Atomics/wait/non-shared-bufferdata-throws.js +++ b/test/built-ins/Atomics/wait/non-shared-bufferdata-throws.js @@ -27,8 +27,8 @@ const poisoned = { assert.throws(TypeError, function() { Atomics.wait(i32a, 0, 0, 0); -}); +}, '`Atomics.wait(i32a, 0, 0, 0)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wait(i32a, poisoned, poisoned, poisoned); -}); +}, '`Atomics.wait(i32a, poisoned, poisoned, poisoned)` throws TypeError'); diff --git a/test/built-ins/Atomics/wait/not-a-typedarray-throws.js b/test/built-ins/Atomics/wait/not-a-typedarray-throws.js index 108f235397426d9f5380d098425075034fc167a6..62b7388f1167e19dba7f67115ee9b4fd7ac53a05 100644 --- a/test/built-ins/Atomics/wait/not-a-typedarray-throws.js +++ b/test/built-ins/Atomics/wait/not-a-typedarray-throws.js @@ -22,8 +22,8 @@ var poisoned = { assert.throws(TypeError, function() { Atomics.wait({}, 0, 0, 0); -}); +}, '`Atomics.wait({}, 0, 0, 0)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wait({}, poisoned, poisoned, poisoned); -}); +}, '`Atomics.wait({}, poisoned, poisoned, poisoned)` throws TypeError'); diff --git a/test/built-ins/Atomics/wait/not-an-object-throws.js b/test/built-ins/Atomics/wait/not-an-object-throws.js index bcd44c9a3a49405966d949d9d1e95563d5c982ce..ce1c0a4937175dc5559de4c0992793dbdd2158ca 100644 --- a/test/built-ins/Atomics/wait/not-an-object-throws.js +++ b/test/built-ins/Atomics/wait/not-an-object-throws.js @@ -21,28 +21,28 @@ var poisoned = { assert.throws(TypeError, function() { Atomics.wait(null, poisoned, poisoned, poisoned); -}, 'null'); +}, '`Atomics.wait(null, poisoned, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wait(undefined, poisoned, poisoned, poisoned); -}, 'undefined'); +}, '`Atomics.wait(undefined, poisoned, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wait(true, poisoned, poisoned, poisoned); -}, 'true'); +}, '`Atomics.wait(true, poisoned, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wait(false, poisoned, poisoned, poisoned); -}, 'false'); +}, '`Atomics.wait(false, poisoned, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wait('***string***', poisoned, poisoned, poisoned); -}, 'String'); +}, '`Atomics.wait(\'***string***\', poisoned, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wait(Number.NEGATIVE_INFINITY, poisoned, poisoned, poisoned); -}, 'Number.NEGATIVE_INFINITY'); +}, '`Atomics.wait(Number.NEGATIVE_INFINITY, poisoned, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wait(Symbol('***symbol***'), poisoned, poisoned, poisoned); -}, 'Symbol'); +}, '`Atomics.wait(Symbol(\'***symbol***\'), poisoned, poisoned, poisoned)` throws TypeError'); diff --git a/test/built-ins/Atomics/wait/null-bufferdata-throws.js b/test/built-ins/Atomics/wait/null-bufferdata-throws.js index 27bf1f272a484053a4480207729fb9d6e0498aa3..b2a562de7b9be6719b5959cc11937aac936fea35 100644 --- a/test/built-ins/Atomics/wait/null-bufferdata-throws.js +++ b/test/built-ins/Atomics/wait/null-bufferdata-throws.js @@ -34,4 +34,4 @@ try { assert.throws(TypeError, function() { Atomics.wait(i32a, poisoned, poisoned, poisoned); -}); +}, '`Atomics.wait(i32a, poisoned, poisoned, poisoned)` throws TypeError'); diff --git a/test/built-ins/Atomics/wait/null-for-timeout-agent.js b/test/built-ins/Atomics/wait/null-for-timeout-agent.js index 6ba9a4f5b753fa171141e86fdc0c710da53840ec..e9add1167512fc878c2b20b526cf9260de11c816 100644 --- a/test/built-ins/Atomics/wait/null-for-timeout-agent.js +++ b/test/built-ins/Atomics/wait/null-for-timeout-agent.js @@ -47,15 +47,27 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.sleep(150); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue($262.agent.getReport(), 'timed-out'); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); const lapse = $262.agent.getReport(); -assert(lapse >= 0, 'timeout should be a min of 0ms'); +assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (The result of `(lapse >= 0)` is true (timeout should be a min of 0ms))'); -assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'timeout should be a max of $262.agent.MAX_TIME_EPSILON'); +assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (timeout should be a max of $262.agent.MAX_TIME_EPSILON))'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/null-for-timeout.js b/test/built-ins/Atomics/wait/null-for-timeout.js index 63c3780c6cc97dabf58a51117d608b3ed61086c0..63068dfb20974a7ee1ce229fc65a057f8dd69ed8 100644 --- a/test/built-ins/Atomics/wait/null-for-timeout.js +++ b/test/built-ins/Atomics/wait/null-for-timeout.js @@ -32,7 +32,19 @@ const toPrimitive = { } }; -assert.sameValue(Atomics.wait(i32a, 0, 0, null), "timed-out"); -assert.sameValue(Atomics.wait(i32a, 0, 0, valueOf), "timed-out"); -assert.sameValue(Atomics.wait(i32a, 0, 0, toPrimitive), "timed-out"); +assert.sameValue( + Atomics.wait(i32a, 0, 0, null), + "timed-out", + 'Atomics.wait(i32a, 0, 0, null) returns "timed-out"' +); +assert.sameValue( + Atomics.wait(i32a, 0, 0, valueOf), + "timed-out", + 'Atomics.wait(i32a, 0, 0, valueOf) returns "timed-out"' +); +assert.sameValue( + Atomics.wait(i32a, 0, 0, toPrimitive), + "timed-out", + 'Atomics.wait(i32a, 0, 0, toPrimitive) returns "timed-out"' +); diff --git a/test/built-ins/Atomics/wait/object-for-timeout-agent.js b/test/built-ins/Atomics/wait/object-for-timeout-agent.js index 6446096693df08841fc4e33992b7ecf169574b6d..12892f9e900fa9f07107bf21df2ca43b1bfd61fb 100644 --- a/test/built-ins/Atomics/wait/object-for-timeout-agent.js +++ b/test/built-ins/Atomics/wait/object-for-timeout-agent.js @@ -52,15 +52,27 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.sleep(150); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue($262.agent.getReport(), 'timed-out'); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); const lapse = $262.agent.getReport(); -assert(lapse >= 0, 'timeout should be a min of 0ms'); +assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (The result of `(lapse >= 0)` is true (timeout should be a min of 0ms))'); -assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'timeout should be a max of $$262.agent.MAX_TIME_EPSILON'); +assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (timeout should be a max of $$262.agent.MAX_TIME_EPSILON))'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/object-for-timeout.js b/test/built-ins/Atomics/wait/object-for-timeout.js index 6af1359955061e77c272b697f6c356ddd8f07e98..4699294d6c3a7020f12e97a8c73baaf5cb75251e 100644 --- a/test/built-ins/Atomics/wait/object-for-timeout.js +++ b/test/built-ins/Atomics/wait/object-for-timeout.js @@ -42,6 +42,18 @@ const toPrimitive = { } }; -assert.sameValue(Atomics.wait(i32a, 0, 0, valueOf), 'timed-out'); -assert.sameValue(Atomics.wait(i32a, 0, 0, toString), 'timed-out'); -assert.sameValue(Atomics.wait(i32a, 0, 0, toPrimitive), 'timed-out'); +assert.sameValue( + Atomics.wait(i32a, 0, 0, valueOf), + 'timed-out', + 'Atomics.wait(i32a, 0, 0, valueOf) returns "timed-out"' +); +assert.sameValue( + Atomics.wait(i32a, 0, 0, toString), + 'timed-out', + 'Atomics.wait(i32a, 0, 0, toString) returns "timed-out"' +); +assert.sameValue( + Atomics.wait(i32a, 0, 0, toPrimitive), + 'timed-out', + 'Atomics.wait(i32a, 0, 0, toPrimitive) returns "timed-out"' +); diff --git a/test/built-ins/Atomics/wait/out-of-range-index-throws.js b/test/built-ins/Atomics/wait/out-of-range-index-throws.js index a50c31113d20cde70425b315cedd84e787d11eae..023bb7237cc607fc13d03debc7391909596687a3 100644 --- a/test/built-ins/Atomics/wait/out-of-range-index-throws.js +++ b/test/built-ins/Atomics/wait/out-of-range-index-throws.js @@ -28,13 +28,13 @@ const poisoned = { assert.throws(RangeError, function() { Atomics.wait(i32a, Infinity, poisoned, poisoned); -}); +}, '`Atomics.wait(i32a, Infinity, poisoned, poisoned)` throws RangeError'); assert.throws(RangeError, function() { Atomics.wait(i32a, -1, poisoned, poisoned); -}); +}, '`Atomics.wait(i32a, -1, poisoned, poisoned)` throws RangeError'); assert.throws(RangeError, function() { Atomics.wait(i32a, 4, poisoned, poisoned); -}); +}, '`Atomics.wait(i32a, 4, poisoned, poisoned)` throws RangeError'); assert.throws(RangeError, function() { Atomics.wait(i32a, 200, poisoned, poisoned); -}); +}, '`Atomics.wait(i32a, 200, poisoned, poisoned)` throws RangeError'); diff --git a/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws-agent.js b/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws-agent.js index 6642ccfe3addc744ae0e0b294ef85136257bc3b5..be288ee5f7363f26eece366c056f54179cb76d5d 100644 --- a/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws-agent.js +++ b/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws-agent.js @@ -54,14 +54,22 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.sleep(150); -assert.sameValue($262.agent.getReport(), 'poisonedValueOf'); -assert.sameValue($262.agent.getReport(), 'poisonedToPrimitive'); +assert.sameValue( + $262.agent.getReport(), + 'poisonedValueOf', + '$262.agent.getReport() returns "poisonedValueOf"' +); +assert.sameValue( + $262.agent.getReport(), + 'poisonedToPrimitive', + '$262.agent.getReport() returns "poisonedToPrimitive"' +); const lapse = $262.agent.getReport(); -assert(lapse >= 0, 'timeout should be a min of 0ms'); +assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (The result of `(lapse >= 0)` is true (timeout should be a min of 0ms))'); -assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'timeout should be a max of $$262.agent.MAX_TIME_EPSILON'); +assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (timeout should be a max of $$262.agent.MAX_TIME_EPSILON))'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws.js b/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws.js index b29c961039492384c3e90ff1956dc2c150b19718..e2880c29f4a916363d16bf16e8e7afcf77501dd4 100644 --- a/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws.js +++ b/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws.js @@ -36,8 +36,8 @@ const poisonedToPrimitive = { assert.throws(Test262Error, function() { Atomics.wait(i32a, 0, 0, poisonedValueOf); -}); +}, '`Atomics.wait(i32a, 0, 0, poisonedValueOf)` throws Test262Error'); assert.throws(Test262Error, function() { Atomics.wait(i32a, 0, 0, poisonedToPrimitive); -}); +}, '`Atomics.wait(i32a, 0, 0, poisonedToPrimitive)` throws Test262Error'); diff --git a/test/built-ins/Atomics/wait/symbol-for-index-throws-agent.js b/test/built-ins/Atomics/wait/symbol-for-index-throws-agent.js index 7065e97a852c75e0db13043db8c6f01a888e0a9b..86e533b3dc6bdafd16c1e2c2e0a575d2da6a100b 100644 --- a/test/built-ins/Atomics/wait/symbol-for-index-throws-agent.js +++ b/test/built-ins/Atomics/wait/symbol-for-index-throws-agent.js @@ -67,13 +67,21 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.sleep(150); -assert.sameValue($262.agent.getReport(), 'Symbol("1")'); -assert.sameValue($262.agent.getReport(), 'Symbol("2")'); +assert.sameValue( + $262.agent.getReport(), + 'Symbol("1")', + '$262.agent.getReport() returns "Symbol("1")"' +); +assert.sameValue( + $262.agent.getReport(), + 'Symbol("2")', + '$262.agent.getReport() returns "Symbol("2")"' +); const lapse = $262.agent.getReport(); -assert(lapse >= 0, 'timeout should be a min of 0ms'); -assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'timeout should be a max of $$262.agent.MAX_TIME_EPSILON'); +assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (The result of `(lapse >= 0)` is true (timeout should be a min of 0ms))'); +assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (timeout should be a max of $$262.agent.MAX_TIME_EPSILON))'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/symbol-for-index-throws.js b/test/built-ins/Atomics/wait/symbol-for-index-throws.js index 09563117423c6845721b7d4d9803be1b59fc7306..77a562f015fe84b2bfdc9ed9b69efdb85c8ee2e4 100644 --- a/test/built-ins/Atomics/wait/symbol-for-index-throws.js +++ b/test/built-ins/Atomics/wait/symbol-for-index-throws.js @@ -46,16 +46,16 @@ const poisonedToPrimitive = { assert.throws(Test262Error, function() { Atomics.wait(i32a, poisonedValueOf, poisonedValueOf, poisonedValueOf); -}); +}, '`Atomics.wait(i32a, poisonedValueOf, poisonedValueOf, poisonedValueOf)` throws Test262Error'); assert.throws(Test262Error, function() { Atomics.wait(i32a, poisonedToPrimitive, poisonedToPrimitive, poisonedToPrimitive); -}); +}, '`Atomics.wait(i32a, poisonedToPrimitive, poisonedToPrimitive, poisonedToPrimitive)` throws Test262Error'); assert.throws(TypeError, function() { Atomics.wait(i32a, Symbol('foo'), poisonedValueOf, poisonedValueOf); -}); +}, '`Atomics.wait(i32a, Symbol(\'foo\'), poisonedValueOf, poisonedValueOf)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wait(i32a, Symbol('foo'), poisonedToPrimitive, poisonedToPrimitive); -}); +}, '`Atomics.wait(i32a, Symbol(\'foo\'), poisonedToPrimitive, poisonedToPrimitive)` throws TypeError'); diff --git a/test/built-ins/Atomics/wait/symbol-for-timeout-throws-agent.js b/test/built-ins/Atomics/wait/symbol-for-timeout-throws-agent.js index a0b33165588562fa6ff4af1b653f96d3c50ec7e0..640cda20604d266673f7ad0fec401969581d346e 100644 --- a/test/built-ins/Atomics/wait/symbol-for-timeout-throws-agent.js +++ b/test/built-ins/Atomics/wait/symbol-for-timeout-throws-agent.js @@ -41,12 +41,20 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.sleep(150); -assert.sameValue($262.agent.getReport(), 'Symbol("1")'); -assert.sameValue($262.agent.getReport(), 'Symbol("2")'); +assert.sameValue( + $262.agent.getReport(), + 'Symbol("1")', + '$262.agent.getReport() returns "Symbol("1")"' +); +assert.sameValue( + $262.agent.getReport(), + 'Symbol("2")', + '$262.agent.getReport() returns "Symbol("2")"' +); const lapse = $262.agent.getReport(); -assert(lapse >= 0, 'timeout should be a min of 0ms'); -assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'timeout should be a max of $$262.agent.MAX_TIME_EPSILON'); +assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (The result of `(lapse >= 0)` is true (timeout should be a min of 0ms))'); +assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (timeout should be a max of $$262.agent.MAX_TIME_EPSILON))'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/symbol-for-timeout-throws.js b/test/built-ins/Atomics/wait/symbol-for-timeout-throws.js index 6030e0fd1322f0dc0280b84bee8cd0effe90fd28..7d2afedd3f87be5fbb9759acfe323a00ffc36538 100644 --- a/test/built-ins/Atomics/wait/symbol-for-timeout-throws.js +++ b/test/built-ins/Atomics/wait/symbol-for-timeout-throws.js @@ -32,16 +32,16 @@ var poisonedToPrimitive = { assert.throws(Test262Error, function() { Atomics.wait(i32a, 0, 0, poisonedValueOf); -}); +}, '`Atomics.wait(i32a, 0, 0, poisonedValueOf)` throws Test262Error'); assert.throws(Test262Error, function() { Atomics.wait(i32a, 0, 0, poisonedToPrimitive); -}); +}, '`Atomics.wait(i32a, 0, 0, poisonedToPrimitive)` throws Test262Error'); assert.throws(TypeError, function() { Atomics.wait(i32a, 0, 0, Symbol("foo")); -}); +}, '`Atomics.wait(i32a, 0, 0, Symbol("foo"))` throws TypeError'); assert.throws(TypeError, function() { Atomics.wait(i32a, 0, 0, Symbol("foo")); -}); +}, '`Atomics.wait(i32a, 0, 0, Symbol("foo"))` throws TypeError'); diff --git a/test/built-ins/Atomics/wait/symbol-for-value-throws-agent.js b/test/built-ins/Atomics/wait/symbol-for-value-throws-agent.js index 6a2faa17db3920cfc185f391c9026d2f07ed5ff8..1206fe1c14db4085266025d5b9c3f79ff70f5c76 100644 --- a/test/built-ins/Atomics/wait/symbol-for-value-throws-agent.js +++ b/test/built-ins/Atomics/wait/symbol-for-value-throws-agent.js @@ -58,12 +58,20 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.sleep(150); -assert.sameValue($262.agent.getReport(), 'Symbol("1")'); -assert.sameValue($262.agent.getReport(), 'Symbol("2")'); +assert.sameValue( + $262.agent.getReport(), + 'Symbol("1")', + '$262.agent.getReport() returns "Symbol("1")"' +); +assert.sameValue( + $262.agent.getReport(), + 'Symbol("2")', + '$262.agent.getReport() returns "Symbol("2")"' +); const lapse = $262.agent.getReport(); -assert(lapse >= 0, 'timeout should be a min of 0ms'); -assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'timeout should be a max of $$262.agent.MAX_TIME_EPSILON'); +assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (The result of `(lapse >= 0)` is true (timeout should be a min of 0ms))'); +assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (timeout should be a max of $$262.agent.MAX_TIME_EPSILON))'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/symbol-for-value-throws.js b/test/built-ins/Atomics/wait/symbol-for-value-throws.js index d34cf24858eed9b270189034ffb37ea0b9e2dd7d..c414005e670e1b19e8518d4ae145e6e952212fcb 100644 --- a/test/built-ins/Atomics/wait/symbol-for-value-throws.js +++ b/test/built-ins/Atomics/wait/symbol-for-value-throws.js @@ -37,17 +37,17 @@ const poisonedToPrimitive = { assert.throws(Test262Error, function() { Atomics.wait(i32a, 0, poisonedValueOf, poisonedValueOf); -}); +}, '`Atomics.wait(i32a, 0, poisonedValueOf, poisonedValueOf)` throws Test262Error'); assert.throws(Test262Error, function() { Atomics.wait(i32a, 0, poisonedToPrimitive, poisonedToPrimitive); -}); +}, '`Atomics.wait(i32a, 0, poisonedToPrimitive, poisonedToPrimitive)` throws Test262Error'); assert.throws(TypeError, function() { Atomics.wait(i32a, 0, Symbol("foo"), poisonedValueOf); -}); +}, '`Atomics.wait(i32a, 0, Symbol("foo"), poisonedValueOf)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wait(i32a, 0, Symbol("foo"), poisonedToPrimitive); -}); +}, '`Atomics.wait(i32a, 0, Symbol("foo"), poisonedToPrimitive)` throws TypeError'); diff --git a/test/built-ins/Atomics/wait/true-for-timeout-agent.js b/test/built-ins/Atomics/wait/true-for-timeout-agent.js index be3adbb63917c88cde79df4b73a5cd5f07214015..1b8e090a134131f235b27a14c34b0d88ccbdd38b 100644 --- a/test/built-ins/Atomics/wait/true-for-timeout-agent.js +++ b/test/built-ins/Atomics/wait/true-for-timeout-agent.js @@ -47,15 +47,27 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.sleep(150); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue($262.agent.getReport(), 'timed-out'); -assert.sameValue($262.agent.getReport(), 'timed-out'); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); +assert.sameValue( + $262.agent.getReport(), + 'timed-out', + '$262.agent.getReport() returns "timed-out"' +); const lapse = $262.agent.getReport(); -assert(lapse >= 0, 'timeout should be a min of 0ms'); +assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (The result of `(lapse >= 0)` is true (timeout should be a min of 0ms))'); -assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'timeout should be a max of $$262.agent.MAX_TIME_EPSILON'); +assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (timeout should be a max of $$262.agent.MAX_TIME_EPSILON))'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/true-for-timeout.js b/test/built-ins/Atomics/wait/true-for-timeout.js index 64b4b8710b12ffb358f48a8c12b64debfdd16df2..1db2adc5086bab1833cdfa96ad8b77c5350c719b 100644 --- a/test/built-ins/Atomics/wait/true-for-timeout.js +++ b/test/built-ins/Atomics/wait/true-for-timeout.js @@ -32,7 +32,19 @@ const toPrimitive = { } }; -assert.sameValue(Atomics.wait(i32a, 0, 0, true), 'timed-out'); -assert.sameValue(Atomics.wait(i32a, 0, 0, valueOf), 'timed-out'); -assert.sameValue(Atomics.wait(i32a, 0, 0, toPrimitive), 'timed-out'); +assert.sameValue( + Atomics.wait(i32a, 0, 0, true), + 'timed-out', + 'Atomics.wait(i32a, 0, 0, true) returns "timed-out"' +); +assert.sameValue( + Atomics.wait(i32a, 0, 0, valueOf), + 'timed-out', + 'Atomics.wait(i32a, 0, 0, valueOf) returns "timed-out"' +); +assert.sameValue( + Atomics.wait(i32a, 0, 0, toPrimitive), + 'timed-out', + 'Atomics.wait(i32a, 0, 0, toPrimitive) returns "timed-out"' +); diff --git a/test/built-ins/Atomics/wait/undefined-for-timeout.js b/test/built-ins/Atomics/wait/undefined-for-timeout.js index fd38c69ab386e8a68753a962de620843464ff643..304d40d4efff29410f1f9865b61309188a2c3d4f 100644 --- a/test/built-ins/Atomics/wait/undefined-for-timeout.js +++ b/test/built-ins/Atomics/wait/undefined-for-timeout.js @@ -49,7 +49,11 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.waitUntil(i32a, RUNNING, NUMAGENT); -assert.sameValue(Atomics.wake(i32a, WAIT_INDEX, WAKECOUNT), WAKECOUNT); +assert.sameValue( + Atomics.wake(i32a, WAIT_INDEX, WAKECOUNT), + WAKECOUNT, + 'Atomics.wake(i32a, WAIT_INDEX, WAKECOUNT) returns the value of `WAKECOUNT` (2)' +); const reports = []; for (var i = 0; i < NUMAGENT; i++) { @@ -57,5 +61,5 @@ for (var i = 0; i < NUMAGENT; i++) { } reports.sort(); -assert.sameValue(reports[0], 'A ok'); -assert.sameValue(reports[1], 'B ok'); +assert.sameValue(reports[0], 'A ok', 'The value of reports[0] is "A ok"'); +assert.sameValue(reports[1], 'B ok', 'The value of reports[1] is "B ok"'); diff --git a/test/built-ins/Atomics/wait/undefined-index-defaults-to-zero.js b/test/built-ins/Atomics/wait/undefined-index-defaults-to-zero.js index 6a01b06d9f9c892a9b0224d741385536f6f8bdfb..eff3c7167b359fcb75b46414cd9524c8cc77d950 100644 --- a/test/built-ins/Atomics/wait/undefined-index-defaults-to-zero.js +++ b/test/built-ins/Atomics/wait/undefined-index-defaults-to-zero.js @@ -37,6 +37,6 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.sleep(150); -assert.sameValue(Atomics.wake(i32a, 0), 1); // wake at index 0 -assert.sameValue(Atomics.wake(i32a, 0), 0); // wake again at index 0, and 0 agents should be woken -assert.sameValue($262.agent.getReport(), 'ok'); +assert.sameValue(Atomics.wake(i32a, 0), 1, 'Atomics.wake(i32a, 0) returns 1'); // wake at index 0 +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); // wake again at index 0, and 0 agents should be woken +assert.sameValue($262.agent.getReport(), 'ok', '$262.agent.getReport() returns "ok"'); diff --git a/test/built-ins/Atomics/wait/value-not-equal.js b/test/built-ins/Atomics/wait/value-not-equal.js index 8111ba45e58e0669bfcd8170858b377dd25f2c32..3837eef8b72fa5f4041fa2de6306a4e664bbdd1b 100644 --- a/test/built-ins/Atomics/wait/value-not-equal.js +++ b/test/built-ins/Atomics/wait/value-not-equal.js @@ -36,6 +36,14 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.sleep(100); -assert.sameValue($262.agent.getReport(), value.toString()); -assert.sameValue($262.agent.getReport(), 'not-equal'); +assert.sameValue( + $262.agent.getReport(), + value.toString(), + '$262.agent.getReport() returns value.toString()' +); +assert.sameValue( + $262.agent.getReport(), + 'not-equal', + '$262.agent.getReport() returns "not-equal"' +); diff --git a/test/built-ins/Atomics/wait/wait-index-value-not-equal.js b/test/built-ins/Atomics/wait/wait-index-value-not-equal.js index 19c6c90a7098312383bebae12a5d2e20bec86bd1..a9a6003f2b910b1c3a3731281dfd2a0441e2ec26 100644 --- a/test/built-ins/Atomics/wait/wait-index-value-not-equal.js +++ b/test/built-ins/Atomics/wait/wait-index-value-not-equal.js @@ -33,6 +33,14 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.sleep(100); -assert.sameValue($262.agent.getReport(), 'not-equal'); -assert.sameValue($262.agent.getReport(), 'not-equal'); -assert.sameValue(Atomics.wake(i32a, 0), 0); +assert.sameValue( + $262.agent.getReport(), + 'not-equal', + '$262.agent.getReport() returns "not-equal"' +); +assert.sameValue( + $262.agent.getReport(), + 'not-equal', + '$262.agent.getReport() returns "not-equal"' +); +assert.sameValue(Atomics.wake(i32a, 0), 0, 'Atomics.wake(i32a, 0) returns 0'); diff --git a/test/built-ins/Atomics/wait/waiterlist-order-of-operations-is-fifo.js b/test/built-ins/Atomics/wait/waiterlist-order-of-operations-is-fifo.js index 418dd921be2a3a4a6eb31e84402af5dee235d068..11a910e4788c9e554d944deab203207f862a2050 100644 --- a/test/built-ins/Atomics/wait/waiterlist-order-of-operations-is-fifo.js +++ b/test/built-ins/Atomics/wait/waiterlist-order-of-operations-is-fifo.js @@ -65,14 +65,26 @@ $262.agent.sleep(100); const started = [$262.agent.getReport(), $262.agent.getReport(), $262.agent.getReport()]; // Agents must wake in the order they waited -assert.sameValue(Atomics.wake(i32a, 1, 1), 1); -assert.sameValue($262.agent.getReport(), 'ok'); -assert.sameValue($262.agent.getReport(), started[0]); +assert.sameValue(Atomics.wake(i32a, 1, 1), 1, 'Atomics.wake(i32a, 1, 1) returns 1'); +assert.sameValue($262.agent.getReport(), 'ok', '$262.agent.getReport() returns "ok"'); +assert.sameValue( + $262.agent.getReport(), + started[0], + '$262.agent.getReport() returns the value of `started[0]` (undefined)' +); -assert.sameValue(Atomics.wake(i32a, 2, 1), 1); -assert.sameValue($262.agent.getReport(), 'ok'); -assert.sameValue($262.agent.getReport(), started[1]); +assert.sameValue(Atomics.wake(i32a, 2, 1), 1, 'Atomics.wake(i32a, 2, 1) returns 1'); +assert.sameValue($262.agent.getReport(), 'ok', '$262.agent.getReport() returns "ok"'); +assert.sameValue( + $262.agent.getReport(), + started[1], + '$262.agent.getReport() returns the value of `started[1]` (undefined)' +); -assert.sameValue(Atomics.wake(i32a, 3, 1), 1); -assert.sameValue($262.agent.getReport(), 'ok'); -assert.sameValue($262.agent.getReport(), started[2]); +assert.sameValue(Atomics.wake(i32a, 3, 1), 1, 'Atomics.wake(i32a, 3, 1) returns 1'); +assert.sameValue($262.agent.getReport(), 'ok', '$262.agent.getReport() returns "ok"'); +assert.sameValue( + $262.agent.getReport(), + started[2], + '$262.agent.getReport() returns the value of `started[2]` (undefined)' +); diff --git a/test/built-ins/Atomics/wait/was-woken-before-timeout.js b/test/built-ins/Atomics/wait/was-woken-before-timeout.js index ba5c9ee4dc535771f0dae002ae7bb7cf8cbab6df..24673df84cd77299b7334d05078c3769dc23dab5 100644 --- a/test/built-ins/Atomics/wait/was-woken-before-timeout.js +++ b/test/built-ins/Atomics/wait/was-woken-before-timeout.js @@ -43,14 +43,14 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.sleep(sleeping); -assert.sameValue(Atomics.wake(i32a, 0), 1); +assert.sameValue(Atomics.wake(i32a, 0), 1, 'Atomics.wake(i32a, 0) returns 1'); const lapse = $262.agent.getReport(); assert( sleeping + lapse < timeout, - `${sleeping + lapse} should be less than ${timeout}` + 'The result of `(sleeping + lapse < timeout)` is true' ); -assert.sameValue($262.agent.getReport(), 'ok'); +assert.sameValue($262.agent.getReport(), 'ok', '$262.agent.getReport() returns "ok"'); diff --git a/test/built-ins/Atomics/wake/bad-range.js b/test/built-ins/Atomics/wake/bad-range.js index 5db7b2f2a50a8287431a1085ee0298c747acefe8..880ea7fbd237090a763dcfb94127e6a2528edade 100644 --- a/test/built-ins/Atomics/wake/bad-range.js +++ b/test/built-ins/Atomics/wake/bad-range.js @@ -22,5 +22,5 @@ const i32a = new Int32Array( testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { Atomics.wake(i32a, IdxGen(i32a), 0); - }, 'Atomics.wake(i32a, IdxGen(i32a), 0) throws RangeError'); + }, '`Atomics.wake(i32a, IdxGen(i32a), 0)` throws RangeError'); }); diff --git a/test/built-ins/Atomics/wake/bigint/non-bigint64-typedarray-throws.js b/test/built-ins/Atomics/wake/bigint/non-bigint64-typedarray-throws.js index d60d5b6c0d881c39e4675364ff3d51de539fae93..287911c474e90cc51127f7ee41248697dd9735fe 100644 --- a/test/built-ins/Atomics/wake/bigint/non-bigint64-typedarray-throws.js +++ b/test/built-ins/Atomics/wake/bigint/non-bigint64-typedarray-throws.js @@ -27,8 +27,8 @@ const poisoned = { assert.throws(TypeError, function() { Atomics.wait(i64a, 0, 0); -}, 'BigUint64Array'); +}, '`Atomics.wait(i64a, 0, 0)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wait(i64a, poisoned, poisoned); -}, 'BigUint64Array'); +}, '`Atomics.wait(i64a, poisoned, poisoned)` throws TypeError'); diff --git a/test/built-ins/Atomics/wake/bigint/non-shared-bufferdata-throws.js b/test/built-ins/Atomics/wake/bigint/non-shared-bufferdata-throws.js index a50363cd57a059287e4aac7f4888c7b967bd22d1..99bf204576d52fcadd2c195838dce2a65c7619cf 100644 --- a/test/built-ins/Atomics/wake/bigint/non-shared-bufferdata-throws.js +++ b/test/built-ins/Atomics/wake/bigint/non-shared-bufferdata-throws.js @@ -26,8 +26,8 @@ const poisoned = { assert.throws(TypeError, function() { Atomics.wake(i64a, 0, 0); -}, 'Atomics.wake(i64a, 0, 0) on ArrayBuffer throws TypeError'); +}, '`Atomics.wake(i64a, 0, 0)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wake(i64a, poisoned, poisoned); -}, 'Atomics.wake(i64a, poisoned, poisoned) on ArrayBuffer throws TypeError'); +}, '`Atomics.wake(i64a, poisoned, poisoned)` throws TypeError'); diff --git a/test/built-ins/Atomics/wake/bigint/null-bufferdata-throws.js b/test/built-ins/Atomics/wake/bigint/null-bufferdata-throws.js index 3c773de4be3719d7a90160299fa98f6514c8d6f9..4d6fac5b8f8b1fb8c393c42f112ab738b9edbf53 100644 --- a/test/built-ins/Atomics/wake/bigint/null-bufferdata-throws.js +++ b/test/built-ins/Atomics/wake/bigint/null-bufferdata-throws.js @@ -33,4 +33,4 @@ try { assert.throws(TypeError, function() { Atomics.wake(i64a, poisoned, poisoned); -}, 'Atomics.wake(i64a, poisoned, poisoned) on detached buffer throws TypeError'); +}, '`Atomics.wake(i64a, poisoned, poisoned)` throws TypeError'); diff --git a/test/built-ins/Atomics/wake/bigint/wake-all-on-loc.js b/test/built-ins/Atomics/wake/bigint/wake-all-on-loc.js index 8e6568779cd1002daabe780aa5fd976a9254687d..d1cb63946e6ce7e873ddd147c0a069b17b8d84a0 100644 --- a/test/built-ins/Atomics/wake/bigint/wake-all-on-loc.js +++ b/test/built-ins/Atomics/wake/bigint/wake-all-on-loc.js @@ -53,7 +53,7 @@ $262.agent.sleep(50); assert.sameValue( Atomics.wake(i64a, WAIT_INDEX), NUMAGENT, - 'Atomics.wake(i64a, WAIT_INDEX) equals the value of `NUMAGENT` (3)' + 'Atomics.wake(i64a, WAIT_INDEX) returns the value of `NUMAGENT` (3)' ); var reports = []; diff --git a/test/built-ins/Atomics/wake/count-boundary-cases.js b/test/built-ins/Atomics/wake/count-boundary-cases.js index c0686fb0b646308074f828e6f3735c14e5cebc3d..654eb4f17f8878c6af20097b09c501be9b6df8fa 100644 --- a/test/built-ins/Atomics/wake/count-boundary-cases.js +++ b/test/built-ins/Atomics/wake/count-boundary-cases.js @@ -47,7 +47,7 @@ assert.sameValue( assert.sameValue( Atomics.wake(i32a, 0, '33'), 0, - 'Atomics.wake(i32a, 0, "33") returns 0' + 'Atomics.wake(i32a, 0, \'33\') returns 0' ); assert.sameValue( Atomics.wake(i32a, 0, { valueOf: 8 }), diff --git a/test/built-ins/Atomics/wake/count-defaults-to-infinity-missing.js b/test/built-ins/Atomics/wake/count-defaults-to-infinity-missing.js index 45ca1827349e4ff2f31bfbcdbe1e1aa6231a185e..29601ae79e5a0b7bdd1cabf9e8c6c3886cab9235 100644 --- a/test/built-ins/Atomics/wake/count-defaults-to-infinity-missing.js +++ b/test/built-ins/Atomics/wake/count-defaults-to-infinity-missing.js @@ -69,7 +69,7 @@ $262.agent.waitUntil(i32a, RUNNING, NUMAGENT); assert.sameValue( Atomics.wake(i32a, WAIT_INDEX /*, count missing */), NUMAGENT, - 'Atomics.wake(i32a, WAIT_INDEX /*, count missing */) equals the value of `NUMAGENT` (4)' + 'Atomics.wake(i32a, WAIT_INDEX /*, count missing */) returns the value of `NUMAGENT` (4)' ); const reports = []; diff --git a/test/built-ins/Atomics/wake/count-defaults-to-infinity-undefined.js b/test/built-ins/Atomics/wake/count-defaults-to-infinity-undefined.js index 74c91ca992c32aff13fc4bfa47dc152c772f1169..be5646351a65976e59295e06bcf3a17396d1e62e 100644 --- a/test/built-ins/Atomics/wake/count-defaults-to-infinity-undefined.js +++ b/test/built-ins/Atomics/wake/count-defaults-to-infinity-undefined.js @@ -67,7 +67,7 @@ $262.agent.waitUntil(i32a, RUNNING, NUMAGENT); assert.sameValue( Atomics.wake(i32a, WAIT_INDEX, undefined), NUMAGENT, - 'Atomics.wake(i32a, WAIT_INDEX, undefined) equals the value of `NUMAGENT` (4)' + 'Atomics.wake(i32a, WAIT_INDEX, undefined) returns the value of `NUMAGENT` (4)' ); const reports = []; diff --git a/test/built-ins/Atomics/wake/non-int32-typedarray-throws.js b/test/built-ins/Atomics/wake/non-int32-typedarray-throws.js index aea70d3e45c54d5cc2b5ea13586aeab1e574e122..b949e20aeb9a9119e50e4e21636060f6663d416c 100644 --- a/test/built-ins/Atomics/wake/non-int32-typedarray-throws.js +++ b/test/built-ins/Atomics/wake/non-int32-typedarray-throws.js @@ -26,53 +26,53 @@ assert.throws(TypeError, function() { new SharedArrayBuffer(Float64Array.BYTES_PER_ELEMENT * 8) ); Atomics.wake(view, poisoned, poisoned); -}, '`Atomics.wake(view), poisoned, poisoned)` throws TypeError'); +}, '`const view = new Float64Array( new SharedArrayBuffer(Float64Array.BYTES_PER_ELEMENT * 8) ); Atomics.wake(view, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { const view = new Float32Array( new SharedArrayBuffer(Float32Array.BYTES_PER_ELEMENT * 4) ); Atomics.wake(view, poisoned, poisoned); -}, '`Atomics.wake(view), poisoned, poisoned)` throws TypeError'); +}, '`const view = new Float32Array( new SharedArrayBuffer(Float32Array.BYTES_PER_ELEMENT * 4) ); Atomics.wake(view, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { const view = new Int16Array( new SharedArrayBuffer(Int16Array.BYTES_PER_ELEMENT * 2) ); Atomics.wake(view, poisoned, poisoned); -}, '`Atomics.wake(view), poisoned, poisoned)` throws TypeError'); +}, '`const view = new Int16Array( new SharedArrayBuffer(Int16Array.BYTES_PER_ELEMENT * 2) ); Atomics.wake(view, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { const view = new Int8Array( new SharedArrayBuffer(Int8Array.BYTES_PER_ELEMENT) ); Atomics.wake(view, poisoned, poisoned); -}, '`Atomics.wake(view), poisoned, poisoned)` throws TypeError'); +}, '`const view = new Int8Array( new SharedArrayBuffer(Int8Array.BYTES_PER_ELEMENT) ); Atomics.wake(view, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { const view = new Uint32Array( new SharedArrayBuffer(Uint32Array.BYTES_PER_ELEMENT * 4) ); Atomics.wake(new Uint32Array(), poisoned, poisoned); -}, '`Atomics.wake(view), poisoned, poisoned)` throws TypeError'); +}, '`const view = new Uint32Array( new SharedArrayBuffer(Uint32Array.BYTES_PER_ELEMENT * 4) ); Atomics.wake(new Uint32Array(), poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { const view = new Uint16Array( new SharedArrayBuffer(Uint16Array.BYTES_PER_ELEMENT * 2) ); Atomics.wake(view, poisoned, poisoned); -}, '`Atomics.wake(view), poisoned, poisoned)` throws TypeError'); +}, '`const view = new Uint16Array( new SharedArrayBuffer(Uint16Array.BYTES_PER_ELEMENT * 2) ); Atomics.wake(view, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { const view = new Uint8Array( new SharedArrayBuffer(Uint8Array.BYTES_PER_ELEMENT) ); Atomics.wake(view, poisoned, poisoned); -}, '`Atomics.wait(view), poisoned, poisoned)` throws TypeError'); +}, '`const view = new Uint8Array( new SharedArrayBuffer(Uint8Array.BYTES_PER_ELEMENT) ); Atomics.wake(view, poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { const view = new Uint8ClampedArray( new SharedArrayBuffer(Uint8ClampedArray.BYTES_PER_ELEMENT) ); Atomics.wake(view, poisoned, poisoned); -}, '`Atomics.wake(view), poisoned, poisoned)` throws TypeError'); +}, '`const view = new Uint8ClampedArray( new SharedArrayBuffer(Uint8ClampedArray.BYTES_PER_ELEMENT) ); Atomics.wake(view, poisoned, poisoned)` throws TypeError'); diff --git a/test/built-ins/Atomics/wake/non-shared-bufferdatate-non-shared-int-views.js b/test/built-ins/Atomics/wake/non-shared-bufferdatate-non-shared-int-views.js index 6b46aff51316bdd1ac957f6112530d9c3b18007b..86a96cbd1eff44cd64818e5df9e53792e1eb8dbb 100644 --- a/test/built-ins/Atomics/wake/non-shared-bufferdatate-non-shared-int-views.js +++ b/test/built-ins/Atomics/wake/non-shared-bufferdatate-non-shared-int-views.js @@ -19,24 +19,24 @@ const poisoned = { assert.throws(TypeError, function() { Atomics.wake(new Int16Array(nonsab), poisoned, poisoned); -}, 'Atomics.wake(new Int16Array(nonsab)) throws TypeError'); +}, '`Atomics.wake(new Int16Array(nonsab), poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wake(new Int8Array(nonsab), poisoned, poisoned); -}, 'Atomics.wake(new Int8Array(nonsab)) throws TypeError'); +}, '`Atomics.wake(new Int8Array(nonsab), poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wake(new Uint32Array(nonsab), poisoned, poisoned); -}, 'Atomics.wake(new Uint32Array(nonsab)) throws TypeError'); +}, '`Atomics.wake(new Uint32Array(nonsab), poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wake(new Uint16Array(nonsab), poisoned, poisoned); -}, 'Atomics.wake(new Uint16Array(nonsab)) throws TypeError'); +}, '`Atomics.wake(new Uint16Array(nonsab), poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wake(new Uint8Array(nonsab), poisoned, poisoned); -}, 'Atomics.wake(new Uint8Array(nonsab)) throws TypeError'); +}, '`Atomics.wake(new Uint8Array(nonsab), poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wake(new Uint8ClampedArray(nonsab), poisoned, poisoned); -}, 'Atomics.wake(new Uint8ClampedArray(nonsab)) throws TypeError'); +}, '`Atomics.wake(new Uint8ClampedArray(nonsab), poisoned, poisoned)` throws TypeError'); diff --git a/test/built-ins/Atomics/wake/non-shared-int-views.js b/test/built-ins/Atomics/wake/non-shared-int-views.js index 04b901edd0bbe9e51012016beb1f6d64e8e4ae6e..278a0762f264776ce8165dcebc477855353cf001 100644 --- a/test/built-ins/Atomics/wake/non-shared-int-views.js +++ b/test/built-ins/Atomics/wake/non-shared-int-views.js @@ -19,24 +19,24 @@ const poisoned = { assert.throws(TypeError, function() { Atomics.wake(new Int16Array(sab), poisoned, poisoned); -}, 'Atomics.wake(new Int16Array(sab)) throws TypeError'); +}, '`Atomics.wake(new Int16Array(sab), poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wake(new Int8Array(sab), poisoned, poisoned); -}, 'Atomics.wake(new Int8Array(sab)) throws TypeError'); +}, '`Atomics.wake(new Int8Array(sab), poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wake(new Uint32Array(sab), poisoned, poisoned); -}, 'Atomics.wake(new Uint32Array(sab)) throws TypeError'); +}, '`Atomics.wake(new Uint32Array(sab), poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wake(new Uint16Array(sab), poisoned, poisoned); -}, 'Atomics.wake(new Uint16Array(sab)) throws TypeError'); +}, '`Atomics.wake(new Uint16Array(sab), poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wake(new Uint8Array(sab), poisoned, poisoned); -}, 'Atomics.wake(new Uint8Array(sab)) throws TypeError'); +}, '`Atomics.wake(new Uint8Array(sab), poisoned, poisoned)` throws TypeError'); assert.throws(TypeError, function() { Atomics.wake(new Uint8ClampedArray(sab), poisoned, poisoned); -}, 'Atomics.wake(new Uint8ClampedArray(sab)) throws TypeError'); +}, '`Atomics.wake(new Uint8ClampedArray(sab), poisoned, poisoned)` throws TypeError'); diff --git a/test/built-ins/Atomics/wake/null-bufferdata-throws.js b/test/built-ins/Atomics/wake/null-bufferdata-throws.js index 3ee8e4e4745a52991b0ed908635d88314f2a0576..d81c76080bd297fcce53b7037fba4470088f7677 100644 --- a/test/built-ins/Atomics/wake/null-bufferdata-throws.js +++ b/test/built-ins/Atomics/wake/null-bufferdata-throws.js @@ -34,4 +34,4 @@ try { assert.throws(TypeError, function() { Atomics.wake(i32a, poisoned, poisoned); -}, 'Atomics.wake(i32a, poisoned, poisoned) on detached buffer throws TypeError'); +}, '`Atomics.wake(i32a, poisoned, poisoned)` throws TypeError'); diff --git a/test/built-ins/Atomics/wake/wake-all-on-loc.js b/test/built-ins/Atomics/wake/wake-all-on-loc.js index 56136e4639f501277381abc01ca33363e494ad48..aa21761f3ec187f18d00a2fa86d8b85bd3d0a5d2 100644 --- a/test/built-ins/Atomics/wake/wake-all-on-loc.js +++ b/test/built-ins/Atomics/wake/wake-all-on-loc.js @@ -54,7 +54,7 @@ $262.agent.sleep(50); assert.sameValue( Atomics.wake(i32a, WAIT_INDEX), NUMAGENT, - 'Atomics.wake(i32a, WAIT_INDEX) equals the value of `NUMAGENT` (3)' + 'Atomics.wake(i32a, WAIT_INDEX) returns the value of `NUMAGENT` (3)' ); const reports = []; diff --git a/test/built-ins/Atomics/wake/wake-all.js b/test/built-ins/Atomics/wake/wake-all.js index c2f88accfa3876d78f41576e6fb37e4fb4e14d7b..eda79a07ed6ecba4e18564fdbfb0c733f527f4f9 100644 --- a/test/built-ins/Atomics/wake/wake-all.js +++ b/test/built-ins/Atomics/wake/wake-all.js @@ -53,7 +53,7 @@ $262.agent.sleep(50); assert.sameValue( Atomics.wake(i32a, WAIT_INDEX), NUMAGENT, - 'Atomics.wake(i32a, WAIT_INDEX) equals the value of `NUMAGENT` (3)' + 'Atomics.wake(i32a, WAIT_INDEX) returns the value of `NUMAGENT` (3)' ); const reports = []; diff --git a/test/built-ins/Atomics/wake/wake-in-order-one-time.js b/test/built-ins/Atomics/wake/wake-in-order-one-time.js index 59d11b52327f0d388a18569b8d96c1af46aaac4e..581b73845787ba0686d64343fcb805148889d164 100644 --- a/test/built-ins/Atomics/wake/wake-in-order-one-time.js +++ b/test/built-ins/Atomics/wake/wake-in-order-one-time.js @@ -49,39 +49,51 @@ $262.agent.waitUntil(i32a, RUNNING, NUMAGENT); $262.agent.sleep(50); var waiterlist = []; -assert.sameValue(Atomics.store(i32a, SPIN + 0, 1), 1); +assert.sameValue( + Atomics.store(i32a, SPIN + 0, 1), + 1, + 'Atomics.store(i32a, SPIN + 0, 1) returns 1' +); waiterlist.push($262.agent.getReport()); -assert.sameValue(Atomics.store(i32a, SPIN + 1, 1), 1); +assert.sameValue( + Atomics.store(i32a, SPIN + 1, 1), + 1, + 'Atomics.store(i32a, SPIN + 1, 1) returns 1' +); waiterlist.push($262.agent.getReport()); -assert.sameValue(Atomics.store(i32a, SPIN + 2, 1), 1); +assert.sameValue( + Atomics.store(i32a, SPIN + 2, 1), + 1, + 'Atomics.store(i32a, SPIN + 2, 1) returns 1' +); waiterlist.push($262.agent.getReport()); var notified = []; assert.sameValue( Atomics.wake(i32a, WAIT_INDEX, 1), 1, - `Notification #0: on WAIT_INDEX (0) of i32a must notify 1 waiter.` + 'Atomics.wake(i32a, WAIT_INDEX, 1) returns 1' ); notified.push($262.agent.getReport()); assert.sameValue( Atomics.wake(i32a, WAIT_INDEX, 1), 1, - `Notification #1: on WAIT_INDEX (0) of i32a must notify 1 waiter.` + 'Atomics.wake(i32a, WAIT_INDEX, 1) returns 1' ); notified.push($262.agent.getReport()); assert.sameValue( Atomics.wake(i32a, WAIT_INDEX, 1), 1, - `Notification #2: on WAIT_INDEX (0) of i32a must notify 1 waiter.` + 'Atomics.wake(i32a, WAIT_INDEX, 1) returns 1' ); notified.push($262.agent.getReport()); assert.sameValue( notified.join(''), waiterlist.join(''), - `notified and waiterlist order do not match.` + 'notified.join(\'\') returns waiterlist.join(\'\')' ); diff --git a/test/built-ins/Atomics/wake/wake-in-order.js b/test/built-ins/Atomics/wake/wake-in-order.js index 3a2700ff35a4013c3b1d558a9921210a85ef53f0..a5de6b8341bcf4be7a91f4f0036019d16135590f 100644 --- a/test/built-ins/Atomics/wake/wake-in-order.js +++ b/test/built-ins/Atomics/wake/wake-in-order.js @@ -50,40 +50,52 @@ for (var attempt = 0; attempt < 10; attempt++) { $262.agent.sleep(50); var waiterlist = []; - assert.sameValue(Atomics.store(i32a, SPIN + 0, 1), 1); + assert.sameValue( + Atomics.store(i32a, SPIN + 0, 1), + 1, + 'Atomics.store(i32a, SPIN + 0, 1) returns 1' + ); waiterlist.push($262.agent.getReport()); - assert.sameValue(Atomics.store(i32a, SPIN + 1, 1), 1); + assert.sameValue( + Atomics.store(i32a, SPIN + 1, 1), + 1, + 'Atomics.store(i32a, SPIN + 1, 1) returns 1' + ); waiterlist.push($262.agent.getReport()); - assert.sameValue(Atomics.store(i32a, SPIN + 2, 1), 1); + assert.sameValue( + Atomics.store(i32a, SPIN + 2, 1), + 1, + 'Atomics.store(i32a, SPIN + 2, 1) returns 1' + ); waiterlist.push($262.agent.getReport()); var notified = []; assert.sameValue( Atomics.wake(i32a, WAIT_INDEX, 1), 1, - `Attempt #${attempt}, Notification #0: on WAIT_INDEX (0) of i32a must notify 1 waiter.` + 'Atomics.wake(i32a, WAIT_INDEX, 1) returns 1' ); notified.push($262.agent.getReport()); assert.sameValue( Atomics.wake(i32a, WAIT_INDEX, 1), 1, - `Attempt #${attempt}, Notification #1: on WAIT_INDEX (0) of i32a must notify 1 waiter.` + 'Atomics.wake(i32a, WAIT_INDEX, 1) returns 1' ); notified.push($262.agent.getReport()); assert.sameValue( Atomics.wake(i32a, WAIT_INDEX, 1), 1, - `Attempt #${attempt}, Notification #2: on WAIT_INDEX (0) of i32a must notify 1 waiter.` + 'Atomics.wake(i32a, WAIT_INDEX, 1) returns 1' ); notified.push($262.agent.getReport()); assert.sameValue( notified.join(''), waiterlist.join(''), - `Attempt #${attempt}: notified and waiterlist order do not match.` + 'notified.join(\'\') returns waiterlist.join(\'\')' ); } diff --git a/test/built-ins/Atomics/wake/wake-nan.js b/test/built-ins/Atomics/wake/wake-nan.js index e4a047156538f8fa7a4772d05e4bf431a9640510..7d1e76012a163567e51444c740e7101efb4b094b 100644 --- a/test/built-ins/Atomics/wake/wake-nan.js +++ b/test/built-ins/Atomics/wake/wake-nan.js @@ -23,7 +23,7 @@ const i32a = new Int32Array( $262.agent.broadcast(i32a.buffer); $262.agent.sleep(10); // Give the agent a chance to wait -assert.sameValue(Atomics.wake(i32a, 0, NaN), 0, 'Atomics.wake(i32a, 0, NaN) returns 0, and will not actually notify any waiters.'); +assert.sameValue(Atomics.wake(i32a, 0, NaN), 0, 'Atomics.wake(i32a, 0, NaN) returns 0'); // Sleep past the timeout $262.agent.sleep(300); diff --git a/test/built-ins/Atomics/wake/wake-one.js b/test/built-ins/Atomics/wake/wake-one.js index bbf3507bfb784aafa65391edffad8a4d60e953d3..5d6498a4770b816f3dc7e2ae92bbde0093fa3315 100644 --- a/test/built-ins/Atomics/wake/wake-one.js +++ b/test/built-ins/Atomics/wake/wake-one.js @@ -46,7 +46,7 @@ $262.agent.sleep(10); assert.sameValue( Atomics.wake(i32a, 0, WAKECOUNT), WAKECOUNT, - 'Atomics.wake(i32a, 0, WAKECOUNT) equals the value of `WAKECOUNT` (1)' + 'Atomics.wake(i32a, 0, WAKECOUNT) returns the value of `WAKECOUNT` (1)' ); // Collect and check results diff --git a/test/built-ins/Atomics/wake/wake-rewake-noop.js b/test/built-ins/Atomics/wake/wake-rewake-noop.js index 086b2ea73601cad46ae3fc2f5d3271158d546bca..59080e8f4be6a237aa14d4871eef8b9d615a3cf3 100644 --- a/test/built-ins/Atomics/wake/wake-rewake-noop.js +++ b/test/built-ins/Atomics/wake/wake-rewake-noop.js @@ -28,7 +28,7 @@ $262.agent.waitUntil(i32a, 1, 1); assert.sameValue(Atomics.wake(i32a, 0, 1), 1, 'Atomics.wake(i32a, 0, 1) returns 1'); -assert.sameValue($262.agent.getReport(), 'ok', 'The value of `report` is "ok"'); +assert.sameValue($262.agent.getReport(), 'ok', '$262.agent.getReport() returns "ok"'); // Already awake, this should be a noop assert.sameValue(Atomics.wake(i32a, 0, 1), 0, 'Atomics.wake(i32a, 0, 1) returns 0'); diff --git a/test/built-ins/Atomics/wake/wake-two.js b/test/built-ins/Atomics/wake/wake-two.js index 7a05ba188d71c2c9f16ba8396d429c26ac5de215..f318bac1f123938372f8ef06890402827c0defd2 100644 --- a/test/built-ins/Atomics/wake/wake-two.js +++ b/test/built-ins/Atomics/wake/wake-two.js @@ -47,7 +47,7 @@ $262.agent.sleep(10); assert.sameValue( Atomics.wake(i32a, 0, WAKECOUNT), WAKECOUNT, - 'Atomics.wake(i32a, 0, WAKECOUNT) equals the value of `WAKECOUNT` (2)' + 'Atomics.wake(i32a, 0, WAKECOUNT) returns the value of `WAKECOUNT` (2)' ); // Sleep past the timeout diff --git a/test/built-ins/Atomics/wake/wake-zero.js b/test/built-ins/Atomics/wake/wake-zero.js index df226e98ed1fed6710e177e9692e840e3db0782b..85eea4fa1110f25cf942c718cc2cb1428f3bbe22 100644 --- a/test/built-ins/Atomics/wake/wake-zero.js +++ b/test/built-ins/Atomics/wake/wake-zero.js @@ -42,12 +42,12 @@ $262.agent.waitUntil(i32a, RUNNING, NUMAGENT); assert.sameValue( Atomics.wake(i32a, WAIT_INDEX, WAKECOUNT), WAKECOUNT, - 'Atomics.wake(i32a, WAIT_INDEX, WAKECOUNT) equals the value of `WAKECOUNT` (0)' + 'Atomics.wake(i32a, WAIT_INDEX, WAKECOUNT) returns the value of `WAKECOUNT` (0)' ); // Sleep past the timeout $262.agent.sleep(300); for (var i = 0; i < NUMAGENT; i++) { - assert.sameValue($262.agent.getReport(), 'timed-out', `Report #${i}: must equal "timed-out"`); + assert.sameValue($262.agent.getReport(), 'timed-out', '$262.agent.getReport() returns "timed-out"'); } diff --git a/test/built-ins/Atomics/xor/bad-range.js b/test/built-ins/Atomics/xor/bad-range.js index fd5858533b813d707f58df14299e6a791f2bc219..49b0c94fc559cb9b3f1267b10737767cbcd99ac0 100644 --- a/test/built-ins/Atomics/xor/bad-range.js +++ b/test/built-ins/Atomics/xor/bad-range.js @@ -17,6 +17,6 @@ testWithTypedArrayConstructors(function(TA) { testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { Atomics.xor(view, IdxGen(view), 0); - }, 'Atomics.xor(view, IdxGen(view), 0) throws RangeError'); + }, '`Atomics.xor(view, IdxGen(view), 0)` throws RangeError'); }); }, views); diff --git a/test/built-ins/Atomics/xor/bigint/bad-range.js b/test/built-ins/Atomics/xor/bigint/bad-range.js index c2b1c3b5746e4834fd702a7ded2c0c10a60aae39..0cf4eb62698f97baf835b45bbcbfaa9a675a7347 100644 --- a/test/built-ins/Atomics/xor/bigint/bad-range.js +++ b/test/built-ins/Atomics/xor/bigint/bad-range.js @@ -16,6 +16,6 @@ testWithBigIntTypedArrayConstructors(function(TA) { testWithAtomicsOutOfBoundsIndices(function(IdxGen) { assert.throws(RangeError, function() { Atomics.xor(view, IdxGen(view), 10); - }, 'Atomics.xor(view, IdxGen(view), 10) throws RangeError'); + }, '`Atomics.xor(view, IdxGen(view), 10)` throws RangeError'); }); }); diff --git a/test/built-ins/Atomics/xor/bigint/good-views.js b/test/built-ins/Atomics/xor/bigint/good-views.js index b0f5159f5c888f31a73eb4d6a9f9ae6a2ed58354..242a1f1b6221872e47a57a448e1b385e7b754dd3 100644 --- a/test/built-ins/Atomics/xor/bigint/good-views.js +++ b/test/built-ins/Atomics/xor/bigint/good-views.js @@ -1,61 +1,102 @@ // Copyright (C) 2018 Rick Waldron. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. - /*--- esid: sec-atomics.xor description: Test Atomics.xor on arrays that allow atomic operations includes: [testAtomics.js, testBigIntTypedArray.js] features: [ArrayBuffer, arrow-function, Atomics, BigInt, DataView, for-of, let, SharedArrayBuffer, TypedArray] ---*/ - -var sab = new SharedArrayBuffer(1024); -var ab = new ArrayBuffer(16); +// Make it interesting - use non-zero byteOffsets and non-zero indexes. +// And again +// In-bounds boundary cases for indexing +// Atomics.store() computes an index from Idx in the same way as other +// Atomics operations, not quite like view[Idx]. +const sab = new SharedArrayBuffer(1024); +const ab = new ArrayBuffer(16); testWithBigIntTypedArrayConstructors(function(TA) { - // Make it interesting - use non-zero byteOffsets and non-zero indexes. - - var view = new TA(sab, 32, 20); - var control = new TA(ab, 0, 2); - - view[8] = 0x33333333; - control[0] = 0x33333333; - assert.sameValue(Atomics.xor(view, 8, 0x55555555), control[0], - "Result is subject to chopping"); - - control[0] = 0x66666666; - assert.sameValue(view[8], control[0]); - assert.sameValue(Atomics.xor(view, 8, 0xF0F0F0F0), control[0], - "Result is subject to chopping"); - - control[0] = 0x96969696; - assert.sameValue(view[8], control[0]); - - view[3] = -5; - control[0] = -5; - assert.sameValue(Atomics.xor(view, 3, 0), control[0], - "Result is negative and subject to coercion"); - assert.sameValue(view[3], control[0]); - - control[0] = 12345; - view[3] = 12345; - assert.sameValue(Atomics.xor(view, 3, 0), control[0], - "Result is subject to chopping"); - assert.sameValue(view[3], control[0]); - - // And again - control[0] = 123456789; - view[3] = 123456789; - assert.sameValue(Atomics.xor(view, 3, 0), control[0], - "Result is subject to chopping"); - assert.sameValue(view[3], control[0]); - - // In-bounds boundary cases for indexing + const view = new TA(sab, 32, 20); + const control = new TA(ab, 0, 2); + view[8] = 0x33333333n; + control[0] = 0x33333333n; + + assert.sameValue( + Atomics.xor(view, 8, 0x55555555n), + control[0], + 'Atomics.xor(view, 8, 0x55555555n) returns the value of `control[0]` (0x33333333n)' + ); + + control[0] = 0x66666666n; + + assert.sameValue( + view[8], + control[0], + 'The value of view[8] equals the value of `control[0]` (0x66666666n)' + ); + + assert.sameValue( + Atomics.xor(view, 8, 0xF0F0F0F0), + control[0], + 'Atomics.xor(view, 8, 0xF0F0F0F0) returns the value of `control[0]` (0x66666666n)' + ); + + control[0] = 0x96969696n; + + assert.sameValue( + view[8], + control[0], + 'The value of view[8] equals the value of `control[0]` (0x96969696n)' + ); + + view[3] = -5n; + control[0] = -5n; + + assert.sameValue( + Atomics.xor(view, 3, 0n), + control[0], + 'Atomics.xor(view, 3, 0n) returns the value of `control[0]` (-5n)' + ); + + assert.sameValue( + view[3], + control[0], + 'The value of view[3] equals the value of `control[0]` (-5n)' + ); + + control[0] = 12345n; + view[3] = 12345n; + + assert.sameValue( + Atomics.xor(view, 3, 0n), + control[0], + 'Atomics.xor(view, 3, 0n) returns the value of `control[0]` (12345n)' + ); + + assert.sameValue( + view[3], + control[0], + 'The value of view[3] equals the value of `control[0]` (12345n)' + ); + + control[0] = 123456789n; + view[3] = 123456789n; + + assert.sameValue( + Atomics.xor(view, 3, 0n), + control[0], + 'Atomics.xor(view, 3, 0n) returns the value of `control[0]` (123456789n)' + ); + + assert.sameValue( + view[3], + control[0], + 'The value of view[3] equals the value of `control[0]` (123456789n)' + ); + testWithAtomicsInBoundsIndices(function(IdxGen) { let Idx = IdxGen(view); - view.fill(0); - // Atomics.store() computes an index from Idx in the same way as other - // Atomics operations, not quite like view[Idx]. - Atomics.store(view, Idx, 37); - assert.sameValue(Atomics.xor(view, Idx, 0), 37); + view.fill(0n); + Atomics.store(view, Idx, 37n); + assert.sameValue(Atomics.xor(view, Idx, 0n), 37n, 'Atomics.xor(view, Idx, 0n) returns 37n'); }); -}); +}); \ No newline at end of file diff --git a/test/built-ins/Atomics/xor/bigint/nonshared-int-views.js b/test/built-ins/Atomics/xor/bigint/nonshared-int-views.js index 3648a8e3df73f0c6e54cd01608bf25bc119e9163..87a9661a73ac396766ec3fe7fd5ff4469d1b1ff9 100644 --- a/test/built-ins/Atomics/xor/bigint/nonshared-int-views.js +++ b/test/built-ins/Atomics/xor/bigint/nonshared-int-views.js @@ -14,5 +14,5 @@ var buffer = new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4); testWithBigIntTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.xor(new TA(buffer), 0, 0); - }, 'Atomics.xor(new TA(buffer), 0, 0) throws TypeError'); + }, '`Atomics.xor(new TA(buffer), 0, 0)` throws TypeError'); }); diff --git a/test/built-ins/Atomics/xor/expected-return-value.js b/test/built-ins/Atomics/xor/expected-return-value.js index d275d466585b7f59b2625a58e32a4d5073459dd3..424b67d66faf6619df35477bbb66d2bfffcc2c69 100644 --- a/test/built-ins/Atomics/xor/expected-return-value.js +++ b/test/built-ins/Atomics/xor/expected-return-value.js @@ -27,12 +27,20 @@ info: | features: [Atomics, SharedArrayBuffer, TypedArray] ---*/ -var buffer = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4); -var i32a = new Int32Array(buffer); -var initial = 0b00000001000000001000000010000001; -var update = 0b00000001111111111000000011111111; -i32a[0] = initial; +const i32a = new Int32Array( + new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4) +); +const a = 0b00000001000000001000000010000001; +const b = 0b00000001111111111000000011111111; +const c = 0b00000000111111110000000001111110; -assert.sameValue(Atomics.xor(i32a, 0, update), initial); -assert.sameValue(i32a[0], initial ^ update); +i32a[0] = a; + +assert.sameValue( + Atomics.xor(i32a, 0, b), + a, + 'Atomics.xor(i32a, 0, b) returns the value of `a` (0b00000001000000001000000010000001)' +); + +assert.sameValue(i32a[0], c, 'The value of i32a[0] equals the value of `c` (0b00000000111111110000000001111110)'); diff --git a/test/built-ins/Atomics/xor/good-views.js b/test/built-ins/Atomics/xor/good-views.js index 76be431af49f477f3effded46169a53cd3e06055..ba5c582532c797fe1d0a14248674a2088525643c 100644 --- a/test/built-ins/Atomics/xor/good-views.js +++ b/test/built-ins/Atomics/xor/good-views.js @@ -21,34 +21,54 @@ testWithTypedArrayConstructors(function(TA) { view[8] = 0x33333333; control[0] = 0x33333333; assert.sameValue(Atomics.xor(view, 8, 0x55555555), control[0], - "Result is subject to chopping"); + 'Atomics.xor(view, 8, 0x55555555) returns the value of `control[0]` (0x33333333)'); control[0] = 0x66666666; - assert.sameValue(view[8], control[0]); + assert.sameValue( + view[8], + control[0], + 'The value of view[8] equals the value of `control[0]` (0x66666666)' + ); assert.sameValue(Atomics.xor(view, 8, 0xF0F0F0F0), control[0], - "Result is subject to chopping"); + 'Atomics.xor(view, 8, 0xF0F0F0F0) returns the value of `control[0]` (0x66666666)'); control[0] = 0x96969696; - assert.sameValue(view[8], control[0]); + assert.sameValue( + view[8], + control[0], + 'The value of view[8] equals the value of `control[0]` (0x96969696)' + ); view[3] = -5; control[0] = -5; assert.sameValue(Atomics.xor(view, 3, 0), control[0], - "Result is negative and subject to coercion"); - assert.sameValue(view[3], control[0]); + 'Atomics.xor(view, 3, 0) returns the value of `control[0]` (-5)'); + assert.sameValue( + view[3], + control[0], + 'The value of view[3] equals the value of `control[0]` (-5)' + ); control[0] = 12345; view[3] = 12345; assert.sameValue(Atomics.xor(view, 3, 0), control[0], - "Result is subject to chopping"); - assert.sameValue(view[3], control[0]); + 'Atomics.xor(view, 3, 0) returns the value of `control[0]` (12345)'); + assert.sameValue( + view[3], + control[0], + 'The value of view[3] equals the value of `control[0]` (12345)' + ); // And again control[0] = 123456789; view[3] = 123456789; assert.sameValue(Atomics.xor(view, 3, 0), control[0], - "Result is subject to chopping"); - assert.sameValue(view[3], control[0]); + 'Atomics.xor(view, 3, 0) returns the value of `control[0]` (123456789)'); + assert.sameValue( + view[3], + control[0], + 'The value of view[3] equals the value of `control[0]` (123456789)' + ); // In-bounds boundary cases for indexing testWithAtomicsInBoundsIndices(function(IdxGen) { @@ -57,6 +77,6 @@ testWithTypedArrayConstructors(function(TA) { // Atomics.store() computes an index from Idx in the same way as other // Atomics operations, not quite like view[Idx]. Atomics.store(view, Idx, 37); - assert.sameValue(Atomics.xor(view, Idx, 0), 37); + assert.sameValue(Atomics.xor(view, Idx, 0), 37, 'Atomics.xor(view, Idx, 0) returns 37'); }); }, views); diff --git a/test/built-ins/Atomics/xor/non-views.js b/test/built-ins/Atomics/xor/non-views.js index b328f700019707156c0d1b453049d89d85ea34de..27963e3f804b6a9b1039cebae9670a81215007e6 100644 --- a/test/built-ins/Atomics/xor/non-views.js +++ b/test/built-ins/Atomics/xor/non-views.js @@ -12,5 +12,5 @@ features: [ArrayBuffer, arrow-function, Atomics, DataView, for-of, let, SharedAr testWithAtomicsNonViewValues(function(view) { assert.throws(TypeError, function() { Atomics.xor(view, 0, 0); - }, 'Atomics.xor(view, 0, 0) throws TypeError'); + }, '`Atomics.xor(view, 0, 0)` throws TypeError'); }); diff --git a/test/built-ins/Atomics/xor/nonshared-int-views.js b/test/built-ins/Atomics/xor/nonshared-int-views.js index 8be4b2d7bcee16784e811388d43d867813415f79..7444786027996dcfa9418f150eabeab6311498a4 100644 --- a/test/built-ins/Atomics/xor/nonshared-int-views.js +++ b/test/built-ins/Atomics/xor/nonshared-int-views.js @@ -15,5 +15,5 @@ var views = intArrayConstructors.slice(); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.xor(new TA(buffer), 0, 0); - }, 'Atomics.xor(new TA(buffer), 0, 0) throws TypeError'); + }, '`Atomics.xor(new TA(buffer), 0, 0)` throws TypeError'); }, views); diff --git a/test/built-ins/Atomics/xor/shared-nonint-views.js b/test/built-ins/Atomics/xor/shared-nonint-views.js index 845d459a9407e3589c4b6d42643583c5d562c3fc..13b246634ec25e8b116b56699f5c04b95477f522 100644 --- a/test/built-ins/Atomics/xor/shared-nonint-views.js +++ b/test/built-ins/Atomics/xor/shared-nonint-views.js @@ -14,5 +14,5 @@ var buffer = new SharedArrayBuffer(1024); testWithTypedArrayConstructors(function(TA) { assert.throws(TypeError, function() { Atomics.xor(new TA(buffer), 0, 0); - }, 'Atomics.xor(new TA(buffer), 0, 0) throws TypeError'); + }, '`Atomics.xor(new TA(buffer), 0, 0)` throws TypeError'); }, floatArrayConstructors);