From 7927aa2e189453b9fddd6f30d05722774626102f Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 21 Feb 2015 13:06:02 +1100 Subject: [PATCH] make use strict directive stateless - fixes #828 --- .../transformation/helpers/use-strict.js | 21 ------------- lib/babel/transformation/modules/system.js | 7 +---- .../transformers/internal/block-hoist.js | 23 ++++++-------- .../transformers/internal/declarations.js | 31 +++++++++---------- .../transformers/internal/module-formatter.js | 6 +--- .../transformers/other/use-strict.js | 18 +++++++---- .../exports-default/expected.js | 6 ++-- .../es6-modules-amd/exports-from/expected.js | 4 +-- .../es6-modules-amd/exports-named/expected.js | 4 +-- .../exports-variable/expected.js | 6 ++-- .../get-module-name-option/expected.js | 6 ++-- .../hoist-function-exports/expected.js | 4 +-- .../imports-default/expected.js | 4 +-- .../es6-modules-amd/imports-glob/expected.js | 4 +-- .../imports-mixing/expected.js | 4 +-- .../es6-modules-amd/imports-named/expected.js | 6 ++-- .../es6-modules-amd/imports/expected.js | 6 ++-- .../es6-modules-amd/module-name/expected.js | 4 +-- .../es6-modules-amd/overview/expected.js | 4 +-- .../es6-modules-amd/remap/expected.js | 4 +-- .../exports-default/expected.js | 6 ++-- .../exports-from/expected.js | 6 ++-- .../exports-generator/expected.js | 6 ++-- .../exports-named/expected.js | 6 ++-- .../exports-variable/expected.js | 6 ++-- .../get-module-name-option/expected.js | 6 ++-- .../hoist-function-exports/expected.js | 6 ++-- .../imports-default/expected.js | 6 ++-- .../imports-glob/expected.js | 4 +-- .../imports-mixing/expected.js | 4 +-- .../imports-named/expected.js | 6 ++-- .../es6-modules-system/imports/expected.js | 4 +-- .../es6-modules-system/overview/expected.js | 6 ++-- .../es6-modules-system/remap/expected.js | 6 ++-- .../exports-default/expected.js | 6 ++-- .../es6-modules-umd/exports-from/expected.js | 4 +-- .../es6-modules-umd/exports-named/expected.js | 4 +-- .../exports-variable/expected.js | 6 ++-- .../get-module-name-option/expected.js | 6 ++-- .../hoist-function-exports/expected.js | 4 +-- .../imports-default/expected.js | 4 +-- .../es6-modules-umd/imports-glob/expected.js | 4 +-- .../imports-mixing/expected.js | 4 +-- .../es6-modules-umd/imports-named/expected.js | 6 ++-- .../es6-modules-umd/imports/expected.js | 6 ++-- .../es6-modules-umd/module-name/expected.js | 4 +-- .../es6-modules-umd/overview/expected.js | 6 ++-- .../es6-modules-umd/remap/expected.js | 4 +-- .../self-contained/modules-amd/expected.js | 6 ++-- .../self-contained/modules-system/expected.js | 6 ++-- .../self-contained/modules-umd/expected.js | 4 +-- 51 files changed, 152 insertions(+), 182 deletions(-) delete mode 100644 lib/babel/transformation/helpers/use-strict.js diff --git a/lib/babel/transformation/helpers/use-strict.js b/lib/babel/transformation/helpers/use-strict.js deleted file mode 100644 index 7709528a41..0000000000 --- a/lib/babel/transformation/helpers/use-strict.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -var t = require("../../types"); - -exports.has = function (node) { - var first = node.body[0]; - return t.isExpressionStatement(first) && t.isLiteral(first.expression, { value: "use strict" }); -}; - -exports.wrap = function (node, callback) { - var useStrictNode; - if (exports.has(node)) { - useStrictNode = node.body.shift(); - } - - callback(); - - if (useStrictNode) { - node.body.unshift(useStrictNode); - } -}; diff --git a/lib/babel/transformation/modules/system.js b/lib/babel/transformation/modules/system.js index 192fff7799..38ceec3799 100644 --- a/lib/babel/transformation/modules/system.js +++ b/lib/babel/transformation/modules/system.js @@ -4,12 +4,11 @@ module.exports = SystemFormatter; var DefaultFormatter = require("./_default"); var AMDFormatter = require("./amd"); -var useStrict = require("../helpers/use-strict"); var util = require("../../util"); -var t = require("../../types"); var last = require("lodash/array/last"); var each = require("lodash/collection/each"); var map = require("lodash/collection/map"); +var t = require("../../types"); function SystemFormatter(file) { this.exportIdentifier = file.scope.generateUidIdentifier("export"); @@ -193,9 +192,5 @@ SystemFormatter.prototype.transform = function (program) { handlerBody.push(returnStatement); - if (useStrict.has(block)) { - handlerBody.unshift(block.body.shift()); - } - program.body = [runner]; }; diff --git a/lib/babel/transformation/transformers/internal/block-hoist.js b/lib/babel/transformation/transformers/internal/block-hoist.js index d8936adca8..95d13967d7 100644 --- a/lib/babel/transformation/transformers/internal/block-hoist.js +++ b/lib/babel/transformation/transformers/internal/block-hoist.js @@ -1,9 +1,8 @@ "use strict"; -var useStrict = require("../../helpers/use-strict"); -var groupBy = require("lodash/collection/groupBy"); -var flatten = require("lodash/array/flatten"); -var values = require("lodash/object/values"); +var groupBy = require("lodash/collection/groupBy"); +var flatten = require("lodash/array/flatten"); +var values = require("lodash/object/values"); // Priority: // @@ -22,15 +21,13 @@ exports.Program = { } if (!hasChange) return; - useStrict.wrap(node, function () { - var nodePriorities = groupBy(node.body, function (bodyNode) { - var priority = bodyNode._blockHoist; - if (priority == null) priority = 1; - if (priority === true) priority = 2; - return priority; - }); - - node.body = flatten(values(nodePriorities).reverse()); + var nodePriorities = groupBy(node.body, function (bodyNode) { + var priority = bodyNode._blockHoist; + if (priority == null) priority = 1; + if (priority === true) priority = 2; + return priority; }); + + node.body = flatten(values(nodePriorities).reverse()); } }; diff --git a/lib/babel/transformation/transformers/internal/declarations.js b/lib/babel/transformation/transformers/internal/declarations.js index cd07030b56..a4297143a4 100644 --- a/lib/babel/transformation/transformers/internal/declarations.js +++ b/lib/babel/transformation/transformers/internal/declarations.js @@ -1,7 +1,6 @@ "use strict"; -var useStrict = require("../../helpers/use-strict"); -var t = require("../../../types"); +var t = require("../../../types"); exports.secondPass = true; @@ -12,25 +11,23 @@ exports.Program = function (node, parent, scope, file) { var kinds = {}; var kind; - useStrict.wrap(node, function () { - for (var i in node._declarations) { - var declar = node._declarations[i]; + for (var i in node._declarations) { + var declar = node._declarations[i]; - kind = declar.kind || "var"; - var declarNode = t.variableDeclarator(declar.id, declar.init); + kind = declar.kind || "var"; + var declarNode = t.variableDeclarator(declar.id, declar.init); - if (declar.init) { - node.body.unshift(file.attachAuxiliaryComment(t.variableDeclaration(kind, [declarNode]))); - } else { - kinds[kind] = kinds[kind] || []; - kinds[kind].push(declarNode); - } + if (declar.init) { + node.body.unshift(file.attachAuxiliaryComment(t.variableDeclaration(kind, [declarNode]))); + } else { + kinds[kind] = kinds[kind] || []; + kinds[kind].push(declarNode); } + } - for (kind in kinds) { - node.body.unshift(file.attachAuxiliaryComment(t.variableDeclaration(kind, kinds[kind]))); - } - }); + for (kind in kinds) { + node.body.unshift(file.attachAuxiliaryComment(t.variableDeclaration(kind, kinds[kind]))); + } node._declarations = null; }; diff --git a/lib/babel/transformation/transformers/internal/module-formatter.js b/lib/babel/transformation/transformers/internal/module-formatter.js index d1982280c4..4499ea7bbb 100644 --- a/lib/babel/transformation/transformers/internal/module-formatter.js +++ b/lib/babel/transformation/transformers/internal/module-formatter.js @@ -1,13 +1,9 @@ "use strict"; -var useStrict = require("../../helpers/use-strict"); - exports.Program = function (program, parent, scope, file) { if (!file.transformers["es6.modules"].canRun()) return; - useStrict.wrap(program, function () { - program.body = file.dynamicImports.concat(program.body); - }); + program.body = file.dynamicImports.concat(program.body); if (file.moduleFormatter.transform) { file.moduleFormatter.transform(program); diff --git a/lib/babel/transformation/transformers/other/use-strict.js b/lib/babel/transformation/transformers/other/use-strict.js index 947bcca27e..7420db08ae 100644 --- a/lib/babel/transformation/transformers/other/use-strict.js +++ b/lib/babel/transformation/transformers/other/use-strict.js @@ -1,15 +1,21 @@ "use strict"; -var useStrict = require("../../helpers/use-strict"); -var messages = require("../../../messages"); -var t = require("../../../types"); +var messages = require("../../../messages"); +var t = require("../../../types"); -exports.Program = function (program) { - if (!useStrict.has(program)) { - program.body.unshift(t.expressionStatement(t.literal("use strict"))); +exports.Program = { + enter: function (program, parent, scope, file) { + var first = program.body[0]; + if (t.isExpressionStatement(first) && t.isLiteral(first.expression, { value: "use strict" })) { + program.body.shift(); + } } }; +exports.post = function (file) { + file.ast.program.body.unshift(t.expressionStatement(t.literal("use strict"))); +}; + exports.FunctionDeclaration = exports.FunctionExpression = function () { this.skip(); diff --git a/test/fixtures/transformation/es6-modules-amd/exports-default/expected.js b/test/fixtures/transformation/es6-modules-amd/exports-default/expected.js index 2c5794f860..371d42a3ac 100644 --- a/test/fixtures/transformation/es6-modules-amd/exports-default/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/exports-default/expected.js @@ -1,6 +1,6 @@ -define(["exports", "module"], function (exports, module) { - "use strict"; +"use strict"; +define(["exports", "module"], function (exports, module) { var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; module.exports = foo; @@ -23,4 +23,4 @@ define(["exports", "module"], function (exports, module) { }; module.exports = Foo; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-amd/exports-from/expected.js b/test/fixtures/transformation/es6-modules-amd/exports-from/expected.js index 113dd40be3..ed602a6536 100644 --- a/test/fixtures/transformation/es6-modules-amd/exports-from/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/exports-from/expected.js @@ -1,6 +1,6 @@ -define(["exports", "foo"], function (exports, _foo) { - "use strict"; +"use strict"; +define(["exports", "foo"], function (exports, _foo) { var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { "default": obj }; }; var _defaults = function (obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }; diff --git a/test/fixtures/transformation/es6-modules-amd/exports-named/expected.js b/test/fixtures/transformation/es6-modules-amd/exports-named/expected.js index d66e609acb..84d448ff9c 100644 --- a/test/fixtures/transformation/es6-modules-amd/exports-named/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/exports-named/expected.js @@ -1,6 +1,6 @@ -define(["exports"], function (exports) { - "use strict"; +"use strict"; +define(["exports"], function (exports) { exports.foo = foo; exports.foo = foo; exports.bar = bar; diff --git a/test/fixtures/transformation/es6-modules-amd/exports-variable/expected.js b/test/fixtures/transformation/es6-modules-amd/exports-variable/expected.js index e0b5ef829f..78d201535b 100644 --- a/test/fixtures/transformation/es6-modules-amd/exports-variable/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/exports-variable/expected.js @@ -1,6 +1,6 @@ -define(["exports"], function (exports) { - "use strict"; +"use strict"; +define(["exports"], function (exports) { var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; exports.foo7 = foo7; @@ -21,4 +21,4 @@ define(["exports"], function (exports) { Object.defineProperty(exports, "__esModule", { value: true }); -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-amd/get-module-name-option/expected.js b/test/fixtures/transformation/es6-modules-amd/get-module-name-option/expected.js index f0e566fff4..b06fd3928a 100644 --- a/test/fixtures/transformation/es6-modules-amd/get-module-name-option/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/get-module-name-option/expected.js @@ -1,3 +1,3 @@ -define("my custom module name", ["exports"], function (exports) { - "use strict"; -}); +"use strict"; + +define("my custom module name", ["exports"], function (exports) {}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-amd/hoist-function-exports/expected.js b/test/fixtures/transformation/es6-modules-amd/hoist-function-exports/expected.js index 79267d3f30..058d009ac2 100644 --- a/test/fixtures/transformation/es6-modules-amd/hoist-function-exports/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/hoist-function-exports/expected.js @@ -1,6 +1,6 @@ -define(["exports", "./evens"], function (exports, _evens) { - "use strict"; +"use strict"; +define(["exports", "./evens"], function (exports, _evens) { exports.nextOdd = nextOdd; var isEven = _evens.isEven; function nextOdd(n) { diff --git a/test/fixtures/transformation/es6-modules-amd/imports-default/expected.js b/test/fixtures/transformation/es6-modules-amd/imports-default/expected.js index 4575943441..167222ee75 100644 --- a/test/fixtures/transformation/es6-modules-amd/imports-default/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/imports-default/expected.js @@ -1,6 +1,6 @@ -define(["exports", "foo"], function (exports, _foo) { - "use strict"; +"use strict"; +define(["exports", "foo"], function (exports, _foo) { var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var foo = _interopRequire(_foo); diff --git a/test/fixtures/transformation/es6-modules-amd/imports-glob/expected.js b/test/fixtures/transformation/es6-modules-amd/imports-glob/expected.js index cc03946787..4788c80508 100644 --- a/test/fixtures/transformation/es6-modules-amd/imports-glob/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/imports-glob/expected.js @@ -1,5 +1,5 @@ -define(["exports", "foo"], function (exports, _foo) { - "use strict"; +"use strict"; +define(["exports", "foo"], function (exports, _foo) { var foo = _foo; }); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-amd/imports-mixing/expected.js b/test/fixtures/transformation/es6-modules-amd/imports-mixing/expected.js index b147224a07..59164e1d1f 100644 --- a/test/fixtures/transformation/es6-modules-amd/imports-mixing/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/imports-mixing/expected.js @@ -1,6 +1,6 @@ -define(["exports", "foo"], function (exports, _foo) { - "use strict"; +"use strict"; +define(["exports", "foo"], function (exports, _foo) { var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var foo = _interopRequire(_foo); diff --git a/test/fixtures/transformation/es6-modules-amd/imports-named/expected.js b/test/fixtures/transformation/es6-modules-amd/imports-named/expected.js index f1cbf26ee3..8e5e4a9e81 100644 --- a/test/fixtures/transformation/es6-modules-amd/imports-named/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/imports-named/expected.js @@ -1,10 +1,10 @@ -define(["exports", "foo"], function (exports, _foo) { - "use strict"; +"use strict"; +define(["exports", "foo"], function (exports, _foo) { var bar = _foo.bar; var bar2 = _foo.bar2; var baz = _foo.baz; var baz2 = _foo.bar; var baz3 = _foo.bar; var xyz = _foo.xyz; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-amd/imports/expected.js b/test/fixtures/transformation/es6-modules-amd/imports/expected.js index 84e1e6dcc7..36ff98ebcc 100644 --- a/test/fixtures/transformation/es6-modules-amd/imports/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/imports/expected.js @@ -1,3 +1,3 @@ -define(["exports", "foo", "foo-bar", "./directory/foo-bar"], function (exports, _foo, _fooBar, _directoryFooBar) { - "use strict"; -}); \ No newline at end of file +"use strict"; + +define(["exports", "foo", "foo-bar", "./directory/foo-bar"], function (exports, _foo, _fooBar, _directoryFooBar) {}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-amd/module-name/expected.js b/test/fixtures/transformation/es6-modules-amd/module-name/expected.js index c129a9ffb6..5c6619dc82 100644 --- a/test/fixtures/transformation/es6-modules-amd/module-name/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/module-name/expected.js @@ -1,5 +1,5 @@ -define("es6-modules-amd/module-name/expected", ["exports"], function (exports) { - "use strict"; +"use strict"; +define("es6-modules-amd/module-name/expected", ["exports"], function (exports) { foobar(); }); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-amd/overview/expected.js b/test/fixtures/transformation/es6-modules-amd/overview/expected.js index a9993c1612..28fa5347fa 100644 --- a/test/fixtures/transformation/es6-modules-amd/overview/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/overview/expected.js @@ -1,6 +1,6 @@ -define(["exports", "foo", "foo-bar", "./directory/foo-bar"], function (exports, _foo, _fooBar, _directoryFooBar) { - "use strict"; +"use strict"; +define(["exports", "foo", "foo-bar", "./directory/foo-bar"], function (exports, _foo, _fooBar, _directoryFooBar) { var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var foo = _interopRequire(_foo); diff --git a/test/fixtures/transformation/es6-modules-amd/remap/expected.js b/test/fixtures/transformation/es6-modules-amd/remap/expected.js index accde1fb6e..0fe9ee14d8 100644 --- a/test/fixtures/transformation/es6-modules-amd/remap/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/remap/expected.js @@ -1,6 +1,6 @@ -define(["exports"], function (exports) { - "use strict"; +"use strict"; +define(["exports"], function (exports) { var test = exports.test = 2; test = exports.test = 5; test = exports.test += 1; diff --git a/test/fixtures/transformation/es6-modules-system/exports-default/expected.js b/test/fixtures/transformation/es6-modules-system/exports-default/expected.js index 93fa08a649..9fa1b7604a 100644 --- a/test/fixtures/transformation/es6-modules-system/exports-default/expected.js +++ b/test/fixtures/transformation/es6-modules-system/exports-default/expected.js @@ -1,6 +1,6 @@ -System.register([], function (_export) { - "use strict"; +"use strict"; +System.register([], function (_export) { var _classCallCheck, _default, Foo; _export("default", foo); @@ -34,4 +34,4 @@ System.register([], function (_export) { _export("default", Foo); } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/exports-from/expected.js b/test/fixtures/transformation/es6-modules-system/exports-from/expected.js index b7b8242360..389dfc41ae 100644 --- a/test/fixtures/transformation/es6-modules-system/exports-from/expected.js +++ b/test/fixtures/transformation/es6-modules-system/exports-from/expected.js @@ -1,6 +1,6 @@ -System.register(["foo"], function (_export) { - "use strict"; +"use strict"; +System.register(["foo"], function (_export) { return { setters: [function (_foo) { for (var _key in _foo) { @@ -23,4 +23,4 @@ System.register(["foo"], function (_export) { }], execute: function () {} }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/exports-generator/expected.js b/test/fixtures/transformation/es6-modules-system/exports-generator/expected.js index ea08012703..b7ae39a4d7 100644 --- a/test/fixtures/transformation/es6-modules-system/exports-generator/expected.js +++ b/test/fixtures/transformation/es6-modules-system/exports-generator/expected.js @@ -1,6 +1,6 @@ -System.register([], function (_export) { - "use strict"; +"use strict"; +System.register([], function (_export) { var generator = regeneratorRuntime.mark(function generator() { return regeneratorRuntime.wrap(function generator$(context$1$0) { while (1) switch (context$1$0.prev = context$1$0.next) { @@ -21,4 +21,4 @@ System.register([], function (_export) { setters: [], execute: function () {} }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/exports-named/expected.js b/test/fixtures/transformation/es6-modules-system/exports-named/expected.js index 86487ee2f5..e332163eba 100644 --- a/test/fixtures/transformation/es6-modules-system/exports-named/expected.js +++ b/test/fixtures/transformation/es6-modules-system/exports-named/expected.js @@ -1,6 +1,6 @@ -System.register([], function (_export) { - "use strict"; +"use strict"; +System.register([], function (_export) { return { setters: [], execute: function () { @@ -19,4 +19,4 @@ System.register([], function (_export) { _export("bar", bar); } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/exports-variable/expected.js b/test/fixtures/transformation/es6-modules-system/exports-variable/expected.js index 2b6c6efd54..9ada1fff32 100644 --- a/test/fixtures/transformation/es6-modules-system/exports-variable/expected.js +++ b/test/fixtures/transformation/es6-modules-system/exports-variable/expected.js @@ -1,6 +1,6 @@ -System.register([], function (_export) { - "use strict"; +"use strict"; +System.register([], function (_export) { var _classCallCheck, foo, foo2, foo3, foo4, foo5, foo6, foo8; _export("foo7", foo7); @@ -24,4 +24,4 @@ System.register([], function (_export) { _export("foo3", foo3 = 5); } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/get-module-name-option/expected.js b/test/fixtures/transformation/es6-modules-system/get-module-name-option/expected.js index 0def1f9524..bd650c0abc 100644 --- a/test/fixtures/transformation/es6-modules-system/get-module-name-option/expected.js +++ b/test/fixtures/transformation/es6-modules-system/get-module-name-option/expected.js @@ -1,8 +1,8 @@ -System.register("my custom module name", [], function (_export) { - "use strict"; +"use strict"; +System.register("my custom module name", [], function (_export) { return { setters: [], execute: function () {} }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/hoist-function-exports/expected.js b/test/fixtures/transformation/es6-modules-system/hoist-function-exports/expected.js index 609ee753d4..553b69fe58 100644 --- a/test/fixtures/transformation/es6-modules-system/hoist-function-exports/expected.js +++ b/test/fixtures/transformation/es6-modules-system/hoist-function-exports/expected.js @@ -1,6 +1,6 @@ -System.register(["./evens"], function (_export) { - "use strict"; +"use strict"; +System.register(["./evens"], function (_export) { var isEven, p, isOdd; _export("nextOdd", nextOdd); @@ -22,4 +22,4 @@ System.register(["./evens"], function (_export) { })(isEven)); } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/imports-default/expected.js b/test/fixtures/transformation/es6-modules-system/imports-default/expected.js index 16a71b2ed4..12696f6653 100644 --- a/test/fixtures/transformation/es6-modules-system/imports-default/expected.js +++ b/test/fixtures/transformation/es6-modules-system/imports-default/expected.js @@ -1,6 +1,6 @@ -System.register(["foo"], function (_export) { - "use strict"; +"use strict"; +System.register(["foo"], function (_export) { var foo, foo2; return { setters: [function (_foo) { @@ -9,4 +9,4 @@ System.register(["foo"], function (_export) { }], execute: function () {} }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/imports-glob/expected.js b/test/fixtures/transformation/es6-modules-system/imports-glob/expected.js index 6e08c8dcc9..acd0e1efcf 100644 --- a/test/fixtures/transformation/es6-modules-system/imports-glob/expected.js +++ b/test/fixtures/transformation/es6-modules-system/imports-glob/expected.js @@ -1,6 +1,6 @@ -System.register(["foo"], function (_export) { - "use strict"; +"use strict"; +System.register(["foo"], function (_export) { var foo; return { setters: [function (_foo) { diff --git a/test/fixtures/transformation/es6-modules-system/imports-mixing/expected.js b/test/fixtures/transformation/es6-modules-system/imports-mixing/expected.js index 31b6f179ea..7e4f71269d 100644 --- a/test/fixtures/transformation/es6-modules-system/imports-mixing/expected.js +++ b/test/fixtures/transformation/es6-modules-system/imports-mixing/expected.js @@ -1,6 +1,6 @@ -System.register(["foo"], function (_export) { - "use strict"; +"use strict"; +System.register(["foo"], function (_export) { var foo, xyz; return { setters: [function (_foo) { diff --git a/test/fixtures/transformation/es6-modules-system/imports-named/expected.js b/test/fixtures/transformation/es6-modules-system/imports-named/expected.js index e6704667be..9b8eb605bf 100644 --- a/test/fixtures/transformation/es6-modules-system/imports-named/expected.js +++ b/test/fixtures/transformation/es6-modules-system/imports-named/expected.js @@ -1,6 +1,6 @@ -System.register(["foo"], function (_export) { - "use strict"; +"use strict"; +System.register(["foo"], function (_export) { var bar, bar2, baz, baz2, baz3, xyz; return { setters: [function (_foo) { @@ -13,4 +13,4 @@ System.register(["foo"], function (_export) { }], execute: function () {} }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/imports/expected.js b/test/fixtures/transformation/es6-modules-system/imports/expected.js index 595df89e93..dcd2757e57 100644 --- a/test/fixtures/transformation/es6-modules-system/imports/expected.js +++ b/test/fixtures/transformation/es6-modules-system/imports/expected.js @@ -1,6 +1,6 @@ -System.register(["foo", "foo-bar", "./directory/foo-bar"], function (_export) { - "use strict"; +"use strict"; +System.register(["foo", "foo-bar", "./directory/foo-bar"], function (_export) { return { setters: [function (_foo) {}, function (_fooBar) {}, function (_directoryFooBar) {}], execute: function () {} diff --git a/test/fixtures/transformation/es6-modules-system/overview/expected.js b/test/fixtures/transformation/es6-modules-system/overview/expected.js index 1114e6a2da..d7a161df9f 100644 --- a/test/fixtures/transformation/es6-modules-system/overview/expected.js +++ b/test/fixtures/transformation/es6-modules-system/overview/expected.js @@ -1,6 +1,6 @@ -System.register(["foo", "foo-bar", "./directory/foo-bar"], function (_export) { - "use strict"; +"use strict"; +System.register(["foo", "foo-bar", "./directory/foo-bar"], function (_export) { var foo, foo2, bar, bar2, test2; return { setters: [function (_foo) { @@ -17,4 +17,4 @@ System.register(["foo", "foo-bar", "./directory/foo-bar"], function (_export) { _export("default", test); } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/remap/expected.js b/test/fixtures/transformation/es6-modules-system/remap/expected.js index fa88c07f53..75dfba18e2 100644 --- a/test/fixtures/transformation/es6-modules-system/remap/expected.js +++ b/test/fixtures/transformation/es6-modules-system/remap/expected.js @@ -1,6 +1,6 @@ -System.register([], function (_export) { - "use strict"; +"use strict"; +System.register([], function (_export) { var test; return { setters: [], @@ -17,4 +17,4 @@ System.register([], function (_export) { })(); } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-umd/exports-default/expected.js b/test/fixtures/transformation/es6-modules-umd/exports-default/expected.js index 287f0ec11d..dea3d841ba 100644 --- a/test/fixtures/transformation/es6-modules-umd/exports-default/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/exports-default/expected.js @@ -1,3 +1,5 @@ +"use strict"; + (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "module"], factory); @@ -5,8 +7,6 @@ factory(exports, module); } })(function (exports, module) { - "use strict"; - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; module.exports = foo; @@ -29,4 +29,4 @@ }; module.exports = Foo; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-umd/exports-from/expected.js b/test/fixtures/transformation/es6-modules-umd/exports-from/expected.js index 35cdb100e3..022983fc7b 100644 --- a/test/fixtures/transformation/es6-modules-umd/exports-from/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/exports-from/expected.js @@ -1,3 +1,5 @@ +"use strict"; + (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "foo"], factory); @@ -5,8 +7,6 @@ factory(exports, require("foo")); } })(function (exports, _foo) { - "use strict"; - var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { "default": obj }; }; var _defaults = function (obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }; diff --git a/test/fixtures/transformation/es6-modules-umd/exports-named/expected.js b/test/fixtures/transformation/es6-modules-umd/exports-named/expected.js index 3b4d067ec0..a894d9a509 100644 --- a/test/fixtures/transformation/es6-modules-umd/exports-named/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/exports-named/expected.js @@ -1,3 +1,5 @@ +"use strict"; + (function (factory) { if (typeof define === "function" && define.amd) { define(["exports"], factory); @@ -5,8 +7,6 @@ factory(exports); } })(function (exports) { - "use strict"; - exports.foo = foo; exports.foo = foo; exports.bar = bar; diff --git a/test/fixtures/transformation/es6-modules-umd/exports-variable/expected.js b/test/fixtures/transformation/es6-modules-umd/exports-variable/expected.js index 97a29f5fb3..828ae59ea0 100644 --- a/test/fixtures/transformation/es6-modules-umd/exports-variable/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/exports-variable/expected.js @@ -1,3 +1,5 @@ +"use strict"; + (function (factory) { if (typeof define === "function" && define.amd) { define(["exports"], factory); @@ -5,8 +7,6 @@ factory(exports); } })(function (exports) { - "use strict"; - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; exports.foo7 = foo7; @@ -27,4 +27,4 @@ Object.defineProperty(exports, "__esModule", { value: true }); -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-umd/get-module-name-option/expected.js b/test/fixtures/transformation/es6-modules-umd/get-module-name-option/expected.js index db14ef8bc3..bd0e644592 100644 --- a/test/fixtures/transformation/es6-modules-umd/get-module-name-option/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/get-module-name-option/expected.js @@ -1,9 +1,9 @@ +"use strict"; + (function (factory) { if (typeof define === "function" && define.amd) { define("my custom module name", ["exports"], factory); } else if (typeof exports !== "undefined") { factory(exports); } -})(function (exports) { - "use strict"; -}); +})(function (exports) {}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-umd/hoist-function-exports/expected.js b/test/fixtures/transformation/es6-modules-umd/hoist-function-exports/expected.js index 1241f1f68e..09d47d6c27 100644 --- a/test/fixtures/transformation/es6-modules-umd/hoist-function-exports/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/hoist-function-exports/expected.js @@ -1,3 +1,5 @@ +"use strict"; + (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "./evens"], factory); @@ -5,8 +7,6 @@ factory(exports, require("./evens")); } })(function (exports, _evens) { - "use strict"; - exports.nextOdd = nextOdd; var isEven = _evens.isEven; function nextOdd(n) { diff --git a/test/fixtures/transformation/es6-modules-umd/imports-default/expected.js b/test/fixtures/transformation/es6-modules-umd/imports-default/expected.js index 46111b877c..17c0bb534c 100644 --- a/test/fixtures/transformation/es6-modules-umd/imports-default/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/imports-default/expected.js @@ -1,3 +1,5 @@ +"use strict"; + (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "foo"], factory); @@ -5,8 +7,6 @@ factory(exports, require("foo")); } })(function (exports, _foo) { - "use strict"; - var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var foo = _interopRequire(_foo); diff --git a/test/fixtures/transformation/es6-modules-umd/imports-glob/expected.js b/test/fixtures/transformation/es6-modules-umd/imports-glob/expected.js index 45a763f2f2..067a1a2714 100644 --- a/test/fixtures/transformation/es6-modules-umd/imports-glob/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/imports-glob/expected.js @@ -1,3 +1,5 @@ +"use strict"; + (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "foo"], factory); @@ -5,7 +7,5 @@ factory(exports, require("foo")); } })(function (exports, _foo) { - "use strict"; - var foo = _foo; }); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-umd/imports-mixing/expected.js b/test/fixtures/transformation/es6-modules-umd/imports-mixing/expected.js index 6b684e31de..5de8931b9b 100644 --- a/test/fixtures/transformation/es6-modules-umd/imports-mixing/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/imports-mixing/expected.js @@ -1,3 +1,5 @@ +"use strict"; + (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "foo"], factory); @@ -5,8 +7,6 @@ factory(exports, require("foo")); } })(function (exports, _foo) { - "use strict"; - var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var foo = _interopRequire(_foo); diff --git a/test/fixtures/transformation/es6-modules-umd/imports-named/expected.js b/test/fixtures/transformation/es6-modules-umd/imports-named/expected.js index d4c162c172..3e4f5746d9 100644 --- a/test/fixtures/transformation/es6-modules-umd/imports-named/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/imports-named/expected.js @@ -1,3 +1,5 @@ +"use strict"; + (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "foo"], factory); @@ -5,12 +7,10 @@ factory(exports, require("foo")); } })(function (exports, _foo) { - "use strict"; - var bar = _foo.bar; var bar2 = _foo.bar2; var baz = _foo.baz; var baz2 = _foo.bar; var baz3 = _foo.bar; var xyz = _foo.xyz; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-umd/imports/expected.js b/test/fixtures/transformation/es6-modules-umd/imports/expected.js index 2e39b15cd2..29cf8095a7 100644 --- a/test/fixtures/transformation/es6-modules-umd/imports/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/imports/expected.js @@ -1,9 +1,9 @@ +"use strict"; + (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "foo", "foo-bar", "./directory/foo-bar"], factory); } else if (typeof exports !== "undefined") { factory(exports, require("foo"), require("foo-bar"), require("./directory/foo-bar")); } -})(function (exports, _foo, _fooBar, _directoryFooBar) { - "use strict"; -}); \ No newline at end of file +})(function (exports, _foo, _fooBar, _directoryFooBar) {}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-umd/module-name/expected.js b/test/fixtures/transformation/es6-modules-umd/module-name/expected.js index aa570b25e3..193a600c46 100644 --- a/test/fixtures/transformation/es6-modules-umd/module-name/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/module-name/expected.js @@ -1,3 +1,5 @@ +"use strict"; + (function (factory) { if (typeof define === "function" && define.amd) { define("es6-modules-umd/module-name/expected", ["exports"], factory); @@ -5,7 +7,5 @@ factory(exports); } })(function (exports) { - "use strict"; - foobar(); }); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-umd/overview/expected.js b/test/fixtures/transformation/es6-modules-umd/overview/expected.js index 9d39fbaa49..821fab6755 100644 --- a/test/fixtures/transformation/es6-modules-umd/overview/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/overview/expected.js @@ -1,3 +1,5 @@ +"use strict"; + (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "foo", "foo-bar", "./directory/foo-bar"], factory); @@ -5,8 +7,6 @@ factory(exports, require("foo"), require("foo-bar"), require("./directory/foo-bar")); } })(function (exports, _foo, _fooBar, _directoryFooBar) { - "use strict"; - var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var foo = _interopRequire(_foo); @@ -21,4 +21,4 @@ Object.defineProperty(exports, "__esModule", { value: true }); -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-umd/remap/expected.js b/test/fixtures/transformation/es6-modules-umd/remap/expected.js index e44f8e70c5..82882dde3f 100644 --- a/test/fixtures/transformation/es6-modules-umd/remap/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/remap/expected.js @@ -1,3 +1,5 @@ +"use strict"; + (function (factory) { if (typeof define === "function" && define.amd) { define(["exports"], factory); @@ -5,8 +7,6 @@ factory(exports); } })(function (exports) { - "use strict"; - var test = exports.test = 2; test = exports.test = 5; test = exports.test += 1; diff --git a/test/fixtures/transformation/self-contained/modules-amd/expected.js b/test/fixtures/transformation/self-contained/modules-amd/expected.js index 9543e99b18..9db3f81296 100644 --- a/test/fixtures/transformation/self-contained/modules-amd/expected.js +++ b/test/fixtures/transformation/self-contained/modules-amd/expected.js @@ -1,7 +1,7 @@ -define(["exports", "foo", "babel-runtime/helpers"], function (exports, _foo, _babelRuntimeHelpers) { - "use strict"; +"use strict"; +define(["exports", "foo", "babel-runtime/helpers"], function (exports, _foo, _babelRuntimeHelpers) { var _babelHelpers = _babelRuntimeHelpers["default"]; var foo = _babelHelpers.interopRequire(_foo); -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/self-contained/modules-system/expected.js b/test/fixtures/transformation/self-contained/modules-system/expected.js index 8bbdcb08a7..526b72c64d 100644 --- a/test/fixtures/transformation/self-contained/modules-system/expected.js +++ b/test/fixtures/transformation/self-contained/modules-system/expected.js @@ -1,6 +1,6 @@ -System.register(["babel-runtime/helpers"], function (_export) { - "use strict"; +"use strict"; +System.register(["babel-runtime/helpers"], function (_export) { var _babelHelpers; return { @@ -11,4 +11,4 @@ System.register(["babel-runtime/helpers"], function (_export) { foo.apply(undefined, _babelHelpers.toConsumableArray(bar)); } }; -}); +}); \ No newline at end of file diff --git a/test/fixtures/transformation/self-contained/modules-umd/expected.js b/test/fixtures/transformation/self-contained/modules-umd/expected.js index 9808628579..d380c97e69 100644 --- a/test/fixtures/transformation/self-contained/modules-umd/expected.js +++ b/test/fixtures/transformation/self-contained/modules-umd/expected.js @@ -1,3 +1,5 @@ +"use strict"; + (function (factory) { if (typeof define === "function" && define.amd) { define(["exports", "foo", "babel-runtime/helpers"], factory); @@ -5,8 +7,6 @@ factory(exports, require("foo"), require("babel-runtime/helpers")); } })(function (exports, _foo, _babelRuntimeHelpers) { - "use strict"; - var _babelHelpers = _babelRuntimeHelpers["default"]; var foo = _babelHelpers.interopRequire(_foo);