summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Array/toSpliced.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/non262/Array/toSpliced.js')
-rw-r--r--js/src/tests/non262/Array/toSpliced.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/js/src/tests/non262/Array/toSpliced.js b/js/src/tests/non262/Array/toSpliced.js
new file mode 100644
index 0000000000..7c8faf917b
--- /dev/null
+++ b/js/src/tests/non262/Array/toSpliced.js
@@ -0,0 +1,27 @@
+// |reftest| shell-option(--enable-change-array-by-copy) skip-if(!Array.prototype.toSpliced)
+
+Object.defineProperty(Array.prototype, 0, {
+ set() {
+ throw "bad 0";
+ },
+});
+
+Object.defineProperty(Array.prototype, 1, {
+ set() {
+ throw "bad 1";
+ },
+});
+
+assertDeepEq([].toSpliced(0, 0, 1), [1]);
+
+assertDeepEq([0].toSpliced(0, 0, 0), [0, 0]);
+assertDeepEq([0].toSpliced(0, 0, 1), [1, 0]);
+assertDeepEq([0].toSpliced(0, 1, 0), [0]);
+assertDeepEq([0].toSpliced(0, 1, 1), [1]);
+assertDeepEq([0].toSpliced(1, 0, 0), [0, 0]);
+assertDeepEq([0].toSpliced(1, 0, 1), [0, 1]);
+assertDeepEq([0].toSpliced(1, 1, 0), [0, 0]);
+assertDeepEq([0].toSpliced(1, 1, 1), [0, 1]);
+
+if (typeof reportCompare === "function")
+ reportCompare(0, 0);