summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Tuple/prototype/toString/to-string.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/non262/Tuple/prototype/toString/to-string.js')
-rw-r--r--js/src/tests/non262/Tuple/prototype/toString/to-string.js21
1 files changed, 21 insertions, 0 deletions
diff --git a/js/src/tests/non262/Tuple/prototype/toString/to-string.js b/js/src/tests/non262/Tuple/prototype/toString/to-string.js
new file mode 100644
index 0000000000..e600ca78a2
--- /dev/null
+++ b/js/src/tests/non262/Tuple/prototype/toString/to-string.js
@@ -0,0 +1,21 @@
+// |reftest| skip-if(!this.hasOwnProperty("Tuple"))
+/* Step 1 */
+/* toString() should throw on a non-Tuple */
+let method = Tuple.prototype.toString;
+assertEq(method.call(#[1,2,3,4,5,6]), "1,2,3,4,5,6");
+assertEq(method.call(Object(#[1,2,3,4,5,6])), "1,2,3,4,5,6");
+assertThrowsInstanceOf(() => method.call("monkeys"), TypeError,
+ "value of TupleObject must be a Tuple");
+
+// Normal case
+assertEq(#[].toString(), "");
+assertEq(#[1].toString(), "1");
+assertEq(#[1,2].toString(), "1,2");
+
+// if join method isn't callable, Object.toString should be called
+Tuple.prototype.join = 7;
+var t = #[1,2,3];
+assertEq(t.toString(), "[object Tuple]");
+
+
+reportCompare(0, 0);