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` 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/register.js b/lib/6to5/register.js index 2cd90de4b9..69f68322c0 100644 --- a/lib/6to5/register.js +++ b/lib/6to5/register.js @@ -90,13 +90,9 @@ module.exports = function (opts) { opts = opts || {}; if (_.isRegExp(opts)) opts = { ignoreRegex: opts }; - if (opts.ignoreRegex != null) { - ignoreRegex = opts.ignoreRegex; - } - - if (opts.blacklist) { - blacklist = opts.blacklist; - } + if (opts.ignoreRegex != null) ignoreRegex = opts.ignoreRegex; if (opts.extensions) hookExtensions(opts.extensions); + + if (opts.blacklist) blacklist = opts.blacklist; }; diff --git a/lib/6to5/transform.js b/lib/6to5/transform.js index 749796bde2..144fc68e83 100644 --- a/lib/6to5/transform.js +++ b/lib/6to5/transform.js @@ -105,6 +105,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"), @@ -112,9 +113,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/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; +}; diff --git a/lib/6to5/transformers/use-strict.js b/lib/6to5/transformers/use-strict.js index f3fedf89df..c116c0990c 100644 --- a/lib/6to5/transformers/use-strict.js +++ b/lib/6to5/transformers/use-strict.js @@ -1,15 +1,12 @@ var b = require("../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/package.json b/package.json index 9d07063bed..80aa9dcd21 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": { diff --git a/test/fixtures/transformation/modules-amd/exports-default/expected.js b/test/fixtures/transformation/modules-amd/exports-default/expected.js index 57ec077324..4f9aa2bd7a 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 b985e7bb94..ae135f88f3 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 4de9ddd916..1558d65e8e 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 830192694b..307b548bc6 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;