diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /js/src/tests/non262/Tuple/prototype/length/length-getter.js | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | js/src/tests/non262/Tuple/prototype/length/length-getter.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/js/src/tests/non262/Tuple/prototype/length/length-getter.js b/js/src/tests/non262/Tuple/prototype/length/length-getter.js new file mode 100644 index 0000000000..7d07c152e3 --- /dev/null +++ b/js/src/tests/non262/Tuple/prototype/length/length-getter.js @@ -0,0 +1,42 @@ +// |reftest| skip-if(!this.hasOwnProperty("Tuple")) +/*--- +esid: sec-get-%tuple%.prototype.length +description: > +info: | + get %Tuple%.prototype.length + +Tuple.prototype.length is an accessor property whose set accessor function is undefined. Its get accessor function performs the following steps: + +1. Let T be ? thisTupleValue(this value). +2. Let size be the length of T.[[Sequence]]. +3. Return size. + +features: [Tuple] +---*/ + +/* Section 8.2.3.2 */ + +let TuplePrototype = Tuple.prototype; +let desc = Object.getOwnPropertyDescriptor(TuplePrototype, "length"); + +assertEq(typeof desc.get, "function"); + +assertEq(desc.enumerable, false); +assertEq(desc.configurable, true); + +assertEq(desc.set, undefined); + +let values = [[#[1,2,3], 3], [#[1], 1], [#[], 0]]; + +for (pair of values) { + let tup = pair[0]; + let len = pair[1]; + assertEq(desc.get.call(tup), len); + assertEq(desc.get.call(Object(tup)), len); + assertEq(tup["length"], len); +} + +assertThrowsInstanceOf(() => desc.get.call("monkeys"), TypeError, "get length method called on incompatible string"); +assertThrowsInstanceOf(() => desc.get.call(new Object()), TypeError, "get length method called on incompatible Object"); + +reportCompare(0, 0); |