Skip to content

Commit dbe146a

Browse files
committed
null can also be a property key
1 parent dbb078d commit dbe146a

3 files changed

Lines changed: 18 additions & 6 deletions

File tree

‎ast_class.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -730,7 +730,7 @@ func (pn *PropertyName) parse(j *jsParser, yield, await bool) error {
730730
if !j.AcceptToken(parser.Token{Type: TokenPunctuator, Data: "]"}) {
731731
return j.Error("PropertyName", ErrMissingClosingBracket)
732732
}
733-
} else if j.Accept(TokenIdentifier, TokenKeyword, TokenStringLiteral, TokenNumericLiteral, TokenBooleanLiteral) {
733+
} else if j.Accept(TokenIdentifier, TokenKeyword, TokenStringLiteral, TokenNumericLiteral, TokenBooleanLiteral, TokenNullLiteral) {
734734
pn.LiteralPropertyName = j.GetLastToken()
735735
} else {
736736
return j.Error("PropertyName", ErrInvalidPropertyName)

‎ast_class_test.go‎

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4175,26 +4175,38 @@ func TestPropertyName(t *testing.T) {
41754175
}
41764176
}},
41774177
{`null`, func(t *test, tk Tokens) { // 9
4178+
t.Output = PropertyName{
4179+
LiteralPropertyName: &tk[0],
4180+
Tokens: tk[:1],
4181+
}
4182+
}},
4183+
{`"null"`, func(t *test, tk Tokens) { // 10
4184+
t.Output = PropertyName{
4185+
LiteralPropertyName: &tk[0],
4186+
Tokens: tk[:1],
4187+
}
4188+
}},
4189+
{`/a/`, func(t *test, tk Tokens) { // 11
41784190
t.Err = Error{
41794191
Err: ErrInvalidPropertyName,
41804192
Parsing: "PropertyName",
41814193
Token: tk[0],
41824194
}
41834195
}},
4184-
{`[a, b]`, func(t *test, tk Tokens) { // 10
4196+
{`[a, b]`, func(t *test, tk Tokens) { // 12
41854197
t.Err = Error{
41864198
Err: ErrMissingClosingBracket,
41874199
Parsing: "PropertyName",
41884200
Token: tk[2],
41894201
}
41904202
}},
4191-
{`await`, func(t *test, tk Tokens) { // 11
4203+
{`await`, func(t *test, tk Tokens) { // 13
41924204
t.Output = PropertyName{
41934205
LiteralPropertyName: &tk[0],
41944206
Tokens: tk[:1],
41954207
}
41964208
}},
4197-
{"[ // A\n\n// B\na // C\n\n// D\n]", func(t *test, tk Tokens) { // 12
4209+
{"[ // A\n\n// B\na // C\n\n// D\n]", func(t *test, tk Tokens) { // 14
41984210
t.Output = PropertyName{
41994211
ComputedPropertyName: &AssignmentExpression{
42004212
ConditionalExpression: WrapConditional(&MemberExpression{

‎ast_test.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1754,7 +1754,7 @@ func TestObjectBindingPattern(t *testing.T) {
17541754
Token: tk[6],
17551755
}
17561756
}},
1757-
{"{\nnull\n}", func(t *test, tk Tokens) { // 7
1757+
{"{\n/a/\n}", func(t *test, tk Tokens) { // 7
17581758
t.Err = Error{
17591759
Err: Error{
17601760
Err: Error{
@@ -1914,7 +1914,7 @@ func TestBindingProperty(t *testing.T) {
19141914
Token: tk[0],
19151915
}
19161916
}},
1917-
{`null`, func(t *test, tk Tokens) { // 2
1917+
{`/a/`, func(t *test, tk Tokens) { // 2
19181918
t.Err = Error{
19191919
Err: Error{
19201920
Err: ErrInvalidPropertyName,

0 commit comments

Comments
 (0)