From a2332f08bc60b65651a6ae434278cf09399e1bad Mon Sep 17 00:00:00 2001 From: Aleksandar Djindjic Date: Fri, 31 Oct 2014 14:58:46 +0100 Subject: [PATCH 1/6] Just a little info added I needed this and it maybe help to someone else --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index c62ac45f67..b9dd9fd937 100644 --- a/README.md +++ b/README.md @@ -102,6 +102,10 @@ map embedded in a comment at the bottom. Compile the entire `src` directory and output it to the `lib` directory. $ 6to5 src --out-dir lib + +Compile the entire `src` directory and output it to the one concatenated file. + + $ 6to5 src --out-file script-compiled.js Pipe a file in via stdin and output it to `script-compiled.js` From 33f8988313b225afd3fbf9be7d8711e4fe771cec Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 1 Nov 2014 16:06:22 +1100 Subject: [PATCH 2/6] support for numeric literals with recast - fixes #117 --- lib/6to5/transform.js | 1 + lib/6to5/transformers/numeric-literals.js | 6 ++++++ 2 files changed, 7 insertions(+) create mode 100644 lib/6to5/transformers/numeric-literals.js diff --git a/lib/6to5/transform.js b/lib/6to5/transform.js index 366ed2ad3b..c05e0575fb 100644 --- a/lib/6to5/transform.js +++ b/lib/6to5/transform.js @@ -95,6 +95,7 @@ transform.transformers = { forOf: require("./transformers/for-of"), unicodeRegex: require("./transformers/unicode-regex"), generators: require("./transformers/generators"), + numericLiterals: require("./transformers/numeric-literals"), react: require("./transformers/react"), jsx: require("./transformers/jsx"), diff --git a/lib/6to5/transformers/numeric-literals.js b/lib/6to5/transformers/numeric-literals.js new file mode 100644 index 0000000000..511d3c5c2a --- /dev/null +++ b/lib/6to5/transformers/numeric-literals.js @@ -0,0 +1,6 @@ +var _ = require("lodash"); + +exports.Literal = function (node) { + // TODO: remove this when the new code generator is released + if (_.isNumber(node.value)) delete node.raw; +}; From 1841f5c8a0af7be4c2126fadac28f822f8f89531 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 1 Nov 2014 16:08:11 +1100 Subject: [PATCH 3/6] v1.10.10 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index db53c40b28..c8bca8c7fd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "6to5", "description": "Turn ES6 code into readable vanilla ES5 with source maps", - "version": "1.10.9", + "version": "1.10.10", "author": "Sebastian McKenzie ", "homepage": "https://github.com/sebmck/6to5", "repository": { From 288cfd1f00daa4cdbad33d49e5642f791b59eea3 Mon Sep 17 00:00:00 2001 From: amsul Date: Sat, 1 Nov 2014 14:15:52 -0400 Subject: [PATCH 4/6] Added ability to register 6to5 with a blacklist Currently, to achieve this, I have to use this workaround: ```js var to5 = require('6to5') delete to5.transform.transformers.generators require('6to5/register') ``` After this simple change, I can make it much nicer: ```js require('6to5/register')({ blacklist: ['generators'] }) ``` Cheers! --- lib/6to5/register.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/6to5/register.js b/lib/6to5/register.js index f09ea6396d..d619620ba4 100644 --- a/lib/6to5/register.js +++ b/lib/6to5/register.js @@ -21,6 +21,7 @@ sourceMapSupport.install({ // var ignoreRegex = /node_modules/; +var blacklist = []; var exts = {}; var maps = {}; var old = require.extensions[".js"]; @@ -31,7 +32,8 @@ var loader = function (m, filename) { } var result = to5.transformFileSync(filename, { - sourceMap: true + sourceMap: true, + blacklist: blacklist }); maps[filename] = result.map; @@ -39,6 +41,10 @@ var loader = function (m, filename) { m._compile(result.code, filename); }; +var addToBlacklist = function (array) { + blacklist = _.union(blacklist, array) +} + var hookExtensions = function (_exts) { _.each(exts, function (old, ext) { require.extensions[ext] = old; @@ -63,4 +69,6 @@ module.exports = function (opts) { } if (opts.extensions) hookExtensions(opts.extensions); + + if (opts.blacklist) addToBlacklist(opts.blacklist); }; From ddbb52239223d3a4e8808cb81152451e9c603690 Mon Sep 17 00:00:00 2001 From: amsul Date: Sat, 1 Nov 2014 19:36:10 -0400 Subject: [PATCH 5/6] Updated blacklist option to replace reference --- lib/6to5/register.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/6to5/register.js b/lib/6to5/register.js index d619620ba4..840039b385 100644 --- a/lib/6to5/register.js +++ b/lib/6to5/register.js @@ -41,10 +41,6 @@ var loader = function (m, filename) { m._compile(result.code, filename); }; -var addToBlacklist = function (array) { - blacklist = _.union(blacklist, array) -} - var hookExtensions = function (_exts) { _.each(exts, function (old, ext) { require.extensions[ext] = old; @@ -70,5 +66,5 @@ module.exports = function (opts) { if (opts.extensions) hookExtensions(opts.extensions); - if (opts.blacklist) addToBlacklist(opts.blacklist); + if (opts.blacklist) blacklist = opts.blacklist; }; From 89ecd46b771e5175a3222e647864839023c709bf Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 3 Nov 2014 12:20:29 +1100 Subject: [PATCH 6/6] 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;