From b7b28451609e271ca48b90fc274b93134e037462 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 22 Jan 2015 01:38:08 +1100 Subject: [PATCH] add descriptions about why some transformers are in the position they are --- lib/6to5/transformation/transform.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/6to5/transformation/transform.js b/lib/6to5/transformation/transform.js index 43b26092e3..31bbf96e45 100644 --- a/lib/6to5/transformation/transform.js +++ b/lib/6to5/transformation/transform.js @@ -63,9 +63,17 @@ _.each({ react: require("./transformers/other/react"), + // needs to be before `_blockHoist` due to function hoisting etc "es6.modules": require("./transformers/es6/modules"), + + // needs to be before `generators` due to generator comprehensions needing to + // be transformed by `es6.generators` + // needs to be before `_aliasFunction` "es7.comprehensions": require("./transformers/es7/comprehensions"), + + // needs to be before `_aliasFunction` "es6.arrowFunctions": require("./transformers/es6/arrow-functions"), + "es6.classes": require("./transformers/es6/classes"), "es7.objectSpread": require("./transformers/es7/object-spread"), @@ -75,6 +83,8 @@ _.each({ "es5.properties.mutators": require("./transformers/es5/properties.mutators"), "es6.properties.shorthand": require("./transformers/es6/properties.shorthand"), + + // needs to be before `_aliasFunction` due to define property closure "es6.properties.computed": require("./transformers/es6/properties.computed"), "es6.parameters.default": require("./transformers/es6/parameters.default"), @@ -86,12 +96,23 @@ _.each({ "es7.abstractReferences": require("./transformers/es7/abstract-references"), "es6.constants": require("./transformers/es6/constants"), + + // needs to be before `_aliasFunction` due to block scopes sometimes being wrapped in a + // closure "es6.blockScoping": require("./transformers/es6/block-scoping"), + + // needs to be after `es6.blockScoping` due to needing `letReferences` set on blocks "optional.blockScopingTDZ": require("./transformers/optional/block-scoping-tdz"), + "es6.generators": require("./transformers/es6/generators"), + + // needs to be after `es6.generators` due to needing `regeneratorRuntime` references + // needs to be after `es6.forOf` due to needing `Symbol.iterator` references + // needs to be before `es6.modules` due to dynamic imports + "optional.selfContained": require("./transformers/optional/self-contained"), + _blockHoist: require("./transformers/_block-hoist"), - "es6.generators": require("./transformers/es6/generators"), "optional.protoToAssign": require("./transformers/optional/proto-to-assign"), _declarations: require("./transformers/_declarations"), @@ -102,7 +123,6 @@ _.each({ _moduleFormatter: require("./transformers/_module-formatter"), "optional.typeofSymbol": require("./transformers/optional/typeof-symbol"), - "optional.selfContained": require("./transformers/optional/self-contained"), "optional.undefinedToVoid": require("./transformers/optional/undefined-to-void"), "optional.undeclaredVariableCheck": require("./transformers/optional/undeclared-variable-check"),