From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- js/src/tests/non262/Tuple/isTuple/8.2.2.1.js | 54 ++++++++++++++++++++++ js/src/tests/non262/Tuple/isTuple/descriptor.js | 9 ++++ js/src/tests/non262/Tuple/isTuple/length.js | 9 ++++ js/src/tests/non262/Tuple/isTuple/name.js | 9 ++++ .../non262/Tuple/isTuple/not-a-constructor.js | 15 ++++++ 5 files changed, 96 insertions(+) create mode 100644 js/src/tests/non262/Tuple/isTuple/8.2.2.1.js create mode 100644 js/src/tests/non262/Tuple/isTuple/descriptor.js create mode 100644 js/src/tests/non262/Tuple/isTuple/length.js create mode 100644 js/src/tests/non262/Tuple/isTuple/name.js create mode 100644 js/src/tests/non262/Tuple/isTuple/not-a-constructor.js (limited to 'js/src/tests/non262/Tuple/isTuple') 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); -- cgit v1.2.3