mirror of https://github.com/tc39/test262.git
55 lines
1.5 KiB
JavaScript
55 lines
1.5 KiB
JavaScript
// 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.");
|