Fix regression with let (#9477)
* Fix corner cases with let * Handle generators correctly * Fix flow plugin * Fix typescript plugin
This commit is contained in:
parent
7943a48cc3
commit
2817844e89
@ -76,7 +76,7 @@ export default class StatementParser extends ExpressionParser {
|
||||
return this.finishNode(node, "InterpreterDirective");
|
||||
}
|
||||
|
||||
isLet(declaration?: boolean): boolean {
|
||||
isLet(context: ?string): boolean {
|
||||
if (!this.isContextual("let")) {
|
||||
return false;
|
||||
}
|
||||
@ -85,20 +85,16 @@ export default class StatementParser extends ExpressionParser {
|
||||
// $FlowIgnore
|
||||
const next = this.state.pos + skip[0].length;
|
||||
const nextCh = this.state.input.charCodeAt(next);
|
||||
if (
|
||||
(nextCh === charCodes.leftCurlyBrace &&
|
||||
!lineBreak.test(this.state.input.slice(this.state.end, next))) ||
|
||||
nextCh === charCodes.leftSquareBracket
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
// For ambiguous cases, determine if a LexicalDeclaration (or only a
|
||||
// Statement) is allowed here. If context is not empty then only a Statement
|
||||
// is allowed. However, `let [` is an explicit negative lookahead for
|
||||
// ExpressionStatement, so special-case it first.
|
||||
if (nextCh === charCodes.leftSquareBracket) return true;
|
||||
if (context) return false;
|
||||
|
||||
if (nextCh === charCodes.leftCurlyBrace) return true;
|
||||
|
||||
if (isIdentifierStart(nextCh)) {
|
||||
if (
|
||||
!declaration &&
|
||||
lineBreak.test(this.state.input.slice(this.state.end, next))
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
let pos = next + 1;
|
||||
while (isIdentifierChar(this.state.input.charCodeAt(pos))) {
|
||||
++pos;
|
||||
@ -116,19 +112,19 @@ export default class StatementParser extends ExpressionParser {
|
||||
// `if (foo) /blah/.exec(foo)`, where looking at the previous token
|
||||
// does not help.
|
||||
|
||||
parseStatement(declaration: boolean, topLevel?: boolean): N.Statement {
|
||||
parseStatement(context: ?string, topLevel?: boolean): N.Statement {
|
||||
if (this.match(tt.at)) {
|
||||
this.parseDecorators(true);
|
||||
}
|
||||
return this.parseStatementContent(declaration, topLevel);
|
||||
return this.parseStatementContent(context, topLevel);
|
||||
}
|
||||
|
||||
parseStatementContent(declaration: boolean, topLevel: ?boolean): N.Statement {
|
||||
parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {
|
||||
let starttype = this.state.type;
|
||||
const node = this.startNode();
|
||||
let kind;
|
||||
|
||||
if (this.isLet(declaration)) {
|
||||
if (this.isLet(context)) {
|
||||
starttype = tt._var;
|
||||
kind = "let";
|
||||
}
|
||||
@ -148,18 +144,28 @@ export default class StatementParser extends ExpressionParser {
|
||||
return this.parseDoStatement(node);
|
||||
case tt._for:
|
||||
return this.parseForStatement(node);
|
||||
case tt._function:
|
||||
case tt._function: {
|
||||
if (this.lookahead().type === tt.dot) break;
|
||||
if (!declaration) {
|
||||
if (
|
||||
context &&
|
||||
(this.state.strict || (context !== "if" && context !== "label"))
|
||||
) {
|
||||
this.raise(
|
||||
this.state.start,
|
||||
"Function declaration not allowed in this context",
|
||||
);
|
||||
}
|
||||
return this.parseFunctionStatement(node);
|
||||
const result = this.parseFunctionStatement(node);
|
||||
|
||||
// TODO: Remove this once we have proper scope tracking in place.
|
||||
if (context && result.generator) {
|
||||
this.unexpected(node.start);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
case tt._class:
|
||||
if (!declaration) this.unexpected();
|
||||
if (context) this.unexpected();
|
||||
return this.parseClass(node, true);
|
||||
|
||||
case tt._if:
|
||||
@ -176,7 +182,7 @@ export default class StatementParser extends ExpressionParser {
|
||||
case tt._const:
|
||||
case tt._var:
|
||||
kind = kind || this.state.value;
|
||||
if (!declaration && kind !== "var") this.unexpected();
|
||||
if (context && kind !== "var") this.unexpected();
|
||||
return this.parseVarStatement(node, kind);
|
||||
|
||||
case tt._while:
|
||||
@ -237,7 +243,7 @@ export default class StatementParser extends ExpressionParser {
|
||||
const state = this.state.clone();
|
||||
this.next();
|
||||
if (this.match(tt._function) && !this.canInsertSemicolon()) {
|
||||
if (!declaration) {
|
||||
if (context) {
|
||||
this.raise(
|
||||
this.state.lastTokStart,
|
||||
"Function declaration not allowed in this context",
|
||||
@ -264,7 +270,7 @@ export default class StatementParser extends ExpressionParser {
|
||||
expr.type === "Identifier" &&
|
||||
this.eat(tt.colon)
|
||||
) {
|
||||
return this.parseLabeledStatement(node, maybeName, expr, declaration);
|
||||
return this.parseLabeledStatement(node, maybeName, expr, context);
|
||||
} else {
|
||||
return this.parseExpressionStatement(node, expr);
|
||||
}
|
||||
@ -430,7 +436,7 @@ export default class StatementParser extends ExpressionParser {
|
||||
// outside of the loop body.
|
||||
this.withTopicForbiddingContext(() =>
|
||||
// Parse the loop body's body.
|
||||
this.parseStatement(false),
|
||||
this.parseStatement("do"),
|
||||
);
|
||||
|
||||
this.state.labels.pop();
|
||||
@ -526,8 +532,8 @@ export default class StatementParser extends ExpressionParser {
|
||||
parseIfStatement(node: N.IfStatement): N.IfStatement {
|
||||
this.next();
|
||||
node.test = this.parseParenExpression();
|
||||
node.consequent = this.parseStatement(false);
|
||||
node.alternate = this.eat(tt._else) ? this.parseStatement(false) : null;
|
||||
node.consequent = this.parseStatement("if");
|
||||
node.alternate = this.eat(tt._else) ? this.parseStatement("if") : null;
|
||||
return this.finishNode(node, "IfStatement");
|
||||
}
|
||||
|
||||
@ -583,7 +589,7 @@ export default class StatementParser extends ExpressionParser {
|
||||
this.expect(tt.colon);
|
||||
} else {
|
||||
if (cur) {
|
||||
cur.consequent.push(this.parseStatement(true));
|
||||
cur.consequent.push(this.parseStatement(null));
|
||||
} else {
|
||||
this.unexpected();
|
||||
}
|
||||
@ -672,7 +678,7 @@ export default class StatementParser extends ExpressionParser {
|
||||
// They are permitted in test expressions, outside of the loop body.
|
||||
this.withTopicForbiddingContext(() =>
|
||||
// Parse loop body.
|
||||
this.parseStatement(false),
|
||||
this.parseStatement("while"),
|
||||
);
|
||||
|
||||
this.state.labels.pop();
|
||||
@ -694,7 +700,7 @@ export default class StatementParser extends ExpressionParser {
|
||||
// part of the outer context, outside of the function body.
|
||||
this.withTopicForbiddingContext(() =>
|
||||
// Parse the statement body.
|
||||
this.parseStatement(false),
|
||||
this.parseStatement("with"),
|
||||
);
|
||||
|
||||
return this.finishNode(node, "WithStatement");
|
||||
@ -709,7 +715,7 @@ export default class StatementParser extends ExpressionParser {
|
||||
node: N.LabeledStatement,
|
||||
maybeName: string,
|
||||
expr: N.Identifier,
|
||||
declaration: boolean,
|
||||
context: ?string,
|
||||
): N.LabeledStatement {
|
||||
for (const label of this.state.labels) {
|
||||
if (label.name === maybeName) {
|
||||
@ -737,16 +743,13 @@ export default class StatementParser extends ExpressionParser {
|
||||
kind: kind,
|
||||
statementStart: this.state.start,
|
||||
});
|
||||
node.body = this.parseStatement(declaration);
|
||||
|
||||
if (
|
||||
node.body.type === "ClassDeclaration" ||
|
||||
(node.body.type === "VariableDeclaration" && node.body.kind !== "var") ||
|
||||
(node.body.type === "FunctionDeclaration" &&
|
||||
(this.state.strict || node.body.generator || node.body.async))
|
||||
) {
|
||||
this.raise(node.body.start, "Invalid labeled declaration");
|
||||
}
|
||||
node.body = this.parseStatement(
|
||||
context
|
||||
? context.indexOf("label") === -1
|
||||
? context + "label"
|
||||
: context
|
||||
: "label",
|
||||
);
|
||||
|
||||
this.state.labels.pop();
|
||||
node.label = expr;
|
||||
@ -813,7 +816,7 @@ export default class StatementParser extends ExpressionParser {
|
||||
octalPosition = this.state.octalPosition;
|
||||
}
|
||||
|
||||
const stmt = this.parseStatement(true, topLevel);
|
||||
const stmt = this.parseStatement(null, topLevel);
|
||||
|
||||
if (directives && !parsedNonDirective && this.isValidDirective(stmt)) {
|
||||
const directive = this.stmtToDirective(stmt);
|
||||
@ -861,7 +864,7 @@ export default class StatementParser extends ExpressionParser {
|
||||
// outside of the loop body.
|
||||
this.withTopicForbiddingContext(() =>
|
||||
// Parse the loop body.
|
||||
this.parseStatement(false),
|
||||
this.parseStatement("for"),
|
||||
);
|
||||
|
||||
this.state.labels.pop();
|
||||
@ -896,7 +899,7 @@ export default class StatementParser extends ExpressionParser {
|
||||
// They are permitted in test expressions, outside of the loop body.
|
||||
this.withTopicForbiddingContext(() =>
|
||||
// Parse loop body.
|
||||
this.parseStatement(false),
|
||||
this.parseStatement("for"),
|
||||
);
|
||||
|
||||
this.state.labels.pop();
|
||||
@ -1700,7 +1703,7 @@ export default class StatementParser extends ExpressionParser {
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {
|
||||
return this.parseStatement(true);
|
||||
return this.parseStatement(null);
|
||||
}
|
||||
|
||||
isExportDefaultSpecifier(): boolean {
|
||||
|
||||
@ -1566,7 +1566,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
|
||||
}
|
||||
|
||||
// interfaces
|
||||
parseStatement(declaration: boolean, topLevel?: boolean): N.Statement {
|
||||
parseStatement(context: ?string, topLevel?: boolean): N.Statement {
|
||||
// strict mode handling of `interface` since it's a reserved word
|
||||
if (
|
||||
this.state.strict &&
|
||||
@ -1577,7 +1577,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
|
||||
this.next();
|
||||
return this.flowParseInterface(node);
|
||||
} else {
|
||||
const stmt = super.parseStatement(declaration, topLevel);
|
||||
const stmt = super.parseStatement(context, topLevel);
|
||||
// We will parse a flow pragma in any comment before the first statement.
|
||||
if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {
|
||||
this.flowPragma = null;
|
||||
|
||||
@ -1699,10 +1699,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
|
||||
return super.parseExportDefaultExpression();
|
||||
}
|
||||
|
||||
parseStatementContent(
|
||||
declaration: boolean,
|
||||
topLevel: ?boolean,
|
||||
): N.Statement {
|
||||
parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {
|
||||
if (this.state.type === tt._const) {
|
||||
const ahead = this.lookahead();
|
||||
if (ahead.type === tt.name && ahead.value === "enum") {
|
||||
@ -1712,7 +1709,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
|
||||
return this.tsParseEnumDeclaration(node, /* isConst */ true);
|
||||
}
|
||||
}
|
||||
return super.parseStatementContent(declaration, topLevel);
|
||||
return super.parseStatementContent(context, topLevel);
|
||||
}
|
||||
|
||||
parseAccessModifier(): ?N.Accessibility {
|
||||
|
||||
4
packages/babel-parser/test/fixtures/es2015/let/let-block-with-newline/input.js
vendored
Normal file
4
packages/babel-parser/test/fixtures/es2015/let/let-block-with-newline/input.js
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
if (false) {
|
||||
L: let // ASI
|
||||
{}
|
||||
}
|
||||
220
packages/babel-parser/test/fixtures/es2015/let/let-block-with-newline/output.json
vendored
Normal file
220
packages/babel-parser/test/fixtures/es2015/let/let-block-with-newline/output.json
vendored
Normal file
@ -0,0 +1,220 @@
|
||||
{
|
||||
"type": "File",
|
||||
"start": 0,
|
||||
"end": 39,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 0
|
||||
},
|
||||
"end": {
|
||||
"line": 4,
|
||||
"column": 1
|
||||
}
|
||||
},
|
||||
"program": {
|
||||
"type": "Program",
|
||||
"start": 0,
|
||||
"end": 39,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 0
|
||||
},
|
||||
"end": {
|
||||
"line": 4,
|
||||
"column": 1
|
||||
}
|
||||
},
|
||||
"sourceType": "script",
|
||||
"interpreter": null,
|
||||
"body": [
|
||||
{
|
||||
"type": "IfStatement",
|
||||
"start": 0,
|
||||
"end": 39,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 0
|
||||
},
|
||||
"end": {
|
||||
"line": 4,
|
||||
"column": 1
|
||||
}
|
||||
},
|
||||
"test": {
|
||||
"type": "BooleanLiteral",
|
||||
"start": 4,
|
||||
"end": 9,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 4
|
||||
},
|
||||
"end": {
|
||||
"line": 1,
|
||||
"column": 9
|
||||
}
|
||||
},
|
||||
"value": false
|
||||
},
|
||||
"consequent": {
|
||||
"type": "BlockStatement",
|
||||
"start": 11,
|
||||
"end": 39,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 11
|
||||
},
|
||||
"end": {
|
||||
"line": 4,
|
||||
"column": 1
|
||||
}
|
||||
},
|
||||
"body": [
|
||||
{
|
||||
"type": "LabeledStatement",
|
||||
"start": 17,
|
||||
"end": 23,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 4
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 10
|
||||
}
|
||||
},
|
||||
"body": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 20,
|
||||
"end": 23,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 7
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 10
|
||||
}
|
||||
},
|
||||
"expression": {
|
||||
"type": "Identifier",
|
||||
"start": 20,
|
||||
"end": 23,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 7
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 10
|
||||
},
|
||||
"identifierName": "let"
|
||||
},
|
||||
"name": "let"
|
||||
}
|
||||
},
|
||||
"label": {
|
||||
"type": "Identifier",
|
||||
"start": 17,
|
||||
"end": 18,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 4
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 5
|
||||
},
|
||||
"identifierName": "L"
|
||||
},
|
||||
"name": "L"
|
||||
},
|
||||
"trailingComments": [
|
||||
{
|
||||
"type": "CommentLine",
|
||||
"value": " ASI",
|
||||
"start": 24,
|
||||
"end": 30,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 11
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 17
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "BlockStatement",
|
||||
"start": 35,
|
||||
"end": 37,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 3,
|
||||
"column": 4
|
||||
},
|
||||
"end": {
|
||||
"line": 3,
|
||||
"column": 6
|
||||
}
|
||||
},
|
||||
"body": [],
|
||||
"directives": [],
|
||||
"leadingComments": [
|
||||
{
|
||||
"type": "CommentLine",
|
||||
"value": " ASI",
|
||||
"start": 24,
|
||||
"end": 30,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 11
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 17
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"directives": []
|
||||
},
|
||||
"alternate": null
|
||||
}
|
||||
],
|
||||
"directives": []
|
||||
},
|
||||
"comments": [
|
||||
{
|
||||
"type": "CommentLine",
|
||||
"value": " ASI",
|
||||
"start": 24,
|
||||
"end": 30,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 11
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 17
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
2
packages/babel-parser/test/fixtures/es2015/let/let-with-linebreak-arr-dstrk/input.js
vendored
Normal file
2
packages/babel-parser/test/fixtures/es2015/let/let-with-linebreak-arr-dstrk/input.js
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
let
|
||||
[a] = [1];
|
||||
139
packages/babel-parser/test/fixtures/es2015/let/let-with-linebreak-arr-dstrk/output.json
vendored
Normal file
139
packages/babel-parser/test/fixtures/es2015/let/let-with-linebreak-arr-dstrk/output.json
vendored
Normal file
@ -0,0 +1,139 @@
|
||||
{
|
||||
"type": "File",
|
||||
"start": 0,
|
||||
"end": 18,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 0
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 14
|
||||
}
|
||||
},
|
||||
"program": {
|
||||
"type": "Program",
|
||||
"start": 0,
|
||||
"end": 18,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 0
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 14
|
||||
}
|
||||
},
|
||||
"sourceType": "script",
|
||||
"interpreter": null,
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 18,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 0
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 14
|
||||
}
|
||||
},
|
||||
"declarations": [
|
||||
{
|
||||
"type": "VariableDeclarator",
|
||||
"start": 8,
|
||||
"end": 17,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 4
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 13
|
||||
}
|
||||
},
|
||||
"id": {
|
||||
"type": "ArrayPattern",
|
||||
"start": 8,
|
||||
"end": 11,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 4
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 7
|
||||
}
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"type": "Identifier",
|
||||
"start": 9,
|
||||
"end": 10,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 5
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 6
|
||||
},
|
||||
"identifierName": "a"
|
||||
},
|
||||
"name": "a"
|
||||
}
|
||||
]
|
||||
},
|
||||
"init": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 14,
|
||||
"end": 17,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 10
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 13
|
||||
}
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"type": "NumericLiteral",
|
||||
"start": 15,
|
||||
"end": 16,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 11
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 12
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"rawValue": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"value": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"kind": "let"
|
||||
}
|
||||
],
|
||||
"directives": []
|
||||
}
|
||||
}
|
||||
2
packages/babel-parser/test/fixtures/es2015/let/let-with-linebreak-obj-dstrk/input.js
vendored
Normal file
2
packages/babel-parser/test/fixtures/es2015/let/let-with-linebreak-obj-dstrk/input.js
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
let
|
||||
{ a } = { a: 1 };
|
||||
212
packages/babel-parser/test/fixtures/es2015/let/let-with-linebreak-obj-dstrk/output.json
vendored
Normal file
212
packages/babel-parser/test/fixtures/es2015/let/let-with-linebreak-obj-dstrk/output.json
vendored
Normal file
@ -0,0 +1,212 @@
|
||||
{
|
||||
"type": "File",
|
||||
"start": 0,
|
||||
"end": 25,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 0
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 21
|
||||
}
|
||||
},
|
||||
"program": {
|
||||
"type": "Program",
|
||||
"start": 0,
|
||||
"end": 25,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 0
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 21
|
||||
}
|
||||
},
|
||||
"sourceType": "script",
|
||||
"interpreter": null,
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 25,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 0
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 21
|
||||
}
|
||||
},
|
||||
"declarations": [
|
||||
{
|
||||
"type": "VariableDeclarator",
|
||||
"start": 8,
|
||||
"end": 24,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 4
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 20
|
||||
}
|
||||
},
|
||||
"id": {
|
||||
"type": "ObjectPattern",
|
||||
"start": 8,
|
||||
"end": 13,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 4
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 9
|
||||
}
|
||||
},
|
||||
"properties": [
|
||||
{
|
||||
"type": "ObjectProperty",
|
||||
"start": 10,
|
||||
"end": 11,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 6
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 7
|
||||
}
|
||||
},
|
||||
"method": false,
|
||||
"key": {
|
||||
"type": "Identifier",
|
||||
"start": 10,
|
||||
"end": 11,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 6
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 7
|
||||
},
|
||||
"identifierName": "a"
|
||||
},
|
||||
"name": "a"
|
||||
},
|
||||
"computed": false,
|
||||
"shorthand": true,
|
||||
"value": {
|
||||
"type": "Identifier",
|
||||
"start": 10,
|
||||
"end": 11,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 6
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 7
|
||||
},
|
||||
"identifierName": "a"
|
||||
},
|
||||
"name": "a"
|
||||
},
|
||||
"extra": {
|
||||
"shorthand": true
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"init": {
|
||||
"type": "ObjectExpression",
|
||||
"start": 16,
|
||||
"end": 24,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 12
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 20
|
||||
}
|
||||
},
|
||||
"properties": [
|
||||
{
|
||||
"type": "ObjectProperty",
|
||||
"start": 18,
|
||||
"end": 22,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 14
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 18
|
||||
}
|
||||
},
|
||||
"method": false,
|
||||
"key": {
|
||||
"type": "Identifier",
|
||||
"start": 18,
|
||||
"end": 19,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 14
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 15
|
||||
},
|
||||
"identifierName": "a"
|
||||
},
|
||||
"name": "a"
|
||||
},
|
||||
"computed": false,
|
||||
"shorthand": false,
|
||||
"value": {
|
||||
"type": "NumericLiteral",
|
||||
"start": 21,
|
||||
"end": 22,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 17
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 18
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"rawValue": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"value": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"kind": "let"
|
||||
}
|
||||
],
|
||||
"directives": []
|
||||
}
|
||||
}
|
||||
2
packages/babel-parser/test/fixtures/es2015/let/let-with-linebreak/input.js
vendored
Normal file
2
packages/babel-parser/test/fixtures/es2015/let/let-with-linebreak/input.js
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
let
|
||||
a;
|
||||
86
packages/babel-parser/test/fixtures/es2015/let/let-with-linebreak/output.json
vendored
Normal file
86
packages/babel-parser/test/fixtures/es2015/let/let-with-linebreak/output.json
vendored
Normal file
@ -0,0 +1,86 @@
|
||||
{
|
||||
"type": "File",
|
||||
"start": 0,
|
||||
"end": 10,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 0
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 6
|
||||
}
|
||||
},
|
||||
"program": {
|
||||
"type": "Program",
|
||||
"start": 0,
|
||||
"end": 10,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 0
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 6
|
||||
}
|
||||
},
|
||||
"sourceType": "script",
|
||||
"interpreter": null,
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 10,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 0
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 6
|
||||
}
|
||||
},
|
||||
"declarations": [
|
||||
{
|
||||
"type": "VariableDeclarator",
|
||||
"start": 8,
|
||||
"end": 9,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 4
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 5
|
||||
}
|
||||
},
|
||||
"id": {
|
||||
"type": "Identifier",
|
||||
"start": 8,
|
||||
"end": 9,
|
||||
"loc": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 4
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 5
|
||||
},
|
||||
"identifierName": "a"
|
||||
},
|
||||
"name": "a"
|
||||
},
|
||||
"init": null
|
||||
}
|
||||
],
|
||||
"kind": "let"
|
||||
}
|
||||
],
|
||||
"directives": []
|
||||
}
|
||||
}
|
||||
@ -1,3 +1,3 @@
|
||||
{
|
||||
"throws": "Invalid labeled declaration (1:5)"
|
||||
"throws": "Unexpected token (1:5)"
|
||||
}
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
{
|
||||
"throws": "Invalid labeled declaration (1:5)"
|
||||
"throws": "Unexpected token (1:5)"
|
||||
}
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
{
|
||||
"throws": "Invalid labeled declaration (1:5)"
|
||||
"throws": "Function declaration not allowed in this context (1:5)"
|
||||
}
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
{
|
||||
"throws": "Invalid labeled declaration (1:5)"
|
||||
"throws": "Unexpected token (1:5)"
|
||||
}
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
{
|
||||
"throws": "Invalid labeled declaration (1:35)"
|
||||
"throws": "Function declaration not allowed in this context (1:35)"
|
||||
}
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
{
|
||||
"throws": "Invalid labeled declaration (1:5)"
|
||||
"throws": "Unexpected token, expected \";\" (1:9)"
|
||||
}
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
{
|
||||
"throws": "Unexpected token (1:7)"
|
||||
"throws": "Unexpected token, expected \";\" (1:11)"
|
||||
}
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
{
|
||||
"throws": "Unexpected token (1:9)"
|
||||
"throws": "Unexpected token, expected \";\" (1:13)"
|
||||
}
|
||||
|
||||
@ -1,183 +1,3 @@
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-block-scoping.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-existing-block-fn-no-init.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-existing-block-fn-update.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-existing-fn-no-init.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-existing-fn-update.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-existing-var-no-init.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-existing-var-update.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-init.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-no-skip-try.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-skip-dft-param.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-block.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-for-in.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-for-of.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-for.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-switch.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-try.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-skip-param.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-a-func-update.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-block-scoping.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-existing-block-fn-no-init.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-existing-block-fn-update.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-existing-fn-no-init.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-existing-fn-update.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-existing-var-no-init.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-existing-var-update.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-init.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-no-skip-try.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-skip-dft-param.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-block.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-for-in.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-for-of.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-for.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-switch.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-try.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-skip-param.js(default)
|
||||
annexB/language/function-code/if-decl-else-decl-b-func-update.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-block-scoping.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-existing-block-fn-no-init.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-existing-block-fn-update.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-existing-fn-no-init.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-existing-fn-update.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-existing-var-no-init.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-existing-var-update.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-init.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-no-skip-try.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-skip-dft-param.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-block.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-for-in.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-for-of.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-for.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-switch.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-try.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-skip-early-err.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-skip-param.js(default)
|
||||
annexB/language/function-code/if-decl-else-stmt-func-update.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-block-scoping.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-existing-block-fn-no-init.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-existing-block-fn-update.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-existing-fn-no-init.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-existing-fn-update.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-existing-var-no-init.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-existing-var-update.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-init.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-no-skip-try.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-skip-dft-param.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-skip-early-err-block.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-skip-early-err-for-in.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-skip-early-err-for-of.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-skip-early-err-for.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-skip-early-err-switch.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-skip-early-err-try.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-skip-early-err.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-skip-param.js(default)
|
||||
annexB/language/function-code/if-decl-no-else-func-update.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-block-scoping.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-existing-block-fn-no-init.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-existing-block-fn-update.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-existing-fn-no-init.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-existing-fn-update.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-existing-var-no-init.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-existing-var-update.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-init.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-no-skip-try.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-skip-dft-param.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-block.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-for-in.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-for-of.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-for.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-switch.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-try.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-skip-early-err.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-skip-param.js(default)
|
||||
annexB/language/function-code/if-stmt-else-decl-func-update.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-block-scoping.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-existing-block-fn-no-init.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-existing-block-fn-update.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-existing-fn-no-init.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-existing-fn-update.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-existing-var-no-init.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-existing-var-update.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-init.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-no-skip-try.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-block.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-for-in.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-for-of.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-for.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-switch.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-try.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-a-global-update.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-block-scoping.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-existing-block-fn-no-init.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-existing-block-fn-update.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-existing-fn-no-init.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-existing-fn-update.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-existing-var-no-init.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-existing-var-update.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-init.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-no-skip-try.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-block.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-for-in.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-for-of.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-for.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-switch.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-try.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err.js(default)
|
||||
annexB/language/global-code/if-decl-else-decl-b-global-update.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-block-scoping.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-existing-block-fn-no-init.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-existing-block-fn-update.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-existing-fn-no-init.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-existing-fn-update.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-existing-var-no-init.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-existing-var-update.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-init.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-no-skip-try.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-block.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-for-in.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-for-of.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-for.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-switch.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-try.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-skip-early-err.js(default)
|
||||
annexB/language/global-code/if-decl-else-stmt-global-update.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-block-scoping.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-existing-block-fn-no-init.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-existing-block-fn-update.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-existing-fn-no-init.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-existing-fn-update.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-existing-var-no-init.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-existing-var-update.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-init.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-no-skip-try.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-skip-early-err-block.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-skip-early-err-for-in.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-skip-early-err-for-of.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-skip-early-err-for.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-skip-early-err-switch.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-skip-early-err-try.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-skip-early-err.js(default)
|
||||
annexB/language/global-code/if-decl-no-else-global-update.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-block-scoping.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-existing-block-fn-no-init.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-existing-block-fn-update.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-existing-fn-no-init.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-existing-fn-update.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-existing-var-no-init.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-existing-var-update.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-init.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-no-skip-try.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-block.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-for-in.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-for-of.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-for.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-switch.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-try.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-skip-early-err.js(default)
|
||||
annexB/language/global-code/if-stmt-else-decl-global-update.js(default)
|
||||
annexB/language/statements/for-in/bare-initializer.js(default)
|
||||
annexB/language/statements/for-in/bare-initializer.js(strict mode)
|
||||
built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F-negated.js(default)
|
||||
@ -1165,7 +985,6 @@ language/statements/for/head-let-bound-names-in-stmt.js(default)
|
||||
language/statements/for/head-let-bound-names-in-stmt.js(strict mode)
|
||||
language/statements/function/dflt-params-duplicates.js(default)
|
||||
language/statements/generators/dflt-params-duplicates.js(default)
|
||||
language/statements/labeled/let-identifier-with-newline.js(default)
|
||||
language/statements/let/redeclaration-error-from-within-strict-mode-function.js(default)
|
||||
language/statements/switch/syntax/redeclaration/async-function-name-redeclaration-attempt-with-async-function.js(default)
|
||||
language/statements/switch/syntax/redeclaration/async-function-name-redeclaration-attempt-with-async-function.js(strict mode)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user