diff --git a/.eslintrc b/.eslintrc index 22749b4b7c..6acf2455fa 100644 --- a/.eslintrc +++ b/.eslintrc @@ -5,7 +5,8 @@ "prettier" ], "rules": { - "prettier/prettier": ["error", { "trailingComma": "all" }] + "prettier/prettier": ["error", { "trailingComma": "all" }], + "no-case-declarations": "error" }, "env": { "node": true diff --git a/src/parser/expression.js b/src/parser/expression.js index df41e064f5..642bffa83c 100644 --- a/src/parser/expression.js +++ b/src/parser/expression.js @@ -433,12 +433,7 @@ export default class ExpressionParser extends LValParser { noCalls, ); } else if (this.match(tt.questionDot)) { - if (!this.hasPlugin("optionalChaining")) { - this.raise( - startPos, - "You can only use optional-chaining when the 'optionalChaining' plugin is enabled.", - ); - } + this.expectPlugin("optionalChaining"); if (noCalls && this.lookahead().type == tt.parenL) { state.stop = true; @@ -660,11 +655,11 @@ export default class ExpressionParser extends LValParser { return this.finishNode(node, "Super"); case tt._import: - if (this.hasPlugin("importMeta") && this.lookahead().type === tt.dot) { + if (this.lookahead().type === tt.dot) { return this.parseImportMetaProperty(); } - if (!this.hasPlugin("dynamicImport")) this.unexpected(); + this.expectPlugin("dynamicImport"); node = this.startNode(); this.next(); @@ -681,7 +676,7 @@ export default class ExpressionParser extends LValParser { case tt._yield: if (this.state.inGenerator) this.unexpected(); - case tt.name: + case tt.name: { node = this.startNode(); const allowAwait = this.state.value === "await" && this.state.inAsync; const allowYield = this.shouldAllowYieldIdentifier(); @@ -710,27 +705,29 @@ export default class ExpressionParser extends LValParser { } return id; + } - case tt._do: - if (this.hasPlugin("doExpressions")) { - const node = this.startNode(); - this.next(); - const oldInFunction = this.state.inFunction; - const oldLabels = this.state.labels; - this.state.labels = []; - this.state.inFunction = false; - node.body = this.parseBlock(false); - this.state.inFunction = oldInFunction; - this.state.labels = oldLabels; - return this.finishNode(node, "DoExpression"); - } + case tt._do: { + this.expectPlugin("doExpressions"); + const node = this.startNode(); + this.next(); + const oldInFunction = this.state.inFunction; + const oldLabels = this.state.labels; + this.state.labels = []; + this.state.inFunction = false; + node.body = this.parseBlock(false); + this.state.inFunction = oldInFunction; + this.state.labels = oldLabels; + return this.finishNode(node, "DoExpression"); + } - case tt.regexp: + case tt.regexp: { const value = this.state.value; node = this.parseLiteral(value.value, "RegExpLiteral"); node.pattern = value.pattern; node.flags = value.flags; return node; + } case tt.num: return this.parseLiteral(this.state.value, "NumericLiteral"); @@ -784,7 +781,7 @@ export default class ExpressionParser extends LValParser { case tt.backQuote: return this.parseTemplate(false); - case tt.doubleColon: + case tt.doubleColon: { node = this.startNode(); this.next(); node.object = null; @@ -797,6 +794,7 @@ export default class ExpressionParser extends LValParser { "Binding should be performed on object property.", ); } + } default: throw this.unexpected(); @@ -825,11 +823,7 @@ export default class ExpressionParser extends LValParser { parseFunctionExpression(): N.FunctionExpression | N.MetaProperty { const node = this.startNode(); const meta = this.parseIdentifier(true); - if ( - this.state.inGenerator && - this.hasPlugin("functionSent") && - this.eat(tt.dot) - ) { + if (this.state.inGenerator && this.eat(tt.dot)) { return this.parseMetaProperty(node, meta, "sent"); } return this.parseFunction(node, false); @@ -841,6 +835,16 @@ export default class ExpressionParser extends LValParser { propertyName: string, ): N.MetaProperty { node.meta = meta; + + if (meta.name === "function" && propertyName === "sent") { + if (this.isContextual(propertyName)) { + this.expectPlugin("functionSent"); + } else if (!this.hasPlugin("functionSent")) { + // They didn't actually say `function.sent`, just `function.`, so a simple error would be less confusing. + this.unexpected(); + } + } + node.property = this.parseIdentifier(true); if (node.property.name !== propertyName) { @@ -857,6 +861,18 @@ export default class ExpressionParser extends LValParser { const node = this.startNode(); const id = this.parseIdentifier(true); this.expect(tt.dot); + + if (id.name === "import") { + if (this.isContextual("meta")) { + this.expectPlugin("importMeta"); + } else if (!this.hasPlugin("importMeta")) { + this.raise( + id.start, + `Dynamic imports require a parameter: import('a.js').then`, + ); + } + } + if (!this.inModule) { this.raise( id.start, @@ -1141,7 +1157,8 @@ export default class ExpressionParser extends LValParser { decorators = []; } - if (this.hasPlugin("objectRestSpread") && this.match(tt.ellipsis)) { + if (this.match(tt.ellipsis)) { + this.expectPlugin("objectRestSpread"); prop = this.parseSpread(isPattern ? { start: 0 } : undefined); if (isPattern) { this.toAssignable(prop, true, "object pattern"); @@ -1199,8 +1216,11 @@ export default class ExpressionParser extends LValParser { prop.computed = false; } else { isAsync = true; - if (this.hasPlugin("asyncGenerators")) - isGenerator = this.eat(tt.star); + if (this.match(tt.star)) { + this.expectPlugin("asyncGenerators"); + this.next(); + isGenerator = true; + } this.parsePropertyName(prop); } } else { diff --git a/src/parser/location.js b/src/parser/location.js index a2a6039762..a037632672 100644 --- a/src/parser/location.js +++ b/src/parser/location.js @@ -10,7 +10,11 @@ import CommentsParser from "./comments"; // message. export default class LocationParser extends CommentsParser { - raise(pos: number, message: string): empty { + raise( + pos: number, + message: string, + missingPluginNames?: Array, + ): empty { const loc = getLineInfo(this.input, pos); message += ` (${loc.line}:${loc.column})`; // $FlowIgnore @@ -19,6 +23,9 @@ export default class LocationParser extends CommentsParser { ); err.pos = pos; err.loc = loc; + if (missingPluginNames) { + err.missingPlugin = missingPluginNames; + } throw err; } } diff --git a/src/parser/lval.js b/src/parser/lval.js index d5156a634c..01ab50f485 100644 --- a/src/parser/lval.js +++ b/src/parser/lval.js @@ -69,13 +69,14 @@ export default class LValParser extends NodeUtils { this.toAssignable(node.value, isBinding, contextDescription); break; - case "SpreadElement": + case "SpreadElement": { this.checkToRestConversion(node); node.type = "RestElement"; const arg = node.argument; this.toAssignable(arg, isBinding, contextDescription); break; + } case "ArrayExpression": node.type = "ArrayPattern"; @@ -211,11 +212,12 @@ export default class LValParser extends NodeUtils { case tt.name: return this.parseBindingIdentifier(); - case tt.bracketL: + case tt.bracketL: { const node = this.startNode(); this.next(); node.elements = this.parseBindingList(tt.bracketR, true); return this.finishNode(node, "ArrayPattern"); + } case tt.braceL: return this.parseObj(true); diff --git a/src/parser/statement.js b/src/parser/statement.js index d2bce9dce9..76b5ffcc57 100644 --- a/src/parser/statement.js +++ b/src/parser/statement.js @@ -237,9 +237,7 @@ export default class StatementParser extends ExpressionParser { } parseDecorator(): N.Decorator { - if (!(this.hasPlugin("decorators") || this.hasPlugin("decorators2"))) { - this.unexpected(); - } + this.expectOnePlugin(["decorators", "decorators2"]); const node = this.startNode(); this.next(); @@ -340,11 +338,8 @@ export default class StatementParser extends ExpressionParser { this.state.labels.push(loopLabel); let forAwait = false; - if ( - this.hasPlugin("asyncGenerators") && - this.state.inAsync && - this.isContextual("await") - ) { + if (this.state.inAsync && this.isContextual("await")) { + this.expectPlugin("asyncGenerators"); forAwait = true; this.next(); } @@ -489,12 +484,13 @@ export default class StatementParser extends ExpressionParser { if (this.match(tt._catch)) { const clause = this.startNode(); this.next(); - if (this.match(tt.parenL) || !this.hasPlugin("optionalCatchBinding")) { + if (this.match(tt.parenL)) { this.expect(tt.parenL); clause.param = this.parseBindingAtom(); this.checkLVal(clause.param, true, Object.create(null), "catch clause"); this.expect(tt.parenR); } else { + this.expectPlugin("optionalCatchBinding"); clause.param = null; } clause.body = this.parseBlock(); @@ -782,12 +778,11 @@ export default class StatementParser extends ExpressionParser { this.initFunction(node, isAsync); if (this.match(tt.star)) { - if (node.async && !this.hasPlugin("asyncGenerators")) { - this.unexpected(); - } else { - node.generator = true; - this.next(); + if (node.async) { + this.expectPlugin("asyncGenerators"); } + node.generator = true; + this.next(); } if ( @@ -960,8 +955,9 @@ export default class StatementParser extends ExpressionParser { isStatic = true; } - if (this.hasPlugin("classPrivateProperties") && this.match(tt.hash)) { + if (this.match(tt.hash)) { // Private property + this.expectPlugin("classPrivateProperties"); this.next(); const privateProp: N.ClassPrivateProperty = memberAny; privateProp.key = this.parseIdentifier(true); @@ -1047,8 +1043,12 @@ export default class StatementParser extends ExpressionParser { this.pushClassProperty(classBody, prop); } else if (isSimple && key.name === "async" && !this.isLineTerminator()) { // an async method - const isGenerator = - this.hasPlugin("asyncGenerators") && this.eat(tt.star); + let isGenerator = false; + if (this.match(tt.star)) { + this.expectPlugin("asyncGenerators"); + this.next(); + isGenerator = true; + } method.kind = "method"; this.parsePropertyName(method); if (this.isNonstaticConstructor(method)) { @@ -1151,17 +1151,14 @@ export default class StatementParser extends ExpressionParser { } parseClassProperty(node: N.ClassProperty): N.ClassProperty { - const noPluginMsg = - "You can only use Class Properties when the 'classProperties' plugin is enabled."; - if (!node.typeAnnotation && !this.hasPlugin("classProperties")) { - this.raise(node.start, noPluginMsg); + if (!node.typeAnnotation) { + this.expectPlugin("classProperties"); } this.state.inClassProperty = true; if (this.match(tt.eq)) { - if (!this.hasPlugin("classProperties")) - this.raise(this.state.start, noPluginMsg); + this.expectPlugin("classProperties"); this.next(); node.value = this.parseMaybeAssign(); } else { @@ -1169,6 +1166,7 @@ export default class StatementParser extends ExpressionParser { } this.semicolon(); this.state.inClassProperty = false; + return this.finishNode(node, "ClassProperty"); } diff --git a/src/parser/util.js b/src/parser/util.js index bc789ef993..52587e3322 100644 --- a/src/parser/util.js +++ b/src/parser/util.js @@ -109,4 +109,26 @@ export default class UtilParser extends Tokenizer { } throw this.raise(pos != null ? pos : this.state.start, messageOrType); } + + expectPlugin(name: string): void { + if (!this.hasPlugin(name)) { + throw this.raise( + this.state.start, + `This experimental syntax requires enabling the parser plugin: '${name}'`, + [name], + ); + } + } + + expectOnePlugin(names: Array): void { + if (!names.some(n => this.hasPlugin(n))) { + throw this.raise( + this.state.start, + `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join( + ", ", + )}'`, + names, + ); + } + } } diff --git a/src/plugins/typescript.js b/src/plugins/typescript.js index d99aeaf6cd..7d6971fa73 100644 --- a/src/plugins/typescript.js +++ b/src/plugins/typescript.js @@ -540,7 +540,7 @@ export default (superClass: Class): Class => switch (this.state.type) { case tt.name: case tt._void: - case tt._null: + case tt._null: { const type = this.match(tt._void) ? "TSVoidKeyword" : this.match(tt._null) @@ -552,6 +552,7 @@ export default (superClass: Class): Class => return this.finishNode(node, type); } return this.tsParseTypeReference(); + } case tt.string: case tt.num: case tt._true: @@ -573,13 +574,14 @@ export default (superClass: Class): Class => return this.finishNode(node, "TSLiteralType"); } break; - case tt._this: + case tt._this: { const thisKeyword = this.tsParseThisTypeNode(); if (this.isContextual("is") && !this.hasPrecedingLineBreak()) { return this.tsParseThisTypePredicate(thisKeyword); } else { return thisKeyword; } + } case tt._typeof: return this.tsParseTypeQuery(); case tt.braceL: @@ -1038,13 +1040,14 @@ export default (superClass: Class): Class => case tt._var: case tt._let: return this.parseVarStatement(nany, this.state.type); - case tt.name: + case tt.name: { const value = this.state.value; if (value === "global") { return this.tsParseAmbientExternalModuleDeclaration(nany); } else { return this.tsParseDeclaration(nany, value, /* next */ true); } + } } } @@ -1064,14 +1067,14 @@ export default (superClass: Class): Class => tsParseExpressionStatement(node: any, expr: N.Identifier): ?N.Declaration { switch (expr.name) { - case "declare": + case "declare": { const declaration = this.tsTryParseDeclare(node); if (declaration) { declaration.declare = true; return declaration; } break; - + } case "global": // `global { }` (with no `declare`) may appear inside an ambient module declaration. // Would like to use tsParseAmbientExternalModuleDeclaration here, but already ran past "global". diff --git a/src/tokenizer/index.js b/src/tokenizer/index.js index cb3fd8b57d..f9ece03f80 100644 --- a/src/tokenizer/index.js +++ b/src/tokenizer/index.js @@ -595,11 +595,13 @@ export default class Tokenizer extends LocationParser { ++this.state.pos; return this.finishToken(tt.backQuote); - case 48: // '0' + case 48: { + // '0' const next = this.input.charCodeAt(this.state.pos + 1); if (next === 120 || next === 88) return this.readRadixNumber(16); // '0x', '0X' - hex number if (next === 111 || next === 79) return this.readRadixNumber(8); // '0o', '0O' - octal number if (next === 98 || next === 66) return this.readRadixNumber(2); // '0b', '0B' - binary number + } // Anything else beginning with a digit is an integer, octal // number, or float. case 49: diff --git a/test/fixtures/es2017/async-functions/no-method-asi/options.json b/test/fixtures/es2017/async-functions/no-method-asi/options.json index af38bd1530..7348c12f9e 100644 --- a/test/fixtures/es2017/async-functions/no-method-asi/options.json +++ b/test/fixtures/es2017/async-functions/no-method-asi/options.json @@ -1,3 +1,3 @@ { - "throws": "You can only use Class Properties when the 'classProperties' plugin is enabled. (2:2)" + "throws": "This experimental syntax requires enabling the parser plugin: 'classProperties' (3:2)" } diff --git a/test/fixtures/experimental/async-functions/object-default-params/actual.js b/test/fixtures/es2017/async-functions/object-default-params/actual.js similarity index 100% rename from test/fixtures/experimental/async-functions/object-default-params/actual.js rename to test/fixtures/es2017/async-functions/object-default-params/actual.js diff --git a/test/fixtures/experimental/async-functions/object-default-params/expected.json b/test/fixtures/es2017/async-functions/object-default-params/expected.json similarity index 100% rename from test/fixtures/experimental/async-functions/object-default-params/expected.json rename to test/fixtures/es2017/async-functions/object-default-params/expected.json diff --git a/test/fixtures/experimental/_no-plugin/.bigint/actual.js b/test/fixtures/experimental/_no-plugin/.bigint/actual.js new file mode 100644 index 0000000000..7a5a058e16 --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/.bigint/actual.js @@ -0,0 +1 @@ +1n diff --git a/test/fixtures/experimental/_no-plugin/.bigint/options.json b/test/fixtures/experimental/_no-plugin/.bigint/options.json new file mode 100644 index 0000000000..8e44fabed2 --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/.bigint/options.json @@ -0,0 +1,4 @@ +{ + "throws": "This experimental syntax requires enabling the parser plugin: 'bigInt' (1:1)", + "plugins": [] +} diff --git a/test/fixtures/experimental/_no-plugin/.class-private-properties/actual.js b/test/fixtures/experimental/_no-plugin/.class-private-properties/actual.js new file mode 100644 index 0000000000..07fa01ba84 --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/.class-private-properties/actual.js @@ -0,0 +1,4 @@ +class Point { + #x = 1; + #y = 2; +} diff --git a/test/fixtures/experimental/_no-plugin/.class-private-properties/options.json b/test/fixtures/experimental/_no-plugin/.class-private-properties/options.json new file mode 100644 index 0000000000..85d7fee65f --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/.class-private-properties/options.json @@ -0,0 +1,4 @@ +{ + "throws": "This experimental syntax requires enabling the parser plugin: 'classPrivateProperties' (2:3)", + "plugins": [] +} diff --git a/test/fixtures/experimental/_no-plugin/.export-extensions/actual.js b/test/fixtures/experimental/_no-plugin/.export-extensions/actual.js new file mode 100644 index 0000000000..8493ca5743 --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/.export-extensions/actual.js @@ -0,0 +1 @@ +export A from 'test'; diff --git a/test/fixtures/experimental/_no-plugin/.export-extensions/options.json b/test/fixtures/experimental/_no-plugin/.export-extensions/options.json new file mode 100644 index 0000000000..5c7b8e4dbf --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/.export-extensions/options.json @@ -0,0 +1,4 @@ +{ + "throws": "This experimental syntax requires enabling the parser plugin: 'exportExtensions' (1:1)", + "plugins": [] +} diff --git a/test/fixtures/experimental/_no-plugin/.numeric-separator/actual.js b/test/fixtures/experimental/_no-plugin/.numeric-separator/actual.js new file mode 100644 index 0000000000..ee01ab4260 --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/.numeric-separator/actual.js @@ -0,0 +1 @@ +1_0 diff --git a/test/fixtures/experimental/_no-plugin/.numeric-separator/options.json b/test/fixtures/experimental/_no-plugin/.numeric-separator/options.json new file mode 100644 index 0000000000..6996ba6f15 --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/.numeric-separator/options.json @@ -0,0 +1,4 @@ +{ + "throws": "This experimental syntax requires enabling the parser plugin: 'numericSeparator' (1:17)", + "plugins": [] +} diff --git a/test/fixtures/experimental/no-async-generators/error-without-plugin/actual.js b/test/fixtures/experimental/_no-plugin/async-generators/actual.js similarity index 100% rename from test/fixtures/experimental/no-async-generators/error-without-plugin/actual.js rename to test/fixtures/experimental/_no-plugin/async-generators/actual.js diff --git a/test/fixtures/experimental/_no-plugin/async-generators/options.json b/test/fixtures/experimental/_no-plugin/async-generators/options.json new file mode 100644 index 0000000000..4fbfd38e68 --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/async-generators/options.json @@ -0,0 +1,4 @@ +{ + "throws": "This experimental syntax requires enabling the parser plugin: 'asyncGenerators' (1:15)", + "plugins": [] +} diff --git a/test/fixtures/experimental/class-properties/with-initializer-and-type-no-plugin/actual.js b/test/fixtures/experimental/_no-plugin/class-properties-with-initializer-and-type/actual.js similarity index 100% rename from test/fixtures/experimental/class-properties/with-initializer-and-type-no-plugin/actual.js rename to test/fixtures/experimental/_no-plugin/class-properties-with-initializer-and-type/actual.js diff --git a/test/fixtures/experimental/_no-plugin/class-properties-with-initializer-and-type/options.json b/test/fixtures/experimental/_no-plugin/class-properties-with-initializer-and-type/options.json new file mode 100644 index 0000000000..a4e85bf033 --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/class-properties-with-initializer-and-type/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["flow"], + "throws": "This experimental syntax requires enabling the parser plugin: 'classProperties' (2:14)" +} diff --git a/test/fixtures/experimental/class-properties/with-initializer-missing-plugin/actual.js b/test/fixtures/experimental/_no-plugin/class-properties-with-initializer/actual.js similarity index 100% rename from test/fixtures/experimental/class-properties/with-initializer-missing-plugin/actual.js rename to test/fixtures/experimental/_no-plugin/class-properties-with-initializer/actual.js diff --git a/test/fixtures/experimental/_no-plugin/class-properties-with-initializer/options.json b/test/fixtures/experimental/_no-plugin/class-properties-with-initializer/options.json new file mode 100644 index 0000000000..aaa6e80686 --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/class-properties-with-initializer/options.json @@ -0,0 +1,4 @@ +{ + "throws": "This experimental syntax requires enabling the parser plugin: 'classProperties' (2:6)", + "plugins": [] +} diff --git a/test/fixtures/experimental/class-properties/without-initializer-missing-plugin/actual.js b/test/fixtures/experimental/_no-plugin/class-properties-without-initializer/actual.js similarity index 100% rename from test/fixtures/experimental/class-properties/without-initializer-missing-plugin/actual.js rename to test/fixtures/experimental/_no-plugin/class-properties-without-initializer/actual.js diff --git a/test/fixtures/experimental/_no-plugin/class-properties-without-initializer/options.json b/test/fixtures/experimental/_no-plugin/class-properties-without-initializer/options.json new file mode 100644 index 0000000000..bbec0b1850 --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/class-properties-without-initializer/options.json @@ -0,0 +1,4 @@ +{ + "throws": "This experimental syntax requires enabling the parser plugin: 'classProperties' (2:5)", + "plugins": [] +} diff --git a/test/fixtures/experimental/_no-plugin/decorators/actual.js b/test/fixtures/experimental/_no-plugin/decorators/actual.js new file mode 100644 index 0000000000..9dea56e7ca --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/decorators/actual.js @@ -0,0 +1,2 @@ +@memoize +function() {} diff --git a/test/fixtures/experimental/_no-plugin/decorators/options.json b/test/fixtures/experimental/_no-plugin/decorators/options.json new file mode 100644 index 0000000000..d7fe449b7a --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/decorators/options.json @@ -0,0 +1,4 @@ +{ + "throws": "This experimental syntax requires enabling one of the following parser plugin(s): 'decorators, decorators2' (1:0)", + "plugins": [] +} diff --git a/test/fixtures/experimental/_no-plugin/do-expressions/actual.js b/test/fixtures/experimental/_no-plugin/do-expressions/actual.js new file mode 100644 index 0000000000..a7c0c31b31 --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/do-expressions/actual.js @@ -0,0 +1 @@ +(do {x}) diff --git a/test/fixtures/experimental/_no-plugin/do-expressions/options.json b/test/fixtures/experimental/_no-plugin/do-expressions/options.json new file mode 100644 index 0000000000..0aaae18db8 --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/do-expressions/options.json @@ -0,0 +1,4 @@ +{ + "throws": "This experimental syntax requires enabling the parser plugin: 'doExpressions' (1:1)", + "plugins": [] +} diff --git a/test/fixtures/experimental/_no-plugin/dynamic-import/actual.js b/test/fixtures/experimental/_no-plugin/dynamic-import/actual.js new file mode 100644 index 0000000000..f0038a3c11 --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/dynamic-import/actual.js @@ -0,0 +1 @@ +var $ = import("jquery"); diff --git a/test/fixtures/experimental/_no-plugin/dynamic-import/options.json b/test/fixtures/experimental/_no-plugin/dynamic-import/options.json new file mode 100644 index 0000000000..90bbfd5623 --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/dynamic-import/options.json @@ -0,0 +1,4 @@ +{ + "throws": "This experimental syntax requires enabling the parser plugin: 'dynamicImport' (1:8)", + "plugins": [] +} diff --git a/test/fixtures/experimental/_no-plugin/import-meta/actual.js b/test/fixtures/experimental/_no-plugin/import-meta/actual.js new file mode 100644 index 0000000000..e1cfc5468e --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/import-meta/actual.js @@ -0,0 +1 @@ +const x = import.meta; diff --git a/test/fixtures/experimental/_no-plugin/import-meta/options.json b/test/fixtures/experimental/_no-plugin/import-meta/options.json new file mode 100644 index 0000000000..48ce55a15d --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/import-meta/options.json @@ -0,0 +1,5 @@ +{ + "throws": "This experimental syntax requires enabling the parser plugin: 'importMeta' (1:17)", + "sourceType": "module", + "plugins": [] +} diff --git a/test/fixtures/experimental/_no-plugin/object-rest-spread/actual.js b/test/fixtures/experimental/_no-plugin/object-rest-spread/actual.js new file mode 100644 index 0000000000..93e64fb4ca --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/object-rest-spread/actual.js @@ -0,0 +1 @@ +({...x}) diff --git a/test/fixtures/experimental/_no-plugin/object-rest-spread/options.json b/test/fixtures/experimental/_no-plugin/object-rest-spread/options.json new file mode 100644 index 0000000000..98dd2ee11d --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/object-rest-spread/options.json @@ -0,0 +1,4 @@ +{ + "throws": "This experimental syntax requires enabling the parser plugin: 'objectRestSpread' (1:2)", + "plugins": [] +} diff --git a/test/fixtures/experimental/optional-chaining/missing-plugin/actual.js b/test/fixtures/experimental/_no-plugin/optional-chaining/actual.js similarity index 100% rename from test/fixtures/experimental/optional-chaining/missing-plugin/actual.js rename to test/fixtures/experimental/_no-plugin/optional-chaining/actual.js diff --git a/test/fixtures/experimental/_no-plugin/optional-chaining/options.json b/test/fixtures/experimental/_no-plugin/optional-chaining/options.json new file mode 100644 index 0000000000..b8e170c94a --- /dev/null +++ b/test/fixtures/experimental/_no-plugin/optional-chaining/options.json @@ -0,0 +1,3 @@ +{ + "throws": "This experimental syntax requires enabling the parser plugin: 'optionalChaining' (1:1)" +} diff --git a/test/fixtures/experimental/async-generators/class-method-no-asi/options.json b/test/fixtures/experimental/async-generators/class-method-no-asi/options.json index af38bd1530..7348c12f9e 100644 --- a/test/fixtures/experimental/async-generators/class-method-no-asi/options.json +++ b/test/fixtures/experimental/async-generators/class-method-no-asi/options.json @@ -1,3 +1,3 @@ { - "throws": "You can only use Class Properties when the 'classProperties' plugin is enabled. (2:2)" + "throws": "This experimental syntax requires enabling the parser plugin: 'classProperties' (3:2)" } diff --git a/test/fixtures/experimental/class-properties/with-initializer-and-type-no-plugin/options.json b/test/fixtures/experimental/class-properties/with-initializer-and-type-no-plugin/options.json deleted file mode 100644 index e185feb80a..0000000000 --- a/test/fixtures/experimental/class-properties/with-initializer-and-type-no-plugin/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "plugins": ["flow"], - "throws": "You can only use Class Properties when the 'classProperties' plugin is enabled. (2:14)" -} diff --git a/test/fixtures/experimental/class-properties/with-initializer-missing-plugin/options.json b/test/fixtures/experimental/class-properties/with-initializer-missing-plugin/options.json deleted file mode 100644 index af38bd1530..0000000000 --- a/test/fixtures/experimental/class-properties/with-initializer-missing-plugin/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "throws": "You can only use Class Properties when the 'classProperties' plugin is enabled. (2:2)" -} diff --git a/test/fixtures/experimental/class-properties/without-initializer-missing-plugin/options.json b/test/fixtures/experimental/class-properties/without-initializer-missing-plugin/options.json deleted file mode 100644 index af38bd1530..0000000000 --- a/test/fixtures/experimental/class-properties/without-initializer-missing-plugin/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "throws": "You can only use Class Properties when the 'classProperties' plugin is enabled. (2:2)" -} diff --git a/test/fixtures/experimental/dynamic-import/direct-calls-only/options.json b/test/fixtures/experimental/dynamic-import/direct-calls-only/options.json index 400eeea626..468132c26a 100644 --- a/test/fixtures/experimental/dynamic-import/direct-calls-only/options.json +++ b/test/fixtures/experimental/dynamic-import/direct-calls-only/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token, expected ( (2:15)" + "throws": "Dynamic imports require a parameter: import('a.js').then (2:9)" } diff --git a/test/fixtures/experimental/function-sent/disabled-function-keyword-declaration/options.json b/test/fixtures/experimental/function-sent/disabled-function-keyword-declaration/options.json index 9a9a59331e..991da279e5 100644 --- a/test/fixtures/experimental/function-sent/disabled-function-keyword-declaration/options.json +++ b/test/fixtures/experimental/function-sent/disabled-function-keyword-declaration/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token, expected ( (2:10)" + "throws": "This experimental syntax requires enabling the parser plugin: 'functionSent' (2:11)" } diff --git a/test/fixtures/experimental/function-sent/disabled-function-keyword-expression/options.json b/test/fixtures/experimental/function-sent/disabled-function-keyword-expression/options.json index 36c4be02d9..eee5abbf1f 100644 --- a/test/fixtures/experimental/function-sent/disabled-function-keyword-expression/options.json +++ b/test/fixtures/experimental/function-sent/disabled-function-keyword-expression/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token, expected ( (2:11)" + "throws": "This experimental syntax requires enabling the parser plugin: 'functionSent' (2:12)" } diff --git a/test/fixtures/experimental/function-sent/disabled-inside-generator/options.json b/test/fixtures/experimental/function-sent/disabled-inside-generator/options.json index 6127ef0bfb..9ce89a133d 100644 --- a/test/fixtures/experimental/function-sent/disabled-inside-generator/options.json +++ b/test/fixtures/experimental/function-sent/disabled-inside-generator/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token, expected ( (2:17)" + "throws": "This experimental syntax requires enabling the parser plugin: 'functionSent' (2:18)" } diff --git a/test/fixtures/experimental/function-sent/invalid-syntax/actual.js b/test/fixtures/experimental/function-sent/invalid-syntax/actual.js new file mode 100644 index 0000000000..bc349cb245 --- /dev/null +++ b/test/fixtures/experimental/function-sent/invalid-syntax/actual.js @@ -0,0 +1,3 @@ +function* foo() { + if (true) function.; +} diff --git a/test/fixtures/experimental/function-sent/invalid-syntax/options.json b/test/fixtures/experimental/function-sent/invalid-syntax/options.json new file mode 100644 index 0000000000..94f431e7de --- /dev/null +++ b/test/fixtures/experimental/function-sent/invalid-syntax/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (2:21)" +} diff --git a/test/fixtures/experimental/no-async-generators/error-without-plugin/options.json b/test/fixtures/experimental/no-async-generators/error-without-plugin/options.json deleted file mode 100644 index 96a1980f24..0000000000 --- a/test/fixtures/experimental/no-async-generators/error-without-plugin/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "throws": "Unexpected token (1:15)", - "plugins": [] -} \ No newline at end of file diff --git a/test/fixtures/experimental/numeric-literal-separator/identifier-start-0/actual.js b/test/fixtures/experimental/numeric-separator/identifier-start-0/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/identifier-start-0/actual.js rename to test/fixtures/experimental/numeric-separator/identifier-start-0/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/identifier-start-0/expected.json b/test/fixtures/experimental/numeric-separator/identifier-start-0/expected.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/identifier-start-0/expected.json rename to test/fixtures/experimental/numeric-separator/identifier-start-0/expected.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-0/actual.js b/test/fixtures/experimental/numeric-separator/invalid-0/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-0/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-0/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-0/options.json b/test/fixtures/experimental/numeric-separator/invalid-0/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-0/options.json rename to test/fixtures/experimental/numeric-separator/invalid-0/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-1/actual.js b/test/fixtures/experimental/numeric-separator/invalid-1/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-1/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-1/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-1/options.json b/test/fixtures/experimental/numeric-separator/invalid-1/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-1/options.json rename to test/fixtures/experimental/numeric-separator/invalid-1/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-10/actual.js b/test/fixtures/experimental/numeric-separator/invalid-10/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-10/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-10/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-10/options.json b/test/fixtures/experimental/numeric-separator/invalid-10/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-10/options.json rename to test/fixtures/experimental/numeric-separator/invalid-10/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-11/actual.js b/test/fixtures/experimental/numeric-separator/invalid-11/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-11/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-11/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-11/options.json b/test/fixtures/experimental/numeric-separator/invalid-11/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-11/options.json rename to test/fixtures/experimental/numeric-separator/invalid-11/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-12/actual.js b/test/fixtures/experimental/numeric-separator/invalid-12/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-12/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-12/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-12/options.json b/test/fixtures/experimental/numeric-separator/invalid-12/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-12/options.json rename to test/fixtures/experimental/numeric-separator/invalid-12/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-13/actual.js b/test/fixtures/experimental/numeric-separator/invalid-13/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-13/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-13/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-13/options.json b/test/fixtures/experimental/numeric-separator/invalid-13/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-13/options.json rename to test/fixtures/experimental/numeric-separator/invalid-13/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-14/actual.js b/test/fixtures/experimental/numeric-separator/invalid-14/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-14/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-14/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-14/options.json b/test/fixtures/experimental/numeric-separator/invalid-14/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-14/options.json rename to test/fixtures/experimental/numeric-separator/invalid-14/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-15/actual.js b/test/fixtures/experimental/numeric-separator/invalid-15/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-15/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-15/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-15/options.json b/test/fixtures/experimental/numeric-separator/invalid-15/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-15/options.json rename to test/fixtures/experimental/numeric-separator/invalid-15/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-16/actual.js b/test/fixtures/experimental/numeric-separator/invalid-16/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-16/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-16/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-16/options.json b/test/fixtures/experimental/numeric-separator/invalid-16/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-16/options.json rename to test/fixtures/experimental/numeric-separator/invalid-16/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-17/actual.js b/test/fixtures/experimental/numeric-separator/invalid-17/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-17/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-17/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-17/options.json b/test/fixtures/experimental/numeric-separator/invalid-17/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-17/options.json rename to test/fixtures/experimental/numeric-separator/invalid-17/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-18/actual.js b/test/fixtures/experimental/numeric-separator/invalid-18/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-18/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-18/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-18/options.json b/test/fixtures/experimental/numeric-separator/invalid-18/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-18/options.json rename to test/fixtures/experimental/numeric-separator/invalid-18/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-19/actual.js b/test/fixtures/experimental/numeric-separator/invalid-19/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-19/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-19/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-19/options.json b/test/fixtures/experimental/numeric-separator/invalid-19/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-19/options.json rename to test/fixtures/experimental/numeric-separator/invalid-19/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-2/actual.js b/test/fixtures/experimental/numeric-separator/invalid-2/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-2/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-2/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-2/options.json b/test/fixtures/experimental/numeric-separator/invalid-2/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-2/options.json rename to test/fixtures/experimental/numeric-separator/invalid-2/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-20/actual.js b/test/fixtures/experimental/numeric-separator/invalid-20/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-20/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-20/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-20/options.json b/test/fixtures/experimental/numeric-separator/invalid-20/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-20/options.json rename to test/fixtures/experimental/numeric-separator/invalid-20/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-21/actual.js b/test/fixtures/experimental/numeric-separator/invalid-21/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-21/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-21/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-21/options.json b/test/fixtures/experimental/numeric-separator/invalid-21/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-21/options.json rename to test/fixtures/experimental/numeric-separator/invalid-21/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-22/actual.js b/test/fixtures/experimental/numeric-separator/invalid-22/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-22/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-22/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-22/options.json b/test/fixtures/experimental/numeric-separator/invalid-22/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-22/options.json rename to test/fixtures/experimental/numeric-separator/invalid-22/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-23/actual.js b/test/fixtures/experimental/numeric-separator/invalid-23/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-23/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-23/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-23/options.json b/test/fixtures/experimental/numeric-separator/invalid-23/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-23/options.json rename to test/fixtures/experimental/numeric-separator/invalid-23/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-24/actual.js b/test/fixtures/experimental/numeric-separator/invalid-24/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-24/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-24/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-24/options.json b/test/fixtures/experimental/numeric-separator/invalid-24/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-24/options.json rename to test/fixtures/experimental/numeric-separator/invalid-24/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-25/actual.js b/test/fixtures/experimental/numeric-separator/invalid-25/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-25/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-25/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-25/options.json b/test/fixtures/experimental/numeric-separator/invalid-25/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-25/options.json rename to test/fixtures/experimental/numeric-separator/invalid-25/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-26/actual.js b/test/fixtures/experimental/numeric-separator/invalid-26/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-26/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-26/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-26/options.json b/test/fixtures/experimental/numeric-separator/invalid-26/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-26/options.json rename to test/fixtures/experimental/numeric-separator/invalid-26/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-27/actual.js b/test/fixtures/experimental/numeric-separator/invalid-27/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-27/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-27/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-27/options.json b/test/fixtures/experimental/numeric-separator/invalid-27/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-27/options.json rename to test/fixtures/experimental/numeric-separator/invalid-27/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-3/actual.js b/test/fixtures/experimental/numeric-separator/invalid-3/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-3/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-3/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-3/options.json b/test/fixtures/experimental/numeric-separator/invalid-3/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-3/options.json rename to test/fixtures/experimental/numeric-separator/invalid-3/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-4/actual.js b/test/fixtures/experimental/numeric-separator/invalid-4/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-4/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-4/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-4/options.json b/test/fixtures/experimental/numeric-separator/invalid-4/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-4/options.json rename to test/fixtures/experimental/numeric-separator/invalid-4/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-5/actual.js b/test/fixtures/experimental/numeric-separator/invalid-5/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-5/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-5/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-5/options.json b/test/fixtures/experimental/numeric-separator/invalid-5/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-5/options.json rename to test/fixtures/experimental/numeric-separator/invalid-5/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-6/actual.js b/test/fixtures/experimental/numeric-separator/invalid-6/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-6/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-6/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-6/options.json b/test/fixtures/experimental/numeric-separator/invalid-6/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-6/options.json rename to test/fixtures/experimental/numeric-separator/invalid-6/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-7/actual.js b/test/fixtures/experimental/numeric-separator/invalid-7/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-7/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-7/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-7/options.json b/test/fixtures/experimental/numeric-separator/invalid-7/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-7/options.json rename to test/fixtures/experimental/numeric-separator/invalid-7/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-8/actual.js b/test/fixtures/experimental/numeric-separator/invalid-8/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-8/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-8/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-8/options.json b/test/fixtures/experimental/numeric-separator/invalid-8/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-8/options.json rename to test/fixtures/experimental/numeric-separator/invalid-8/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-9/actual.js b/test/fixtures/experimental/numeric-separator/invalid-9/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-9/actual.js rename to test/fixtures/experimental/numeric-separator/invalid-9/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/invalid-9/options.json b/test/fixtures/experimental/numeric-separator/invalid-9/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/invalid-9/options.json rename to test/fixtures/experimental/numeric-separator/invalid-9/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/options.json b/test/fixtures/experimental/numeric-separator/options.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/options.json rename to test/fixtures/experimental/numeric-separator/options.json diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-0/actual.js b/test/fixtures/experimental/numeric-separator/valid-0/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-0/actual.js rename to test/fixtures/experimental/numeric-separator/valid-0/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-0/expected.json b/test/fixtures/experimental/numeric-separator/valid-0/expected.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-0/expected.json rename to test/fixtures/experimental/numeric-separator/valid-0/expected.json diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-1/actual.js b/test/fixtures/experimental/numeric-separator/valid-1/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-1/actual.js rename to test/fixtures/experimental/numeric-separator/valid-1/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-1/expected.json b/test/fixtures/experimental/numeric-separator/valid-1/expected.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-1/expected.json rename to test/fixtures/experimental/numeric-separator/valid-1/expected.json diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-10/actual.js b/test/fixtures/experimental/numeric-separator/valid-10/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-10/actual.js rename to test/fixtures/experimental/numeric-separator/valid-10/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-10/expected.json b/test/fixtures/experimental/numeric-separator/valid-10/expected.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-10/expected.json rename to test/fixtures/experimental/numeric-separator/valid-10/expected.json diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-11/actual.js b/test/fixtures/experimental/numeric-separator/valid-11/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-11/actual.js rename to test/fixtures/experimental/numeric-separator/valid-11/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-11/expected.json b/test/fixtures/experimental/numeric-separator/valid-11/expected.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-11/expected.json rename to test/fixtures/experimental/numeric-separator/valid-11/expected.json diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-12/actual.js b/test/fixtures/experimental/numeric-separator/valid-12/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-12/actual.js rename to test/fixtures/experimental/numeric-separator/valid-12/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-12/expected.json b/test/fixtures/experimental/numeric-separator/valid-12/expected.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-12/expected.json rename to test/fixtures/experimental/numeric-separator/valid-12/expected.json diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-2/actual.js b/test/fixtures/experimental/numeric-separator/valid-2/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-2/actual.js rename to test/fixtures/experimental/numeric-separator/valid-2/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-2/expected.json b/test/fixtures/experimental/numeric-separator/valid-2/expected.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-2/expected.json rename to test/fixtures/experimental/numeric-separator/valid-2/expected.json diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-3/actual.js b/test/fixtures/experimental/numeric-separator/valid-3/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-3/actual.js rename to test/fixtures/experimental/numeric-separator/valid-3/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-3/expected.json b/test/fixtures/experimental/numeric-separator/valid-3/expected.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-3/expected.json rename to test/fixtures/experimental/numeric-separator/valid-3/expected.json diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-4/actual.js b/test/fixtures/experimental/numeric-separator/valid-4/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-4/actual.js rename to test/fixtures/experimental/numeric-separator/valid-4/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-4/expected.json b/test/fixtures/experimental/numeric-separator/valid-4/expected.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-4/expected.json rename to test/fixtures/experimental/numeric-separator/valid-4/expected.json diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-5/actual.js b/test/fixtures/experimental/numeric-separator/valid-5/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-5/actual.js rename to test/fixtures/experimental/numeric-separator/valid-5/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-5/expected.json b/test/fixtures/experimental/numeric-separator/valid-5/expected.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-5/expected.json rename to test/fixtures/experimental/numeric-separator/valid-5/expected.json diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-6/actual.js b/test/fixtures/experimental/numeric-separator/valid-6/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-6/actual.js rename to test/fixtures/experimental/numeric-separator/valid-6/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-6/expected.json b/test/fixtures/experimental/numeric-separator/valid-6/expected.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-6/expected.json rename to test/fixtures/experimental/numeric-separator/valid-6/expected.json diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-7/actual.js b/test/fixtures/experimental/numeric-separator/valid-7/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-7/actual.js rename to test/fixtures/experimental/numeric-separator/valid-7/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-7/expected.json b/test/fixtures/experimental/numeric-separator/valid-7/expected.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-7/expected.json rename to test/fixtures/experimental/numeric-separator/valid-7/expected.json diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-8/actual.js b/test/fixtures/experimental/numeric-separator/valid-8/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-8/actual.js rename to test/fixtures/experimental/numeric-separator/valid-8/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-8/expected.json b/test/fixtures/experimental/numeric-separator/valid-8/expected.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-8/expected.json rename to test/fixtures/experimental/numeric-separator/valid-8/expected.json diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-9/actual.js b/test/fixtures/experimental/numeric-separator/valid-9/actual.js similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-9/actual.js rename to test/fixtures/experimental/numeric-separator/valid-9/actual.js diff --git a/test/fixtures/experimental/numeric-literal-separator/valid-9/expected.json b/test/fixtures/experimental/numeric-separator/valid-9/expected.json similarity index 100% rename from test/fixtures/experimental/numeric-literal-separator/valid-9/expected.json rename to test/fixtures/experimental/numeric-separator/valid-9/expected.json diff --git a/test/fixtures/experimental/optional-catch-binding/no-plugin-no-binding-finally/options.json b/test/fixtures/experimental/optional-catch-binding/no-plugin-no-binding-finally/options.json index 04c3ad7d05..0b022f9ea1 100644 --- a/test/fixtures/experimental/optional-catch-binding/no-plugin-no-binding-finally/options.json +++ b/test/fixtures/experimental/optional-catch-binding/no-plugin-no-binding-finally/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token, expected ( (4:6)" + "throws": "This experimental syntax requires enabling the parser plugin: 'optionalCatchBinding' (4:6)" } diff --git a/test/fixtures/experimental/optional-catch-binding/no-plugin-no-binding/options.json b/test/fixtures/experimental/optional-catch-binding/no-plugin-no-binding/options.json index 04c3ad7d05..0b022f9ea1 100644 --- a/test/fixtures/experimental/optional-catch-binding/no-plugin-no-binding/options.json +++ b/test/fixtures/experimental/optional-catch-binding/no-plugin-no-binding/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token, expected ( (4:6)" + "throws": "This experimental syntax requires enabling the parser plugin: 'optionalCatchBinding' (4:6)" } diff --git a/test/fixtures/experimental/optional-chaining/missing-plugin/options.json b/test/fixtures/experimental/optional-chaining/missing-plugin/options.json deleted file mode 100644 index 9aa9db14c9..0000000000 --- a/test/fixtures/experimental/optional-chaining/missing-plugin/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "throws": "You can only use optional-chaining when the 'optionalChaining' plugin is enabled. (1:0)" -}