From 6ace07c1033e265e18857715d999cbc35e34bf74 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Tue, 26 Jul 2022 07:24:58 +0200 Subject: [PATCH] Use var for IIFE Otherwise, the created variable is not on the global object --- src/finalisers/iife.ts | 4 ++-- test/form/samples/deprecated/prefer-const/_expected/iife.js | 2 +- .../const-bindings-false/_expected/iife.js | 2 +- .../const-bindings-true/_expected/iife.js | 2 +- .../generated-code/const-bindings-true/_expected/iife.js | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/finalisers/iife.ts b/src/finalisers/iife.ts index a5bd3807eea..eb34aa57c11 100644 --- a/src/finalisers/iife.ts +++ b/src/finalisers/iife.ts @@ -37,7 +37,7 @@ export default function iife( strict }: NormalizedOutputOptions ): Bundle { - const { _, cnst, getNonArrowFunctionIntro, getPropertyAccess, n } = snippets; + const { _, getNonArrowFunctionIntro, getPropertyAccess, n } = snippets; const isNamespaced = name && name.includes('.'); const useVariableAssignment = !extend && !isNamespaced; @@ -96,7 +96,7 @@ export default function iife( if (hasExports) { if (name && !(extend && namedExportsMode)) { wrapperIntro = - (useVariableAssignment ? `${cnst} ${name}` : `this${keypath(name, getPropertyAccess)}`) + + (useVariableAssignment ? `var ${name}` : `this${keypath(name, getPropertyAccess)}`) + `${_}=${_}${wrapperIntro}`; } if (isNamespaced) { diff --git a/test/form/samples/deprecated/prefer-const/_expected/iife.js b/test/form/samples/deprecated/prefer-const/_expected/iife.js index f1137fac473..85ef2a3c203 100644 --- a/test/form/samples/deprecated/prefer-const/_expected/iife.js +++ b/test/form/samples/deprecated/prefer-const/_expected/iife.js @@ -1,4 +1,4 @@ -const myBundle = (function (other) { +var myBundle = (function (other) { 'use strict'; const a = 1; diff --git a/test/form/samples/generated-code-compact/const-bindings-false/_expected/iife.js b/test/form/samples/generated-code-compact/const-bindings-false/_expected/iife.js index 9dbfd90a4a9..ab4d2e29f73 100644 --- a/test/form/samples/generated-code-compact/const-bindings-false/_expected/iife.js +++ b/test/form/samples/generated-code-compact/const-bindings-false/_expected/iife.js @@ -1,2 +1,2 @@ -const bundle=(function(exports,foo$1){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{'default':e};function _interopNamespace(e){if(e&&e.__esModule)return e;const n=Object.create(null);if(e){for(const k in e){if(k!=='default'){const d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:()=>e[k]});}}}n["default"]=e;return Object.freeze(n)}const foo__default=/*#__PURE__*/_interopDefaultLegacy(foo$1);const foo__namespace=/*#__PURE__*/_interopNamespace(foo$1);const _missingExportShim=void 0;const foo = 'bar';const other=/*#__PURE__*/Object.freeze({__proto__:null,foo:foo,missing:_missingExportShim});const synthetic = { bar: 'baz' };console.log(foo__default["default"], foo__namespace, other, bar, _missingExportShim); +var bundle=(function(exports,foo$1){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{'default':e};function _interopNamespace(e){if(e&&e.__esModule)return e;const n=Object.create(null);if(e){for(const k in e){if(k!=='default'){const d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:()=>e[k]});}}}n["default"]=e;return Object.freeze(n)}const foo__default=/*#__PURE__*/_interopDefaultLegacy(foo$1);const foo__namespace=/*#__PURE__*/_interopNamespace(foo$1);const _missingExportShim=void 0;const foo = 'bar';const other=/*#__PURE__*/Object.freeze({__proto__:null,foo:foo,missing:_missingExportShim});const synthetic = { bar: 'baz' };console.log(foo__default["default"], foo__namespace, other, bar, _missingExportShim); const main = 42;exports["default"]=main;exports.syntheticMissing=synthetic.syntheticMissing;for(const k in foo$1){if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:()=>foo$1[k]})}Object.defineProperty(exports,'__esModule',{value:true});return exports;})({},foo$1); \ No newline at end of file diff --git a/test/form/samples/generated-code-compact/const-bindings-true/_expected/iife.js b/test/form/samples/generated-code-compact/const-bindings-true/_expected/iife.js index 9dbfd90a4a9..ab4d2e29f73 100644 --- a/test/form/samples/generated-code-compact/const-bindings-true/_expected/iife.js +++ b/test/form/samples/generated-code-compact/const-bindings-true/_expected/iife.js @@ -1,2 +1,2 @@ -const bundle=(function(exports,foo$1){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{'default':e};function _interopNamespace(e){if(e&&e.__esModule)return e;const n=Object.create(null);if(e){for(const k in e){if(k!=='default'){const d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:()=>e[k]});}}}n["default"]=e;return Object.freeze(n)}const foo__default=/*#__PURE__*/_interopDefaultLegacy(foo$1);const foo__namespace=/*#__PURE__*/_interopNamespace(foo$1);const _missingExportShim=void 0;const foo = 'bar';const other=/*#__PURE__*/Object.freeze({__proto__:null,foo:foo,missing:_missingExportShim});const synthetic = { bar: 'baz' };console.log(foo__default["default"], foo__namespace, other, bar, _missingExportShim); +var bundle=(function(exports,foo$1){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{'default':e};function _interopNamespace(e){if(e&&e.__esModule)return e;const n=Object.create(null);if(e){for(const k in e){if(k!=='default'){const d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:()=>e[k]});}}}n["default"]=e;return Object.freeze(n)}const foo__default=/*#__PURE__*/_interopDefaultLegacy(foo$1);const foo__namespace=/*#__PURE__*/_interopNamespace(foo$1);const _missingExportShim=void 0;const foo = 'bar';const other=/*#__PURE__*/Object.freeze({__proto__:null,foo:foo,missing:_missingExportShim});const synthetic = { bar: 'baz' };console.log(foo__default["default"], foo__namespace, other, bar, _missingExportShim); const main = 42;exports["default"]=main;exports.syntheticMissing=synthetic.syntheticMissing;for(const k in foo$1){if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:()=>foo$1[k]})}Object.defineProperty(exports,'__esModule',{value:true});return exports;})({},foo$1); \ No newline at end of file diff --git a/test/form/samples/generated-code/const-bindings-true/_expected/iife.js b/test/form/samples/generated-code/const-bindings-true/_expected/iife.js index deec5fa0fae..5f64bf29fa1 100644 --- a/test/form/samples/generated-code/const-bindings-true/_expected/iife.js +++ b/test/form/samples/generated-code/const-bindings-true/_expected/iife.js @@ -1,4 +1,4 @@ -const bundle = (function (exports, foo$1) { +var bundle = (function (exports, foo$1) { 'use strict'; const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { 'default': e };