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");
|
return this.finishNode(node, "InterpreterDirective");
|
||||||
}
|
}
|
||||||
|
|
||||||
isLet(declaration?: boolean): boolean {
|
isLet(context: ?string): boolean {
|
||||||
if (!this.isContextual("let")) {
|
if (!this.isContextual("let")) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -85,20 +85,16 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
// $FlowIgnore
|
// $FlowIgnore
|
||||||
const next = this.state.pos + skip[0].length;
|
const next = this.state.pos + skip[0].length;
|
||||||
const nextCh = this.state.input.charCodeAt(next);
|
const nextCh = this.state.input.charCodeAt(next);
|
||||||
if (
|
// For ambiguous cases, determine if a LexicalDeclaration (or only a
|
||||||
(nextCh === charCodes.leftCurlyBrace &&
|
// Statement) is allowed here. If context is not empty then only a Statement
|
||||||
!lineBreak.test(this.state.input.slice(this.state.end, next))) ||
|
// is allowed. However, `let [` is an explicit negative lookahead for
|
||||||
nextCh === charCodes.leftSquareBracket
|
// ExpressionStatement, so special-case it first.
|
||||||
) {
|
if (nextCh === charCodes.leftSquareBracket) return true;
|
||||||
return true;
|
if (context) return false;
|
||||||
}
|
|
||||||
|
if (nextCh === charCodes.leftCurlyBrace) return true;
|
||||||
|
|
||||||
if (isIdentifierStart(nextCh)) {
|
if (isIdentifierStart(nextCh)) {
|
||||||
if (
|
|
||||||
!declaration &&
|
|
||||||
lineBreak.test(this.state.input.slice(this.state.end, next))
|
|
||||||
) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
let pos = next + 1;
|
let pos = next + 1;
|
||||||
while (isIdentifierChar(this.state.input.charCodeAt(pos))) {
|
while (isIdentifierChar(this.state.input.charCodeAt(pos))) {
|
||||||
++pos;
|
++pos;
|
||||||
@ -116,19 +112,19 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
// `if (foo) /blah/.exec(foo)`, where looking at the previous token
|
// `if (foo) /blah/.exec(foo)`, where looking at the previous token
|
||||||
// does not help.
|
// does not help.
|
||||||
|
|
||||||
parseStatement(declaration: boolean, topLevel?: boolean): N.Statement {
|
parseStatement(context: ?string, topLevel?: boolean): N.Statement {
|
||||||
if (this.match(tt.at)) {
|
if (this.match(tt.at)) {
|
||||||
this.parseDecorators(true);
|
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;
|
let starttype = this.state.type;
|
||||||
const node = this.startNode();
|
const node = this.startNode();
|
||||||
let kind;
|
let kind;
|
||||||
|
|
||||||
if (this.isLet(declaration)) {
|
if (this.isLet(context)) {
|
||||||
starttype = tt._var;
|
starttype = tt._var;
|
||||||
kind = "let";
|
kind = "let";
|
||||||
}
|
}
|
||||||
@ -148,18 +144,28 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
return this.parseDoStatement(node);
|
return this.parseDoStatement(node);
|
||||||
case tt._for:
|
case tt._for:
|
||||||
return this.parseForStatement(node);
|
return this.parseForStatement(node);
|
||||||
case tt._function:
|
case tt._function: {
|
||||||
if (this.lookahead().type === tt.dot) break;
|
if (this.lookahead().type === tt.dot) break;
|
||||||
if (!declaration) {
|
if (
|
||||||
|
context &&
|
||||||
|
(this.state.strict || (context !== "if" && context !== "label"))
|
||||||
|
) {
|
||||||
this.raise(
|
this.raise(
|
||||||
this.state.start,
|
this.state.start,
|
||||||
"Function declaration not allowed in this context",
|
"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:
|
case tt._class:
|
||||||
if (!declaration) this.unexpected();
|
if (context) this.unexpected();
|
||||||
return this.parseClass(node, true);
|
return this.parseClass(node, true);
|
||||||
|
|
||||||
case tt._if:
|
case tt._if:
|
||||||
@ -176,7 +182,7 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
case tt._const:
|
case tt._const:
|
||||||
case tt._var:
|
case tt._var:
|
||||||
kind = kind || this.state.value;
|
kind = kind || this.state.value;
|
||||||
if (!declaration && kind !== "var") this.unexpected();
|
if (context && kind !== "var") this.unexpected();
|
||||||
return this.parseVarStatement(node, kind);
|
return this.parseVarStatement(node, kind);
|
||||||
|
|
||||||
case tt._while:
|
case tt._while:
|
||||||
@ -237,7 +243,7 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
const state = this.state.clone();
|
const state = this.state.clone();
|
||||||
this.next();
|
this.next();
|
||||||
if (this.match(tt._function) && !this.canInsertSemicolon()) {
|
if (this.match(tt._function) && !this.canInsertSemicolon()) {
|
||||||
if (!declaration) {
|
if (context) {
|
||||||
this.raise(
|
this.raise(
|
||||||
this.state.lastTokStart,
|
this.state.lastTokStart,
|
||||||
"Function declaration not allowed in this context",
|
"Function declaration not allowed in this context",
|
||||||
@ -264,7 +270,7 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
expr.type === "Identifier" &&
|
expr.type === "Identifier" &&
|
||||||
this.eat(tt.colon)
|
this.eat(tt.colon)
|
||||||
) {
|
) {
|
||||||
return this.parseLabeledStatement(node, maybeName, expr, declaration);
|
return this.parseLabeledStatement(node, maybeName, expr, context);
|
||||||
} else {
|
} else {
|
||||||
return this.parseExpressionStatement(node, expr);
|
return this.parseExpressionStatement(node, expr);
|
||||||
}
|
}
|
||||||
@ -430,7 +436,7 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
// outside of the loop body.
|
// outside of the loop body.
|
||||||
this.withTopicForbiddingContext(() =>
|
this.withTopicForbiddingContext(() =>
|
||||||
// Parse the loop body's body.
|
// Parse the loop body's body.
|
||||||
this.parseStatement(false),
|
this.parseStatement("do"),
|
||||||
);
|
);
|
||||||
|
|
||||||
this.state.labels.pop();
|
this.state.labels.pop();
|
||||||
@ -526,8 +532,8 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
parseIfStatement(node: N.IfStatement): N.IfStatement {
|
parseIfStatement(node: N.IfStatement): N.IfStatement {
|
||||||
this.next();
|
this.next();
|
||||||
node.test = this.parseParenExpression();
|
node.test = this.parseParenExpression();
|
||||||
node.consequent = this.parseStatement(false);
|
node.consequent = this.parseStatement("if");
|
||||||
node.alternate = this.eat(tt._else) ? this.parseStatement(false) : null;
|
node.alternate = this.eat(tt._else) ? this.parseStatement("if") : null;
|
||||||
return this.finishNode(node, "IfStatement");
|
return this.finishNode(node, "IfStatement");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -583,7 +589,7 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
this.expect(tt.colon);
|
this.expect(tt.colon);
|
||||||
} else {
|
} else {
|
||||||
if (cur) {
|
if (cur) {
|
||||||
cur.consequent.push(this.parseStatement(true));
|
cur.consequent.push(this.parseStatement(null));
|
||||||
} else {
|
} else {
|
||||||
this.unexpected();
|
this.unexpected();
|
||||||
}
|
}
|
||||||
@ -672,7 +678,7 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
// They are permitted in test expressions, outside of the loop body.
|
// They are permitted in test expressions, outside of the loop body.
|
||||||
this.withTopicForbiddingContext(() =>
|
this.withTopicForbiddingContext(() =>
|
||||||
// Parse loop body.
|
// Parse loop body.
|
||||||
this.parseStatement(false),
|
this.parseStatement("while"),
|
||||||
);
|
);
|
||||||
|
|
||||||
this.state.labels.pop();
|
this.state.labels.pop();
|
||||||
@ -694,7 +700,7 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
// part of the outer context, outside of the function body.
|
// part of the outer context, outside of the function body.
|
||||||
this.withTopicForbiddingContext(() =>
|
this.withTopicForbiddingContext(() =>
|
||||||
// Parse the statement body.
|
// Parse the statement body.
|
||||||
this.parseStatement(false),
|
this.parseStatement("with"),
|
||||||
);
|
);
|
||||||
|
|
||||||
return this.finishNode(node, "WithStatement");
|
return this.finishNode(node, "WithStatement");
|
||||||
@ -709,7 +715,7 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
node: N.LabeledStatement,
|
node: N.LabeledStatement,
|
||||||
maybeName: string,
|
maybeName: string,
|
||||||
expr: N.Identifier,
|
expr: N.Identifier,
|
||||||
declaration: boolean,
|
context: ?string,
|
||||||
): N.LabeledStatement {
|
): N.LabeledStatement {
|
||||||
for (const label of this.state.labels) {
|
for (const label of this.state.labels) {
|
||||||
if (label.name === maybeName) {
|
if (label.name === maybeName) {
|
||||||
@ -737,16 +743,13 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
kind: kind,
|
kind: kind,
|
||||||
statementStart: this.state.start,
|
statementStart: this.state.start,
|
||||||
});
|
});
|
||||||
node.body = this.parseStatement(declaration);
|
node.body = this.parseStatement(
|
||||||
|
context
|
||||||
if (
|
? context.indexOf("label") === -1
|
||||||
node.body.type === "ClassDeclaration" ||
|
? context + "label"
|
||||||
(node.body.type === "VariableDeclaration" && node.body.kind !== "var") ||
|
: context
|
||||||
(node.body.type === "FunctionDeclaration" &&
|
: "label",
|
||||||
(this.state.strict || node.body.generator || node.body.async))
|
);
|
||||||
) {
|
|
||||||
this.raise(node.body.start, "Invalid labeled declaration");
|
|
||||||
}
|
|
||||||
|
|
||||||
this.state.labels.pop();
|
this.state.labels.pop();
|
||||||
node.label = expr;
|
node.label = expr;
|
||||||
@ -813,7 +816,7 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
octalPosition = this.state.octalPosition;
|
octalPosition = this.state.octalPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
const stmt = this.parseStatement(true, topLevel);
|
const stmt = this.parseStatement(null, topLevel);
|
||||||
|
|
||||||
if (directives && !parsedNonDirective && this.isValidDirective(stmt)) {
|
if (directives && !parsedNonDirective && this.isValidDirective(stmt)) {
|
||||||
const directive = this.stmtToDirective(stmt);
|
const directive = this.stmtToDirective(stmt);
|
||||||
@ -861,7 +864,7 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
// outside of the loop body.
|
// outside of the loop body.
|
||||||
this.withTopicForbiddingContext(() =>
|
this.withTopicForbiddingContext(() =>
|
||||||
// Parse the loop body.
|
// Parse the loop body.
|
||||||
this.parseStatement(false),
|
this.parseStatement("for"),
|
||||||
);
|
);
|
||||||
|
|
||||||
this.state.labels.pop();
|
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.
|
// They are permitted in test expressions, outside of the loop body.
|
||||||
this.withTopicForbiddingContext(() =>
|
this.withTopicForbiddingContext(() =>
|
||||||
// Parse loop body.
|
// Parse loop body.
|
||||||
this.parseStatement(false),
|
this.parseStatement("for"),
|
||||||
);
|
);
|
||||||
|
|
||||||
this.state.labels.pop();
|
this.state.labels.pop();
|
||||||
@ -1700,7 +1703,7 @@ export default class StatementParser extends ExpressionParser {
|
|||||||
|
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {
|
parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {
|
||||||
return this.parseStatement(true);
|
return this.parseStatement(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
isExportDefaultSpecifier(): boolean {
|
isExportDefaultSpecifier(): boolean {
|
||||||
|
|||||||
@ -1566,7 +1566,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
|
|||||||
}
|
}
|
||||||
|
|
||||||
// interfaces
|
// 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
|
// strict mode handling of `interface` since it's a reserved word
|
||||||
if (
|
if (
|
||||||
this.state.strict &&
|
this.state.strict &&
|
||||||
@ -1577,7 +1577,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
|
|||||||
this.next();
|
this.next();
|
||||||
return this.flowParseInterface(node);
|
return this.flowParseInterface(node);
|
||||||
} else {
|
} 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.
|
// We will parse a flow pragma in any comment before the first statement.
|
||||||
if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {
|
if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {
|
||||||
this.flowPragma = null;
|
this.flowPragma = null;
|
||||||
|
|||||||
@ -1699,10 +1699,7 @@ export default (superClass: Class<Parser>): Class<Parser> =>
|
|||||||
return super.parseExportDefaultExpression();
|
return super.parseExportDefaultExpression();
|
||||||
}
|
}
|
||||||
|
|
||||||
parseStatementContent(
|
parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {
|
||||||
declaration: boolean,
|
|
||||||
topLevel: ?boolean,
|
|
||||||
): N.Statement {
|
|
||||||
if (this.state.type === tt._const) {
|
if (this.state.type === tt._const) {
|
||||||
const ahead = this.lookahead();
|
const ahead = this.lookahead();
|
||||||
if (ahead.type === tt.name && ahead.value === "enum") {
|
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 this.tsParseEnumDeclaration(node, /* isConst */ true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return super.parseStatementContent(declaration, topLevel);
|
return super.parseStatementContent(context, topLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
parseAccessModifier(): ?N.Accessibility {
|
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(default)
|
||||||
annexB/language/statements/for-in/bare-initializer.js(strict mode)
|
annexB/language/statements/for-in/bare-initializer.js(strict mode)
|
||||||
built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F-negated.js(default)
|
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/for/head-let-bound-names-in-stmt.js(strict mode)
|
||||||
language/statements/function/dflt-params-duplicates.js(default)
|
language/statements/function/dflt-params-duplicates.js(default)
|
||||||
language/statements/generators/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/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(default)
|
||||||
language/statements/switch/syntax/redeclaration/async-function-name-redeclaration-attempt-with-async-function.js(strict mode)
|
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