diff --git a/lib/6to5/transformation/transform.js b/lib/6to5/transformation/transform.js index 1a0ff4e5e8..b85c8485e1 100644 --- a/lib/6to5/transformation/transform.js +++ b/lib/6to5/transformation/transform.js @@ -25,7 +25,15 @@ transform.fromAst = function (ast, code, opts) { transform._ensureTransformerNames = function (type, keys) { for (var i = 0; i < keys.length; i++) { var key = keys[i]; - if (!transform.transformers[key]) { + + var newKey = transform.deprecatedTransformerMap[key]; + if (newKey) { + console.error( + "The transformer " + key + " has been renamed to " + newKey + + " in v3.0.0 - backwards compatibilty will be removed 4.0.0" + ); + keys[i] = newKey; + } else if (!transform.transformers[key]) { throw new ReferenceError( "Unknown transformer " + key + " specified in " + type + " - " + "transformer key names have been changed in 3.0.0 see " + @@ -36,6 +44,45 @@ transform._ensureTransformerNames = function (type, keys) { } }; +transform.deprecatedTransformerMap = { + specNoForInOfAssignment: "validation.noForInOfAssignment", + specSetters: "validation.setters", + specBlockScopedFunctions: "spec.blockScopedFunctions", + malletOperator: "playground.malletOperator", + methodBinding: "playground.methodBinding", + memoizationOperator: "playground.memoizationOperator", + objectGetterMemoization: "playground.objectGetterMemoization", + modules: "es6.modules", + propertyNameShorthand: "es6.properties.shorthand", + arrayComprehension: "es7.comprehensions", + generatorComprehension: "es7.comprehensions", + arrowFunctions: "es6.arrowFunctions", + classes: "es6.classes", + objectSpread: "es7.objectSpread", + exponentiationOperator: "es7.exponentiationOperator", + spread: "es6.spread", + templateLiterals: "es6.templateLiterals", + propertyMethodAssignment: "es6.properties.shorthand", + computedPropertyNames: "es6.properties.computed", + defaultParameters: "es6.parameters.default", + restParameters: "es6.parameters.rest", + destructuring: "es6.destructuring", + forOf: "es6.forOf", + unicodeRegex: "es6.unicodeRegex", + abstractReferences: "es7.abstractReferences", + constants: "es6.constants", + letScoping: "es6.letScoping", + blockScopingTDZ: "es6.blockScopingTDZ", + generators: "regenerator", + protoToAssign: "spec.protoToAssign", + typeofSymbol: "spec.typeofSymbol", + coreAliasing: "selfContained", + undefinedToVoid: "spec.undefinedToVoid", + undeclaredVariableCheck: "validation.undeclaredVariableCheck", + specPropertyLiterals: "minification.propertyLiterals", + specMemberExpressionLiterals: "minification.memberExpressionLiterals", +}; + transform.transformers = object(); transform.moduleFormatters = {