summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Tuple/isTuple
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /js/src/tests/non262/Tuple/isTuple
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/tests/non262/Tuple/isTuple')
-rw-r--r--js/src/tests/non262/Tuple/isTuple/8.2.2.1.js54
-rw-r--r--js/src/tests/non262/Tuple/isTuple/descriptor.js9
-rw-r--r--js/src/tests/non262/Tuple/isTuple/length.js9
-rw-r--r--js/src/tests/non262/Tuple/isTuple/name.js9
-rw-r--r--js/src/tests/non262/Tuple/isTuple/not-a-constructor.js15
5 files changed, 96 insertions, 0 deletions
diff --git a/js/src/tests/non262/Tuple/isTuple/8.2.2.1.js b/js/src/tests/non262/Tuple/isTuple/8.2.2.1.js
new file mode 100644
index 0000000000..9ac63ebc66
--- /dev/null
+++ b/js/src/tests/non262/Tuple/isTuple/8.2.2.1.js
@@ -0,0 +1,54 @@
+// |reftest| skip-if(!this.hasOwnProperty("Tuple"))
+/*
+8.2.2
+The Tuple constructor:
+...
+has the following properties:
+...
+
+8.2.2.1 Tuple.isTuple ( arg )
+The isTuple function takes one argument arg, and performs the following steps:
+
+1. Return ! IsTuple(arg).
+*/
+
+var Tuple_isTuple = Tuple.isTuple;
+assertEq(typeof Tuple_isTuple, "function");
+
+assertEq(Tuple_isTuple(), false);
+assertEq(Tuple_isTuple(Tuple.prototype), false);
+assertEq(Tuple_isTuple([]), false);
+assertEq(Tuple_isTuple(42), false);
+assertEq(Tuple_isTuple(new Number(-50)), false);
+assertEq(Tuple_isTuple(undefined), false);
+assertEq(Tuple_isTuple(true), false);
+assertEq(Tuple_isTuple(new Boolean(false)), false);
+assertEq(Tuple_isTuple("hello"), false);
+assertEq(Tuple_isTuple(new String("bye")), false);
+assertEq(Tuple_isTuple({}), false);
+assertEq(Tuple_isTuple(null), false);
+assertEq(Tuple_isTuple(new RegExp()), false);
+assertEq(Tuple_isTuple(JSON), false);
+assertEq(Tuple_isTuple(Math), false);
+assertEq(Tuple_isTuple(new Date()), false);
+assertEq(Tuple_isTuple(new SyntaxError()), false);
+var arg;
+function fun() { arg = arguments; }(1, 2, 3);
+assertEq(Tuple_isTuple(arg), false);
+assertEq(Tuple_isTuple(this), false);
+assertEq(Tuple_isTuple(function() {}), false);
+var proto = Tuple.prototype;
+var Con = function() {};
+Con.prototype = proto;
+var child = new Con();
+assertEq(Tuple_isTuple(child), false);
+assertEq(Tuple_isTuple({0: 1, 1: 2, length: 2}), false);
+
+assertEq(Tuple_isTuple.call(1), false);
+assertEq(Tuple_isTuple.call(#[1]), false);
+assertEq(Tuple_isTuple.call(undefined, 1), false);
+assertEq(Tuple_isTuple.call(undefined, undefined), false);
+assertEq(Tuple_isTuple.call(undefined, #[1]), true);
+assertEq(Tuple_isTuple.call(undefined, Object(#[1])), true);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/non262/Tuple/isTuple/descriptor.js b/js/src/tests/non262/Tuple/isTuple/descriptor.js
new file mode 100644
index 0000000000..c6e3965e09
--- /dev/null
+++ b/js/src/tests/non262/Tuple/isTuple/descriptor.js
@@ -0,0 +1,9 @@
+// |reftest| skip-if(!this.hasOwnProperty("Tuple"))
+
+var desc = Object.getOwnPropertyDescriptor(Tuple, "isTuple");
+assertEq(desc.value, Tuple.isTuple);
+assertEq(desc.writable, true);
+assertEq(desc.enumerable, false);
+assertEq(desc.configurable, true);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/non262/Tuple/isTuple/length.js b/js/src/tests/non262/Tuple/isTuple/length.js
new file mode 100644
index 0000000000..6bad2aa680
--- /dev/null
+++ b/js/src/tests/non262/Tuple/isTuple/length.js
@@ -0,0 +1,9 @@
+// |reftest| skip-if(!this.hasOwnProperty("Tuple"))
+
+desc = Object.getOwnPropertyDescriptor(Tuple.isTuple, "length");
+assertEq(desc.value, 1);
+assertEq(desc.writable, false);
+assertEq(desc.enumerable, false);
+assertEq(desc.configurable, true);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/non262/Tuple/isTuple/name.js b/js/src/tests/non262/Tuple/isTuple/name.js
new file mode 100644
index 0000000000..a0c0688543
--- /dev/null
+++ b/js/src/tests/non262/Tuple/isTuple/name.js
@@ -0,0 +1,9 @@
+// |reftest| skip-if(!this.hasOwnProperty("Tuple"))
+
+desc = Object.getOwnPropertyDescriptor(Tuple.isTuple, "name");
+assertEq(desc.value, "isTuple");
+assertEq(desc.writable, false);
+assertEq(desc.enumerable, false);
+assertEq(desc.configurable, true);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/non262/Tuple/isTuple/not-a-constructor.js b/js/src/tests/non262/Tuple/isTuple/not-a-constructor.js
new file mode 100644
index 0000000000..c7844a4c83
--- /dev/null
+++ b/js/src/tests/non262/Tuple/isTuple/not-a-constructor.js
@@ -0,0 +1,15 @@
+// |reftest| skip-if(!this.hasOwnProperty("Tuple"))
+/* 18 ECMAScript Standard Built-in Objects
+...
+
+ Built-in function objects that are not identified as constructors do not
+ implement the [[Construct]] internal method unless otherwise specified in
+ the description of a particular function.
+*/
+
+assertEq(isConstructor(Tuple.isTuple), false);
+
+assertThrowsInstanceOf(() => new Tuple.isTuple(#[]), TypeError,
+ "new Tuple.isTuple(#[]) throws");
+
+reportCompare(0, 0);