From 89ecd46b771e5175a3222e647864839023c709bf Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 3 Nov 2014 12:20:29 +1100 Subject: [PATCH] move _moduleFormatter transformer before useStrict transformer and remove duplicate use strict removing - fixes #114 --- bin/6to5/file.js | 4 ++-- lib/6to5/transform.js | 5 +++-- lib/6to5/transformers/use-strict.js | 5 +---- .../transformation/modules-amd/exports-default/expected.js | 4 ++-- .../transformation/modules-amd/exports-from/expected.js | 4 ++-- .../transformation/modules-amd/exports-named/expected.js | 4 ++-- .../transformation/modules-amd/exports-variable/expected.js | 4 ++-- .../modules-amd/hoist-function-exports/expected.js | 4 ++-- .../transformation/modules-amd/imports-default/expected.js | 3 +-- .../transformation/modules-amd/imports-glob/expected.js | 3 +-- .../transformation/modules-amd/imports-mixing/expected.js | 4 ++-- .../transformation/modules-amd/imports-named/expected.js | 4 ++-- test/fixtures/transformation/modules-amd/imports/expected.js | 4 +--- .../fixtures/transformation/modules-amd/overview/expected.js | 4 ++-- .../transformation/modules-umd/exports-default/expected.js | 4 ++-- .../transformation/modules-umd/exports-from/expected.js | 4 ++-- .../transformation/modules-umd/exports-named/expected.js | 4 ++-- .../transformation/modules-umd/exports-variable/expected.js | 4 ++-- .../modules-umd/hoist-function-exports/expected.js | 4 ++-- .../transformation/modules-umd/imports-default/expected.js | 4 ++-- .../transformation/modules-umd/imports-glob/expected.js | 3 +-- .../transformation/modules-umd/imports-mixing/expected.js | 3 +-- .../transformation/modules-umd/imports-named/expected.js | 3 +-- test/fixtures/transformation/modules-umd/imports/expected.js | 4 +--- .../fixtures/transformation/modules-umd/overview/expected.js | 3 +-- 25 files changed, 42 insertions(+), 54 deletions(-) diff --git a/bin/6to5/file.js b/bin/6to5/file.js index f59eb6d978..82112f8cfb 100644 --- a/bin/6to5/file.js +++ b/bin/6to5/file.js @@ -100,8 +100,8 @@ module.exports = function (commander, filenames) { } }); - _.each(_filenames, function (filename, i) { - results.push(util.compile(filename, { _noStrict: +i !== 0 })); + _.each(_filenames, function (filename) { + results.push(util.compile(filename)); }); output(); diff --git a/lib/6to5/transform.js b/lib/6to5/transform.js index c05e0575fb..671364b2cc 100644 --- a/lib/6to5/transform.js +++ b/lib/6to5/transform.js @@ -103,9 +103,10 @@ transform.transformers = { _aliasFunctions: require("./transformers/_alias-functions"), _blockHoist: require("./transformers/_block-hoist"), _declarations: require("./transformers/_declarations"), - _moduleFormatter: require("./transformers/_module-formatter"), - useStrict: require("./transformers/use-strict") + useStrict: require("./transformers/use-strict"), + + _moduleFormatter: require("./transformers/_module-formatter") }; transform.moduleFormatters = { diff --git a/lib/6to5/transformers/use-strict.js b/lib/6to5/transformers/use-strict.js index f6bfd8ea18..75d9ea6655 100644 --- a/lib/6to5/transformers/use-strict.js +++ b/lib/6to5/transformers/use-strict.js @@ -1,15 +1,12 @@ var b = require("acorn-ast-types").builders; -module.exports = function (ast, file) { +module.exports = function (ast) { var body = ast.program.body; var first = body[0]; var noStrict = !first || first.type !== "ExpressionStatement" || first.expression.type !== "Literal" || first.expression.value !== "use strict"; if (noStrict) { - if (file.opts._noStrict) return; body.unshift(b.expressionStatement(b.literal("use strict"))); - } else { - if (file.opts._noStrict) body.shift(); } }; diff --git a/test/fixtures/transformation/modules-amd/exports-default/expected.js b/test/fixtures/transformation/modules-amd/exports-default/expected.js index 06520d1ad3..ad822c8954 100644 --- a/test/fixtures/transformation/modules-amd/exports-default/expected.js +++ b/test/fixtures/transformation/modules-amd/exports-default/expected.js @@ -1,6 +1,6 @@ -"use strict"; - define(["exports"], function (exports) { + "use strict"; + exports.default = 42; exports.default = {}; exports.default = []; diff --git a/test/fixtures/transformation/modules-amd/exports-from/expected.js b/test/fixtures/transformation/modules-amd/exports-from/expected.js index ccc86bb287..c07afa4b5d 100644 --- a/test/fixtures/transformation/modules-amd/exports-from/expected.js +++ b/test/fixtures/transformation/modules-amd/exports-from/expected.js @@ -1,6 +1,6 @@ -"use strict"; - define(["exports", "foo"], function (exports, _foo) { + "use strict"; + (function(obj) { for (var i in obj) { exports[i] = obj[i]; diff --git a/test/fixtures/transformation/modules-amd/exports-named/expected.js b/test/fixtures/transformation/modules-amd/exports-named/expected.js index 125898775b..2bdf3ee4d1 100644 --- a/test/fixtures/transformation/modules-amd/exports-named/expected.js +++ b/test/fixtures/transformation/modules-amd/exports-named/expected.js @@ -1,6 +1,6 @@ -"use strict"; - define(["exports"], function (exports) { + "use strict"; + exports.foo = foo; exports.foo = foo; exports.bar = bar; diff --git a/test/fixtures/transformation/modules-amd/exports-variable/expected.js b/test/fixtures/transformation/modules-amd/exports-variable/expected.js index 699776217c..c6f8cc5905 100644 --- a/test/fixtures/transformation/modules-amd/exports-variable/expected.js +++ b/test/fixtures/transformation/modules-amd/exports-variable/expected.js @@ -1,6 +1,6 @@ -"use strict"; - define(["exports"], function (exports) { + "use strict"; + exports.foo7 = foo7; var foo = 1; exports.foo = foo; diff --git a/test/fixtures/transformation/modules-amd/hoist-function-exports/expected.js b/test/fixtures/transformation/modules-amd/hoist-function-exports/expected.js index 17968c6588..902cf1a327 100644 --- a/test/fixtures/transformation/modules-amd/hoist-function-exports/expected.js +++ b/test/fixtures/transformation/modules-amd/hoist-function-exports/expected.js @@ -1,6 +1,6 @@ -"use strict"; - define(["exports", "./evens"], function (exports, _evens) { + "use strict"; + exports.nextOdd = nextOdd; var isEven = _evens.isEven; diff --git a/test/fixtures/transformation/modules-amd/imports-default/expected.js b/test/fixtures/transformation/modules-amd/imports-default/expected.js index ae21f99267..7febc6bc17 100644 --- a/test/fixtures/transformation/modules-amd/imports-default/expected.js +++ b/test/fixtures/transformation/modules-amd/imports-default/expected.js @@ -1,6 +1,5 @@ -"use strict"; - define(["exports", "foo"], function (exports, _foo) { + "use strict"; var foo = _foo.default; var foo = _foo.default; }); diff --git a/test/fixtures/transformation/modules-amd/imports-glob/expected.js b/test/fixtures/transformation/modules-amd/imports-glob/expected.js index 414d126b14..5c42e9d59a 100644 --- a/test/fixtures/transformation/modules-amd/imports-glob/expected.js +++ b/test/fixtures/transformation/modules-amd/imports-glob/expected.js @@ -1,5 +1,4 @@ -"use strict"; - define(["exports", "foo"], function (exports, _foo) { + "use strict"; var foo = _foo; }); diff --git a/test/fixtures/transformation/modules-amd/imports-mixing/expected.js b/test/fixtures/transformation/modules-amd/imports-mixing/expected.js index c828bb3ed4..37eced8d5b 100644 --- a/test/fixtures/transformation/modules-amd/imports-mixing/expected.js +++ b/test/fixtures/transformation/modules-amd/imports-mixing/expected.js @@ -1,6 +1,6 @@ -"use strict"; - define(["exports", "foo"], function (exports, _foo) { + "use strict"; + var foo = _foo.default; var xyz = _foo.baz; }); diff --git a/test/fixtures/transformation/modules-amd/imports-named/expected.js b/test/fixtures/transformation/modules-amd/imports-named/expected.js index 8912d46bae..5a8e29831e 100644 --- a/test/fixtures/transformation/modules-amd/imports-named/expected.js +++ b/test/fixtures/transformation/modules-amd/imports-named/expected.js @@ -1,6 +1,6 @@ -"use strict"; - define(["exports", "foo"], function (exports, _foo) { + "use strict"; + var bar = _foo.bar; var bar = _foo.bar; var baz = _foo.baz; diff --git a/test/fixtures/transformation/modules-amd/imports/expected.js b/test/fixtures/transformation/modules-amd/imports/expected.js index 9392abf4a0..7191917e73 100644 --- a/test/fixtures/transformation/modules-amd/imports/expected.js +++ b/test/fixtures/transformation/modules-amd/imports/expected.js @@ -1,5 +1,3 @@ -"use strict"; - define(["exports", "foo", "foo-bar", "./directory/foo-bar"], function (exports, _foo, _fooBar, _directoryFooBar) { - + "use strict"; }); diff --git a/test/fixtures/transformation/modules-amd/overview/expected.js b/test/fixtures/transformation/modules-amd/overview/expected.js index 27636b2e02..48f4c57715 100644 --- a/test/fixtures/transformation/modules-amd/overview/expected.js +++ b/test/fixtures/transformation/modules-amd/overview/expected.js @@ -1,6 +1,6 @@ -"use strict"; - define(["exports", "foo", "foo-bar", "./directory/foo-bar"], function (exports, _foo, _fooBar, _directoryFooBar) { + "use strict"; + var foo = _foo.default; var foo = _foo; var bar = _foo.bar; diff --git a/test/fixtures/transformation/modules-umd/exports-default/expected.js b/test/fixtures/transformation/modules-umd/exports-default/expected.js index a57b014819..d856adee06 100644 --- a/test/fixtures/transformation/modules-umd/exports-default/expected.js +++ b/test/fixtures/transformation/modules-umd/exports-default/expected.js @@ -1,5 +1,3 @@ -"use strict"; - (function (factory) { if (typeof define === "function" && define.amd) { define(["exports"], factory); @@ -7,6 +5,8 @@ factory(exports); } })(function (exports) { + "use strict"; + exports.default = 42; exports.default = {}; exports.default = []; diff --git a/test/fixtures/transformation/modules-umd/exports-from/expected.js b/test/fixtures/transformation/modules-umd/exports-from/expected.js index 36887ea7cd..56b1a7561e 100644 --- a/test/fixtures/transformation/modules-umd/exports-from/expected.js +++ b/test/fixtures/transformation/modules-umd/exports-from/expected.js @@ -1,5 +1,3 @@ -"use strict"; - (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "foo"], factory); @@ -7,6 +5,8 @@ factory(exports, require("foo")); } })(function (exports, _foo) { + "use strict"; + (function(obj) { for (var i in obj) { exports[i] = obj[i]; diff --git a/test/fixtures/transformation/modules-umd/exports-named/expected.js b/test/fixtures/transformation/modules-umd/exports-named/expected.js index 8d48d6f6cd..d8a3a136eb 100644 --- a/test/fixtures/transformation/modules-umd/exports-named/expected.js +++ b/test/fixtures/transformation/modules-umd/exports-named/expected.js @@ -1,5 +1,3 @@ -"use strict"; - (function (factory) { if (typeof define === "function" && define.amd) { define(["exports"], factory); @@ -7,6 +5,8 @@ factory(exports); } })(function (exports) { + "use strict"; + exports.foo = foo; exports.foo = foo; exports.bar = bar; diff --git a/test/fixtures/transformation/modules-umd/exports-variable/expected.js b/test/fixtures/transformation/modules-umd/exports-variable/expected.js index aeb48672d5..09a54c78ba 100644 --- a/test/fixtures/transformation/modules-umd/exports-variable/expected.js +++ b/test/fixtures/transformation/modules-umd/exports-variable/expected.js @@ -1,5 +1,3 @@ -"use strict"; - (function (factory) { if (typeof define === "function" && define.amd) { define(["exports"], factory); @@ -7,6 +5,8 @@ factory(exports); } })(function (exports) { + "use strict"; + exports.foo7 = foo7; var foo = 1; exports.foo = foo; diff --git a/test/fixtures/transformation/modules-umd/hoist-function-exports/expected.js b/test/fixtures/transformation/modules-umd/hoist-function-exports/expected.js index 914737417b..c9afc83ea8 100644 --- a/test/fixtures/transformation/modules-umd/hoist-function-exports/expected.js +++ b/test/fixtures/transformation/modules-umd/hoist-function-exports/expected.js @@ -1,5 +1,3 @@ -"use strict"; - (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "./evens"], factory); @@ -7,6 +5,8 @@ factory(exports, require("./evens")); } })(function (exports, _evens) { + "use strict"; + exports.nextOdd = nextOdd; var isEven = _evens.isEven; diff --git a/test/fixtures/transformation/modules-umd/imports-default/expected.js b/test/fixtures/transformation/modules-umd/imports-default/expected.js index f2434dfe71..1b3a501cbc 100644 --- a/test/fixtures/transformation/modules-umd/imports-default/expected.js +++ b/test/fixtures/transformation/modules-umd/imports-default/expected.js @@ -1,5 +1,3 @@ -"use strict"; - (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "foo"], factory); @@ -7,6 +5,8 @@ factory(exports, require("foo")); } })(function (exports, _foo) { + "use strict"; + var foo = _foo.default; var foo = _foo.default; }); diff --git a/test/fixtures/transformation/modules-umd/imports-glob/expected.js b/test/fixtures/transformation/modules-umd/imports-glob/expected.js index 7dc4aeb30a..4a07639cde 100644 --- a/test/fixtures/transformation/modules-umd/imports-glob/expected.js +++ b/test/fixtures/transformation/modules-umd/imports-glob/expected.js @@ -1,5 +1,3 @@ -"use strict"; - (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "foo"], factory); @@ -7,5 +5,6 @@ factory(exports, require("foo")); } })(function (exports, _foo) { + "use strict"; var foo = _foo; }); diff --git a/test/fixtures/transformation/modules-umd/imports-mixing/expected.js b/test/fixtures/transformation/modules-umd/imports-mixing/expected.js index 97f74e3918..4dd5c7b377 100644 --- a/test/fixtures/transformation/modules-umd/imports-mixing/expected.js +++ b/test/fixtures/transformation/modules-umd/imports-mixing/expected.js @@ -1,5 +1,3 @@ -"use strict"; - (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "foo"], factory); @@ -7,6 +5,7 @@ factory(exports, require("foo")); } })(function (exports, _foo) { + "use strict"; var foo = _foo.default; var xyz = _foo.baz; }); diff --git a/test/fixtures/transformation/modules-umd/imports-named/expected.js b/test/fixtures/transformation/modules-umd/imports-named/expected.js index 896105f29c..a2bca67e08 100644 --- a/test/fixtures/transformation/modules-umd/imports-named/expected.js +++ b/test/fixtures/transformation/modules-umd/imports-named/expected.js @@ -1,5 +1,3 @@ -"use strict"; - (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "foo"], factory); @@ -7,6 +5,7 @@ factory(exports, require("foo")); } })(function (exports, _foo) { + "use strict"; var bar = _foo.bar; var bar = _foo.bar; var baz = _foo.baz; diff --git a/test/fixtures/transformation/modules-umd/imports/expected.js b/test/fixtures/transformation/modules-umd/imports/expected.js index a80b499447..81b4069c95 100644 --- a/test/fixtures/transformation/modules-umd/imports/expected.js +++ b/test/fixtures/transformation/modules-umd/imports/expected.js @@ -1,5 +1,3 @@ -"use strict"; - (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "foo", "foo-bar", "./directory/foo-bar"], factory); @@ -7,5 +5,5 @@ factory(exports, require("foo"), require("foo-bar"), require("./directory/foo-bar")); } })(function (exports, _foo, _fooBar, _directoryFooBar) { - + "use strict"; }); diff --git a/test/fixtures/transformation/modules-umd/overview/expected.js b/test/fixtures/transformation/modules-umd/overview/expected.js index 66095d379c..6c539683dc 100644 --- a/test/fixtures/transformation/modules-umd/overview/expected.js +++ b/test/fixtures/transformation/modules-umd/overview/expected.js @@ -1,5 +1,3 @@ -"use strict"; - (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "foo", "foo-bar", "./directory/foo-bar"], factory); @@ -7,6 +5,7 @@ factory(exports, require("foo"), require("foo-bar"), require("./directory/foo-bar")); } })(function (exports, _foo, _fooBar, _directoryFooBar) { + "use strict"; var foo = _foo.default; var foo = _foo; var bar = _foo.bar;