Trailing comma after rest - The final fix (#10491)
* [parser] Track trailing commas in extras instead of state * Update existing tests * Update test262 whitelist * Improve error message and location * nit * Use lookaheadCharCode
This commit is contained in:
@@ -373,7 +373,10 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 140
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -494,7 +497,10 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 200
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -74,6 +74,9 @@
|
||||
},
|
||||
"name": "fn"
|
||||
},
|
||||
"extra": {
|
||||
"trailingComma": 11
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Identifier",
|
||||
|
||||
@@ -74,6 +74,9 @@
|
||||
},
|
||||
"name": "fn"
|
||||
},
|
||||
"extra": {
|
||||
"trailingComma": 7
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Identifier",
|
||||
|
||||
@@ -181,6 +181,9 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 35
|
||||
},
|
||||
"trailingComments": [
|
||||
{
|
||||
"type": "CommentBlock",
|
||||
|
||||
@@ -309,7 +309,10 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 66
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -163,7 +163,10 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 13
|
||||
}
|
||||
}
|
||||
},
|
||||
"trailingComments": [
|
||||
|
||||
@@ -110,7 +110,10 @@
|
||||
},
|
||||
"value": 42
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 8
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,7 +150,10 @@
|
||||
},
|
||||
"value": 3
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 13
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,7 +151,10 @@
|
||||
},
|
||||
"value": 3
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 14
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"throws": "Rest element must be last element (1:5)"
|
||||
"throws": "Unexpected trailing comma after rest element (1:5)"
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
for ([...a,] in []);
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"throws": "Unexpected trailing comma after rest element (1:10)"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
[[...a,]] = [];
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"throws": "Unexpected trailing comma after rest element (1:6)"
|
||||
}
|
||||
@@ -90,7 +90,10 @@
|
||||
"name": "a"
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 5
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"throws": "Rest element must be last element (1:8)"
|
||||
"throws": "Unexpected trailing comma after rest element (1:8)"
|
||||
}
|
||||
|
||||
@@ -91,7 +91,10 @@
|
||||
"name": "x"
|
||||
},
|
||||
null
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 3
|
||||
}
|
||||
},
|
||||
"right": {
|
||||
"type": "NumericLiteral",
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"throws": "Rest element must be last element (1:11)"
|
||||
}
|
||||
"throws": "Unexpected trailing comma after rest element (1:11)"
|
||||
}
|
||||
@@ -74,6 +74,9 @@
|
||||
},
|
||||
"name": "log"
|
||||
},
|
||||
"extra": {
|
||||
"trailingComma": 13
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Identifier",
|
||||
|
||||
@@ -183,7 +183,10 @@
|
||||
"shorthand": true
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 10
|
||||
}
|
||||
},
|
||||
"init": {
|
||||
"type": "Identifier",
|
||||
|
||||
@@ -289,6 +289,7 @@
|
||||
}
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 21,
|
||||
"parenthesized": true,
|
||||
"parenStart": 0
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"throws": "Rest element must be last element (1:16)"
|
||||
"throws": "Unexpected trailing comma after rest element (1:16)"
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
for ({...a,} in []);
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"throws": "Rest element must be last element (1:10)"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
[{...a,}] = [];
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"throws": "Rest element must be last element (1:6)"
|
||||
}
|
||||
@@ -92,6 +92,7 @@
|
||||
}
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 6,
|
||||
"parenthesized": true,
|
||||
"parenStart": 0
|
||||
}
|
||||
|
||||
@@ -78,7 +78,10 @@
|
||||
"elements": [
|
||||
null,
|
||||
null
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"body": {
|
||||
|
||||
@@ -75,7 +75,10 @@
|
||||
"elements": [
|
||||
null,
|
||||
null
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 2
|
||||
}
|
||||
},
|
||||
"right": {
|
||||
"type": "NumericLiteral",
|
||||
|
||||
@@ -166,6 +166,7 @@
|
||||
}
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 33,
|
||||
"parenthesized": true,
|
||||
"parenStart": 0
|
||||
}
|
||||
|
||||
@@ -169,6 +169,7 @@
|
||||
}
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 35,
|
||||
"parenthesized": true,
|
||||
"parenStart": 0
|
||||
}
|
||||
|
||||
@@ -128,7 +128,10 @@
|
||||
"shorthand": true
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 6
|
||||
}
|
||||
},
|
||||
"init": {
|
||||
"type": "NumericLiteral",
|
||||
|
||||
@@ -110,7 +110,10 @@
|
||||
},
|
||||
"value": 42
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 8
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,7 +150,10 @@
|
||||
},
|
||||
"value": 3
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 13
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,7 +151,10 @@
|
||||
},
|
||||
"value": 3
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 14
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"throws": "Trailing comma is disallowed inside import(...) arguments (1:13)"
|
||||
"throws": "Trailing comma is disallowed inside import(...) arguments (1:12)"
|
||||
}
|
||||
|
||||
@@ -157,7 +157,10 @@
|
||||
},
|
||||
"value": 123
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 24
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -187,7 +187,6 @@
|
||||
"column": 23
|
||||
}
|
||||
},
|
||||
"attributes": [],
|
||||
"name": {
|
||||
"type": "JSXIdentifier",
|
||||
"start": 29,
|
||||
@@ -204,6 +203,7 @@
|
||||
},
|
||||
"name": "Foo"
|
||||
},
|
||||
"attributes": [],
|
||||
"selfClosing": true
|
||||
},
|
||||
"closingElement": null,
|
||||
@@ -263,7 +263,10 @@
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 39
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -450,7 +450,10 @@
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"trailingComma": 77
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user