summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/expressions/object/literal-property-name-bigint.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /js/src/tests/test262/language/expressions/object/literal-property-name-bigint.js
parentInitial commit. (diff)
downloadfirefox-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 'js/src/tests/test262/language/expressions/object/literal-property-name-bigint.js')
-rw-r--r--js/src/tests/test262/language/expressions/object/literal-property-name-bigint.js56
1 files changed, 56 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/expressions/object/literal-property-name-bigint.js b/js/src/tests/test262/language/expressions/object/literal-property-name-bigint.js
new file mode 100644
index 0000000000..ad502cbdb0
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/object/literal-property-name-bigint.js
@@ -0,0 +1,56 @@
+// Copyright (C) 2020 Igalia S.L, Toru Nagashima. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+description: >
+ BigInt in LiteralPropertyName must be valid and the property name must be
+ the string representation of the numeric value.
+esid: prod-PropertyName
+info: |
+ PropertyName[Yield, Await]:
+ LiteralPropertyName
+ ComputedPropertyName[?Yield, ?Await]
+
+ LiteralPropertyName:
+ IdentifierName
+ StringLiteral
+ NumericLiteral
+
+ NumericLiteral:
+ DecimalLiteral
+ DecimalBigIntegerLiteral
+
+ LiteralPropertyName: NumericLiteral
+ 1. Let _nbr_ be the NumericValue of |NumericLiteral|.
+ 1. Return ! ToString(_nbr_).
+features: [BigInt, class, destructuring-binding, let]
+---*/
+
+// Property
+
+let o = { 999999999999999999n: true }; // greater than max safe integer
+
+assert.sameValue(o["999999999999999999"], true,
+ "the property name must be the string representation of the numeric value.");
+
+// MethodDeclaration
+
+o = { 1n() { return "bar"; } };
+assert.sameValue(o["1"](), "bar",
+ "the property name must be the string representation of the numeric value.");
+
+class C {
+ 1n() { return "baz"; }
+}
+
+let c = new C();
+assert.sameValue(c["1"](), "baz",
+ "the property name must be the string representation of the numeric value.");
+
+// Destructuring
+
+let { 1n: a } = { "1": "foo" };
+assert.sameValue(a, "foo",
+ "the property name must be the string representation of the numeric value.");
+
+reportCompare(0, 0);