diff --git a/src/finalisers/iife.js b/src/finalisers/iife.js index f16618a33e9..97399ded91f 100644 --- a/src/finalisers/iife.js +++ b/src/finalisers/iife.js @@ -61,7 +61,6 @@ export default function iife ( bundle, magicString, { exportMode, indentString, const useStrict = options.useStrict !== false ? `${indentString}'use strict';\n\n` : ``; let wrapperIntro = `(function (${args}) {\n${useStrict}`; - const wrapperOutro = `\n\n}(${dependencies}));`; if ( exportMode !== 'none' && !extend) { wrapperIntro = ( isNamespaced ? thisProp(name) : `${bundle.varOrConst} ${name}` ) + ` = ${wrapperIntro}`; @@ -71,6 +70,12 @@ export default function iife ( bundle, magicString, { exportMode, indentString, wrapperIntro = setupNamespace( name ) + wrapperIntro; } + let wrapperOutro = `\n\n}(${dependencies}));`; + + if (justVariable && exportMode === 'named') { + wrapperOutro = `\n\n${indentString}return exports;${wrapperOutro}`; + } + // var foo__default = 'default' in foo ? foo['default'] : foo; const interopBlock = getInteropBlock( bundle, options ); if ( interopBlock ) magicString.prepend( interopBlock + '\n\n' ); diff --git a/test/form/assignment-to-exports-class-declaration/_expected/iife.js b/test/form/assignment-to-exports-class-declaration/_expected/iife.js index 1ee935ac7ea..8976f3efde1 100644 --- a/test/form/assignment-to-exports-class-declaration/_expected/iife.js +++ b/test/form/assignment-to-exports-class-declaration/_expected/iife.js @@ -4,4 +4,6 @@ var myModule = (function (exports) { exports.Foo = class Foo {}; exports.Foo = lol( exports.Foo ); + return exports; + }({})); diff --git a/test/form/assignment-to-exports/_expected/iife.js b/test/form/assignment-to-exports/_expected/iife.js index ceeae04f779..037bd6f5167 100644 --- a/test/form/assignment-to-exports/_expected/iife.js +++ b/test/form/assignment-to-exports/_expected/iife.js @@ -3,4 +3,6 @@ var bundle = (function (exports) { exports.foo = 1; + return exports; + }({})); diff --git a/test/form/computed-properties/_expected/iife.js b/test/form/computed-properties/_expected/iife.js index e90a2face5a..8dbb4510e49 100644 --- a/test/form/computed-properties/_expected/iife.js +++ b/test/form/computed-properties/_expected/iife.js @@ -17,4 +17,6 @@ var computedProperties = (function (exports) { exports.x = x; exports.X = X; + return exports; + }({})); diff --git a/test/form/dedupes-external-imports/_expected/iife.js b/test/form/dedupes-external-imports/_expected/iife.js index 2b3d6995270..a1da8a4434f 100644 --- a/test/form/dedupes-external-imports/_expected/iife.js +++ b/test/form/dedupes-external-imports/_expected/iife.js @@ -30,4 +30,6 @@ var myBundle = (function (exports,external) { exports.bar = bar; exports.baz = baz; + return exports; + }({},external)); diff --git a/test/form/export-all-from-internal/_expected/iife.js b/test/form/export-all-from-internal/_expected/iife.js index 9a704e4992d..9c7ab27586a 100644 --- a/test/form/export-all-from-internal/_expected/iife.js +++ b/test/form/export-all-from-internal/_expected/iife.js @@ -7,4 +7,6 @@ var exposedInternals = (function (exports) { exports.a = a; exports.b = b; + return exports; + }({})); diff --git a/test/form/export-all-multiple/_expected/iife.js b/test/form/export-all-multiple/_expected/iife.js index 67f4d7a4bb7..f233c39c7a2 100644 --- a/test/form/export-all-multiple/_expected/iife.js +++ b/test/form/export-all-multiple/_expected/iife.js @@ -7,4 +7,6 @@ var myBundle = (function (exports,foo,bar,baz) { Object.keys(bar).forEach(function (key) { exports[key] = bar[key]; }); Object.keys(baz).forEach(function (key) { exports[key] = baz[key]; }); + return exports; + }({},foo,bar,baz)); diff --git a/test/form/export-default-import/_expected/iife.js b/test/form/export-default-import/_expected/iife.js index 9497ffe0f27..c9993de3eeb 100644 --- a/test/form/export-default-import/_expected/iife.js +++ b/test/form/export-default-import/_expected/iife.js @@ -7,4 +7,6 @@ var myBundle = (function (exports,x) { exports.x = x; + return exports; + }({},x)); diff --git a/test/form/exports-at-end-if-possible/_expected/iife.js b/test/form/exports-at-end-if-possible/_expected/iife.js index ebcedb69450..644a208771e 100644 --- a/test/form/exports-at-end-if-possible/_expected/iife.js +++ b/test/form/exports-at-end-if-possible/_expected/iife.js @@ -9,4 +9,6 @@ var myBundle = (function (exports) { exports.FOO = FOO; + return exports; + }({})); diff --git a/test/form/legacy-getter/_expected/iife.js b/test/form/legacy-getter/_expected/iife.js index 2eb3cf7ebb7..e197629d316 100644 --- a/test/form/legacy-getter/_expected/iife.js +++ b/test/form/legacy-getter/_expected/iife.js @@ -21,4 +21,6 @@ var foo = (function (exports) { exports.B = browserStuff; + return exports; + }({})); diff --git a/test/form/legacy/_expected/iife.js b/test/form/legacy/_expected/iife.js index 2374a8872bf..ce16c8baba4 100644 --- a/test/form/legacy/_expected/iife.js +++ b/test/form/legacy/_expected/iife.js @@ -18,4 +18,6 @@ var myBundle = (function (exports) { exports.a = a; exports.b = b; + return exports; + }({})); diff --git a/test/form/multiple-exports/_expected/iife.js b/test/form/multiple-exports/_expected/iife.js index 767ee076117..1dc2de194ec 100644 --- a/test/form/multiple-exports/_expected/iife.js +++ b/test/form/multiple-exports/_expected/iife.js @@ -7,4 +7,6 @@ var myBundle = (function (exports) { exports.foo = foo; exports.bar = bar; + return exports; + }({})); diff --git a/test/form/no-treeshake/_expected/iife.js b/test/form/no-treeshake/_expected/iife.js index 1dfeb465580..82f5591708d 100644 --- a/test/form/no-treeshake/_expected/iife.js +++ b/test/form/no-treeshake/_expected/iife.js @@ -23,4 +23,6 @@ var stirred = (function (exports,external) { exports.getPrototypeOf = getPrototypeOf; exports.strange = quux; + return exports; + }({},external)); diff --git a/test/form/preserves-comments-after-imports/_expected/iife.js b/test/form/preserves-comments-after-imports/_expected/iife.js index b53986fc227..2964142947f 100644 --- a/test/form/preserves-comments-after-imports/_expected/iife.js +++ b/test/form/preserves-comments-after-imports/_expected/iife.js @@ -9,4 +9,6 @@ var myBundle = (function (exports) { exports.obj = obj; + return exports; + }({})); diff --git a/test/form/reexports-from-external/_expected/iife.js b/test/form/reexports-from-external/_expected/iife.js index a292a20e190..698ec93c66d 100644 --- a/test/form/reexports-from-external/_expected/iife.js +++ b/test/form/reexports-from-external/_expected/iife.js @@ -5,4 +5,6 @@ var myBundle = (function (exports,external) { Object.keys(external).forEach(function (key) { exports[key] = external[key]; }); + return exports; + }({},external)); diff --git a/test/form/umd-noconflict/_expected/iife.js b/test/form/umd-noconflict/_expected/iife.js index 9a28bb94d44..fcc62306366 100644 --- a/test/form/umd-noconflict/_expected/iife.js +++ b/test/form/umd-noconflict/_expected/iife.js @@ -13,4 +13,6 @@ var FooBar = (function (exports) { exports.number = number; exports.setting = setting; + return exports; + }({}));