summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/built-ins/TypedArray/of
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/built-ins/TypedArray/of')
-rw-r--r--js/src/tests/test262/built-ins/TypedArray/of/invoked-as-func.js1
-rw-r--r--js/src/tests/test262/built-ins/TypedArray/of/invoked-as-method.js1
-rw-r--r--js/src/tests/test262/built-ins/TypedArray/of/length.js12
-rw-r--r--js/src/tests/test262/built-ins/TypedArray/of/name.js12
-rw-r--r--js/src/tests/test262/built-ins/TypedArray/of/not-a-constructor.js3
-rw-r--r--js/src/tests/test262/built-ins/TypedArray/of/prop-desc.js1
-rw-r--r--js/src/tests/test262/built-ins/TypedArray/of/resized-with-out-of-bounds-and-in-bounds-indices.js60
-rw-r--r--js/src/tests/test262/built-ins/TypedArray/of/this-is-not-constructor.js1
8 files changed, 80 insertions, 11 deletions
diff --git a/js/src/tests/test262/built-ins/TypedArray/of/invoked-as-func.js b/js/src/tests/test262/built-ins/TypedArray/of/invoked-as-func.js
index 1f40a9659b..4e798e82e8 100644
--- a/js/src/tests/test262/built-ins/TypedArray/of/invoked-as-func.js
+++ b/js/src/tests/test262/built-ins/TypedArray/of/invoked-as-func.js
@@ -1,3 +1,4 @@
+// |reftest| shell-option(--enable-float16array)
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
diff --git a/js/src/tests/test262/built-ins/TypedArray/of/invoked-as-method.js b/js/src/tests/test262/built-ins/TypedArray/of/invoked-as-method.js
index 0b671ca852..9d24453218 100644
--- a/js/src/tests/test262/built-ins/TypedArray/of/invoked-as-method.js
+++ b/js/src/tests/test262/built-ins/TypedArray/of/invoked-as-method.js
@@ -1,3 +1,4 @@
+// |reftest| shell-option(--enable-float16array)
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
diff --git a/js/src/tests/test262/built-ins/TypedArray/of/length.js b/js/src/tests/test262/built-ins/TypedArray/of/length.js
index 9739cd5045..8ac2068bb3 100644
--- a/js/src/tests/test262/built-ins/TypedArray/of/length.js
+++ b/js/src/tests/test262/built-ins/TypedArray/of/length.js
@@ -1,3 +1,4 @@
+// |reftest| shell-option(--enable-float16array)
// Copyright (C) 2015 André Bargull. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
@@ -24,10 +25,11 @@ includes: [propertyHelper.js, testTypedArray.js]
features: [TypedArray]
---*/
-assert.sameValue(TypedArray.of.length, 0);
-
-verifyNotEnumerable(TypedArray.of, "length");
-verifyNotWritable(TypedArray.of, "length");
-verifyConfigurable(TypedArray.of, "length");
+verifyProperty(TypedArray.of, "length", {
+ value: 0,
+ writable: false,
+ enumerable: false,
+ configurable: true
+});
reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/TypedArray/of/name.js b/js/src/tests/test262/built-ins/TypedArray/of/name.js
index c18c95cafe..1fbb1cc54e 100644
--- a/js/src/tests/test262/built-ins/TypedArray/of/name.js
+++ b/js/src/tests/test262/built-ins/TypedArray/of/name.js
@@ -1,3 +1,4 @@
+// |reftest| shell-option(--enable-float16array)
// Copyright (C) 2015 André Bargull. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
@@ -20,10 +21,11 @@ includes: [propertyHelper.js, testTypedArray.js]
features: [TypedArray]
---*/
-assert.sameValue(TypedArray.of.name, "of");
-
-verifyNotEnumerable(TypedArray.of, "name");
-verifyNotWritable(TypedArray.of, "name");
-verifyConfigurable(TypedArray.of, "name");
+verifyProperty(TypedArray.of, "name", {
+ value: "of",
+ writable: false,
+ enumerable: false,
+ configurable: true
+});
reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/TypedArray/of/not-a-constructor.js b/js/src/tests/test262/built-ins/TypedArray/of/not-a-constructor.js
index 575bb492fb..ca84c190ed 100644
--- a/js/src/tests/test262/built-ins/TypedArray/of/not-a-constructor.js
+++ b/js/src/tests/test262/built-ins/TypedArray/of/not-a-constructor.js
@@ -1,3 +1,4 @@
+// |reftest| shell-option(--enable-float16array)
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
@@ -25,7 +26,7 @@ assert.sameValue(isConstructor(TypedArray.of), false, 'isConstructor(TypedArray.
assert.throws(TypeError, () => {
new TypedArray.of(1, 2, 3, 4);
-}, '`new TypedArray.of(1, 2, 3, 4)` throws TypeError');
+});
reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/TypedArray/of/prop-desc.js b/js/src/tests/test262/built-ins/TypedArray/of/prop-desc.js
index 86bad8552c..f940c5fb8c 100644
--- a/js/src/tests/test262/built-ins/TypedArray/of/prop-desc.js
+++ b/js/src/tests/test262/built-ins/TypedArray/of/prop-desc.js
@@ -1,3 +1,4 @@
+// |reftest| shell-option(--enable-float16array)
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
diff --git a/js/src/tests/test262/built-ins/TypedArray/of/resized-with-out-of-bounds-and-in-bounds-indices.js b/js/src/tests/test262/built-ins/TypedArray/of/resized-with-out-of-bounds-and-in-bounds-indices.js
new file mode 100644
index 0000000000..6e0ee8a25e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/TypedArray/of/resized-with-out-of-bounds-and-in-bounds-indices.js
@@ -0,0 +1,60 @@
+// |reftest| shell-option(--enable-arraybuffer-resizable) skip-if(!ArrayBuffer.prototype.resize||!xulRuntime.shell) -- resizable-arraybuffer is not enabled unconditionally, requires shell-options
+// Copyright (C) 2024 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-%typedarray%.of
+description: >
+ Performs Set operation which ignores out-of-bounds indices.
+info: |
+ %TypedArray%.of ( ...items )
+
+ ...
+ 6. Repeat, while k < len,
+ ...
+ c. Perform ? Set(newObj, Pk, kValue, true).
+ ...
+
+features: [TypedArray, resizable-arraybuffer]
+---*/
+
+let rab = new ArrayBuffer(3, {maxByteLength: 4});
+let ta = new Int8Array(rab);
+
+let one = {
+ valueOf() {
+ // Shrink buffer. Assignment to `ta[0]` should be ignored.
+ rab.resize(0);
+ return 1;
+ }
+};
+
+let two = {
+ valueOf() {
+ // Grow buffer. All following assignment should succeed.
+ rab.resize(4);
+ return 2;
+ }
+};
+
+// Typed array is correctly zero initialised.
+assert.sameValue(ta.length, 3);
+assert.sameValue(ta[0], 0);
+assert.sameValue(ta[1], 0);
+assert.sameValue(ta[2], 0);
+
+let result = Int8Array.of.call(function() {
+ return ta;
+}, one, two, 3);
+
+// Correct result value.
+assert.sameValue(result, ta);
+
+// Values are correctly set.
+assert.sameValue(ta.length, 4);
+assert.sameValue(ta[0], 0);
+assert.sameValue(ta[1], 2);
+assert.sameValue(ta[2], 3);
+assert.sameValue(ta[3], 0);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/TypedArray/of/this-is-not-constructor.js b/js/src/tests/test262/built-ins/TypedArray/of/this-is-not-constructor.js
index 606fba3255..047c7a24f0 100644
--- a/js/src/tests/test262/built-ins/TypedArray/of/this-is-not-constructor.js
+++ b/js/src/tests/test262/built-ins/TypedArray/of/this-is-not-constructor.js
@@ -1,3 +1,4 @@
+// |reftest| shell-option(--enable-float16array)
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---