diff --git a/src/ast/variables/NamespaceVariable.ts b/src/ast/variables/NamespaceVariable.ts index 7a22234e862..10b36bdc9fb 100644 --- a/src/ast/variables/NamespaceVariable.ts +++ b/src/ast/variables/NamespaceVariable.ts @@ -91,6 +91,8 @@ export default class NamespaceVariable extends Variable { return `${t}${safeName}: ${original.getName()}`; }); + members.unshift(`${t}__proto__:${_}null`); + if (options.namespaceToStringTag) { members.unshift(`${t}[Symbol.toStringTag]:${_}'Module'`); } diff --git a/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/amd/generated-dep1.js b/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/amd/generated-dep1.js index 2ec5ef78f0c..d1ed622ba34 100644 --- a/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/amd/generated-dep1.js +++ b/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/amd/generated-dep1.js @@ -11,6 +11,7 @@ define(['exports'], function (exports) { 'use strict'; } var dep1 = /*#__PURE__*/Object.freeze({ + __proto__: null, bar: bar }); diff --git a/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/cjs/generated-dep1.js b/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/cjs/generated-dep1.js index 957dd6916a7..8404868bf0f 100644 --- a/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/cjs/generated-dep1.js +++ b/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/cjs/generated-dep1.js @@ -11,6 +11,7 @@ function bar() { } var dep1 = /*#__PURE__*/Object.freeze({ + __proto__: null, bar: bar }); diff --git a/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/es/generated-dep1.js b/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/es/generated-dep1.js index 867796fbd1d..861a4f7b643 100644 --- a/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/es/generated-dep1.js +++ b/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/es/generated-dep1.js @@ -9,6 +9,7 @@ function bar() { } var dep1 = /*#__PURE__*/Object.freeze({ + __proto__: null, bar: bar }); diff --git a/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/system/generated-dep1.js b/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/system/generated-dep1.js index 7c01c4d8b46..f88ae2d042e 100644 --- a/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/system/generated-dep1.js +++ b/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/system/generated-dep1.js @@ -19,6 +19,7 @@ System.register([], function (exports) { } var dep1 = /*#__PURE__*/Object.freeze({ + __proto__: null, bar: bar }); diff --git a/test/chunking-form/samples/dynamic-import-statically-imported/_expected/amd/generated-dep1.js b/test/chunking-form/samples/dynamic-import-statically-imported/_expected/amd/generated-dep1.js index 2ec5ef78f0c..d1ed622ba34 100644 --- a/test/chunking-form/samples/dynamic-import-statically-imported/_expected/amd/generated-dep1.js +++ b/test/chunking-form/samples/dynamic-import-statically-imported/_expected/amd/generated-dep1.js @@ -11,6 +11,7 @@ define(['exports'], function (exports) { 'use strict'; } var dep1 = /*#__PURE__*/Object.freeze({ + __proto__: null, bar: bar }); diff --git a/test/chunking-form/samples/dynamic-import-statically-imported/_expected/cjs/generated-dep1.js b/test/chunking-form/samples/dynamic-import-statically-imported/_expected/cjs/generated-dep1.js index 957dd6916a7..8404868bf0f 100644 --- a/test/chunking-form/samples/dynamic-import-statically-imported/_expected/cjs/generated-dep1.js +++ b/test/chunking-form/samples/dynamic-import-statically-imported/_expected/cjs/generated-dep1.js @@ -11,6 +11,7 @@ function bar() { } var dep1 = /*#__PURE__*/Object.freeze({ + __proto__: null, bar: bar }); diff --git a/test/chunking-form/samples/dynamic-import-statically-imported/_expected/es/generated-dep1.js b/test/chunking-form/samples/dynamic-import-statically-imported/_expected/es/generated-dep1.js index 867796fbd1d..861a4f7b643 100644 --- a/test/chunking-form/samples/dynamic-import-statically-imported/_expected/es/generated-dep1.js +++ b/test/chunking-form/samples/dynamic-import-statically-imported/_expected/es/generated-dep1.js @@ -9,6 +9,7 @@ function bar() { } var dep1 = /*#__PURE__*/Object.freeze({ + __proto__: null, bar: bar }); diff --git a/test/chunking-form/samples/dynamic-import-statically-imported/_expected/system/generated-dep1.js b/test/chunking-form/samples/dynamic-import-statically-imported/_expected/system/generated-dep1.js index 7c01c4d8b46..f88ae2d042e 100644 --- a/test/chunking-form/samples/dynamic-import-statically-imported/_expected/system/generated-dep1.js +++ b/test/chunking-form/samples/dynamic-import-statically-imported/_expected/system/generated-dep1.js @@ -19,6 +19,7 @@ System.register([], function (exports) { } var dep1 = /*#__PURE__*/Object.freeze({ + __proto__: null, bar: bar }); diff --git a/test/chunking-form/samples/entry-point-without-own-code/_expected/amd/generated-m1.js b/test/chunking-form/samples/entry-point-without-own-code/_expected/amd/generated-m1.js index d23351b5be1..52ed74a5c5c 100644 --- a/test/chunking-form/samples/entry-point-without-own-code/_expected/amd/generated-m1.js +++ b/test/chunking-form/samples/entry-point-without-own-code/_expected/amd/generated-m1.js @@ -3,6 +3,7 @@ define(['exports', './m2'], function (exports, m2) { 'use strict'; var ms = /*#__PURE__*/Object.freeze({ + __proto__: null, m2: m2 }); diff --git a/test/chunking-form/samples/entry-point-without-own-code/_expected/cjs/generated-m1.js b/test/chunking-form/samples/entry-point-without-own-code/_expected/cjs/generated-m1.js index 9e827c896df..f8fc76bc360 100644 --- a/test/chunking-form/samples/entry-point-without-own-code/_expected/cjs/generated-m1.js +++ b/test/chunking-form/samples/entry-point-without-own-code/_expected/cjs/generated-m1.js @@ -5,6 +5,7 @@ var m2 = require('./m2.js'); var ms = /*#__PURE__*/Object.freeze({ + __proto__: null, m2: m2 }); diff --git a/test/chunking-form/samples/entry-point-without-own-code/_expected/es/generated-m1.js b/test/chunking-form/samples/entry-point-without-own-code/_expected/es/generated-m1.js index 2feaa1ff203..eb6534be2c3 100644 --- a/test/chunking-form/samples/entry-point-without-own-code/_expected/es/generated-m1.js +++ b/test/chunking-form/samples/entry-point-without-own-code/_expected/es/generated-m1.js @@ -4,6 +4,7 @@ export { default as m } from './m2.js'; var ms = /*#__PURE__*/Object.freeze({ + __proto__: null, m2: m2 }); diff --git a/test/chunking-form/samples/entry-point-without-own-code/_expected/system/generated-m1.js b/test/chunking-form/samples/entry-point-without-own-code/_expected/system/generated-m1.js index e9359f1a885..b592474ea09 100644 --- a/test/chunking-form/samples/entry-point-without-own-code/_expected/system/generated-m1.js +++ b/test/chunking-form/samples/entry-point-without-own-code/_expected/system/generated-m1.js @@ -11,6 +11,7 @@ System.register(['./m2.js'], function (exports) { var ms = /*#__PURE__*/Object.freeze({ + __proto__: null, m2: m2 }); exports('a', ms); diff --git a/test/chunking-form/samples/namespace-object-import/_expected/amd/generated-main2.js b/test/chunking-form/samples/namespace-object-import/_expected/amd/generated-main2.js index 0fbd5d7082f..607a4ae6825 100644 --- a/test/chunking-form/samples/namespace-object-import/_expected/amd/generated-main2.js +++ b/test/chunking-form/samples/namespace-object-import/_expected/amd/generated-main2.js @@ -4,6 +4,7 @@ define(['exports'], function (exports) { 'use strict'; var b = 'a'; var main2 = /*#__PURE__*/Object.freeze({ + __proto__: null, a: a, b: b }); diff --git a/test/chunking-form/samples/namespace-object-import/_expected/cjs/generated-main2.js b/test/chunking-form/samples/namespace-object-import/_expected/cjs/generated-main2.js index ad0cd3ad080..ed63cad59f5 100644 --- a/test/chunking-form/samples/namespace-object-import/_expected/cjs/generated-main2.js +++ b/test/chunking-form/samples/namespace-object-import/_expected/cjs/generated-main2.js @@ -4,6 +4,7 @@ var a = 'a'; var b = 'a'; var main2 = /*#__PURE__*/Object.freeze({ + __proto__: null, a: a, b: b }); diff --git a/test/chunking-form/samples/namespace-object-import/_expected/es/generated-main2.js b/test/chunking-form/samples/namespace-object-import/_expected/es/generated-main2.js index 8b1a237368b..c52fcf07ba6 100644 --- a/test/chunking-form/samples/namespace-object-import/_expected/es/generated-main2.js +++ b/test/chunking-form/samples/namespace-object-import/_expected/es/generated-main2.js @@ -2,6 +2,7 @@ var a = 'a'; var b = 'a'; var main2 = /*#__PURE__*/Object.freeze({ + __proto__: null, a: a, b: b }); diff --git a/test/chunking-form/samples/namespace-object-import/_expected/system/generated-main2.js b/test/chunking-form/samples/namespace-object-import/_expected/system/generated-main2.js index 249c51d4f16..f30d34dac44 100644 --- a/test/chunking-form/samples/namespace-object-import/_expected/system/generated-main2.js +++ b/test/chunking-form/samples/namespace-object-import/_expected/system/generated-main2.js @@ -7,6 +7,7 @@ System.register([], function (exports) { var b = exports('b', 'a'); var main2 = /*#__PURE__*/Object.freeze({ + __proto__: null, a: a, b: b }); diff --git a/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/amd/generated-index.js b/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/amd/generated-index.js index 8609967a094..417ce1f1d08 100644 --- a/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/amd/generated-index.js +++ b/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/amd/generated-index.js @@ -3,6 +3,7 @@ define(['exports', './generated-dep', 'external'], function (exports, dep, exter console.log(external.reexported); var lib = /*#__PURE__*/Object.freeze({ + __proto__: null, reexported: dep.reexported }); diff --git a/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/cjs/generated-index.js b/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/cjs/generated-index.js index 2615d5c1483..4c7f1ca2024 100644 --- a/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/cjs/generated-index.js +++ b/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/cjs/generated-index.js @@ -6,6 +6,7 @@ var external = require('external'); console.log(external.reexported); var lib = /*#__PURE__*/Object.freeze({ + __proto__: null, reexported: dep.reexported }); diff --git a/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/es/generated-index.js b/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/es/generated-index.js index 78e52033db5..8a2032f39bd 100644 --- a/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/es/generated-index.js +++ b/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/es/generated-index.js @@ -4,6 +4,7 @@ import { reexported } from 'external'; console.log(reexported); var lib = /*#__PURE__*/Object.freeze({ + __proto__: null, reexported: reexported$1 }); diff --git a/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/system/generated-index.js b/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/system/generated-index.js index 5acfbcac078..8f6d3bfd693 100644 --- a/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/system/generated-index.js +++ b/test/chunking-form/samples/namespace-reexport-name-conflict/_expected/system/generated-index.js @@ -12,6 +12,7 @@ System.register(['./generated-dep.js', 'external'], function (exports) { console.log(reexported); var lib = /*#__PURE__*/Object.freeze({ + __proto__: null, reexported: reexported$1 }); exports('l', lib); diff --git a/test/chunking-form/samples/namespace-reexports/_expected/amd/generated-index.js b/test/chunking-form/samples/namespace-reexports/_expected/amd/generated-index.js index 1337d2c2adb..f9e5cec4b44 100644 --- a/test/chunking-form/samples/namespace-reexports/_expected/amd/generated-index.js +++ b/test/chunking-form/samples/namespace-reexports/_expected/amd/generated-index.js @@ -5,6 +5,7 @@ define(['exports', './hsl2hsv'], function (exports, hsl2hsv$1) { 'use strict'; console.log(hsl2hsv); var lib = /*#__PURE__*/Object.freeze({ + __proto__: null, hsl2hsv: hsl2hsv$1.default }); diff --git a/test/chunking-form/samples/namespace-reexports/_expected/cjs/generated-index.js b/test/chunking-form/samples/namespace-reexports/_expected/cjs/generated-index.js index dd171505ad1..e6feee3b2d5 100644 --- a/test/chunking-form/samples/namespace-reexports/_expected/cjs/generated-index.js +++ b/test/chunking-form/samples/namespace-reexports/_expected/cjs/generated-index.js @@ -7,6 +7,7 @@ var hsl2hsv = 'asdf'; console.log(hsl2hsv); var lib = /*#__PURE__*/Object.freeze({ + __proto__: null, hsl2hsv: hsl2hsv$1.default }); diff --git a/test/chunking-form/samples/namespace-reexports/_expected/es/generated-index.js b/test/chunking-form/samples/namespace-reexports/_expected/es/generated-index.js index aa297829f3f..8909c925361 100644 --- a/test/chunking-form/samples/namespace-reexports/_expected/es/generated-index.js +++ b/test/chunking-form/samples/namespace-reexports/_expected/es/generated-index.js @@ -6,6 +6,7 @@ var hsl2hsv = 'asdf'; console.log(hsl2hsv); var lib = /*#__PURE__*/Object.freeze({ + __proto__: null, hsl2hsv: hsl2hsv$1 }); diff --git a/test/chunking-form/samples/namespace-reexports/_expected/system/generated-index.js b/test/chunking-form/samples/namespace-reexports/_expected/system/generated-index.js index c1bc5d3dfa9..69c57be6889 100644 --- a/test/chunking-form/samples/namespace-reexports/_expected/system/generated-index.js +++ b/test/chunking-form/samples/namespace-reexports/_expected/system/generated-index.js @@ -13,6 +13,7 @@ System.register(['./hsl2hsv.js'], function (exports) { console.log(hsl2hsv); var lib = /*#__PURE__*/Object.freeze({ + __proto__: null, hsl2hsv: hsl2hsv$1 }); exports('l', lib); diff --git a/test/form/samples/compact/_expected/amd.js b/test/form/samples/compact/_expected/amd.js index f4dcdb9033c..ae3955b3c27 100644 --- a/test/form/samples/compact/_expected/amd.js +++ b/test/form/samples/compact/_expected/amd.js @@ -1,4 +1,4 @@ -define(['external'],function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',get default(){return foo}});console.log(self); +define(['external'],function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',__proto__:null,get default(){return foo}});console.log(self); function foo () { console.log( x ); } diff --git a/test/form/samples/compact/_expected/cjs.js b/test/form/samples/compact/_expected/cjs.js index 361c43c7205..0c18fd099f3 100644 --- a/test/form/samples/compact/_expected/cjs.js +++ b/test/form/samples/compact/_expected/cjs.js @@ -1,4 +1,4 @@ -'use strict';function _interopDefault(e){return(e&&(typeof e==='object')&&'default'in e)?e['default']:e}var x=_interopDefault(require('external'));var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',get default(){return foo}});console.log(self); +'use strict';function _interopDefault(e){return(e&&(typeof e==='object')&&'default'in e)?e['default']:e}var x=_interopDefault(require('external'));var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',__proto__:null,get default(){return foo}});console.log(self); function foo () { console.log( x ); } diff --git a/test/form/samples/compact/_expected/es.js b/test/form/samples/compact/_expected/es.js index 2ade9a52f1f..8440fbc9991 100644 --- a/test/form/samples/compact/_expected/es.js +++ b/test/form/samples/compact/_expected/es.js @@ -1,4 +1,4 @@ -import x from'external';var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',get default(){return foo}});console.log(self); +import x from'external';var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',__proto__:null,get default(){return foo}});console.log(self); function foo () { console.log( x ); } diff --git a/test/form/samples/compact/_expected/iife.js b/test/form/samples/compact/_expected/iife.js index 90d89ca7d8b..110ab76bfb1 100644 --- a/test/form/samples/compact/_expected/iife.js +++ b/test/form/samples/compact/_expected/iife.js @@ -1,4 +1,4 @@ -var foo=(function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',get default(){return foo}});console.log(self); +var foo=(function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',__proto__:null,get default(){return foo}});console.log(self); function foo () { console.log( x ); } diff --git a/test/form/samples/compact/_expected/system.js b/test/form/samples/compact/_expected/system.js index e819d842949..42b5074a7cb 100644 --- a/test/form/samples/compact/_expected/system.js +++ b/test/form/samples/compact/_expected/system.js @@ -1,4 +1,4 @@ -System.register('foo',['external'],function(exports){'use strict';var x;return{setters:[function(module){x=module.default;}],execute:function(){exports('default',foo);var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',get default(){return foo}});console.log(self); +System.register('foo',['external'],function(exports){'use strict';var x;return{setters:[function(module){x=module.default;}],execute:function(){exports('default',foo);var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',__proto__:null,get default(){return foo}});console.log(self); function foo () { console.log( x ); } diff --git a/test/form/samples/compact/_expected/umd.js b/test/form/samples/compact/_expected/umd.js index 443f7265209..8a112451052 100644 --- a/test/form/samples/compact/_expected/umd.js +++ b/test/form/samples/compact/_expected/umd.js @@ -1,4 +1,4 @@ -(function(g,f){typeof exports==='object'&&typeof module!=='undefined'?module.exports=f(require('external')):typeof define==='function'&&define.amd?define(['external'],f):(g=g||self,g.foo=f(g.x));}(this,function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',get default(){return foo}});console.log(self); +(function(g,f){typeof exports==='object'&&typeof module!=='undefined'?module.exports=f(require('external')):typeof define==='function'&&define.amd?define(['external'],f):(g=g||self,g.foo=f(g.x));}(this,function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',__proto__:null,get default(){return foo}});console.log(self); function foo () { console.log( x ); } diff --git a/test/form/samples/dynamic-import-inlining/_expected.js b/test/form/samples/dynamic-import-inlining/_expected.js index 03ab247516e..ae434046e6c 100644 --- a/test/form/samples/dynamic-import-inlining/_expected.js +++ b/test/form/samples/dynamic-import-inlining/_expected.js @@ -4,6 +4,7 @@ Promise.resolve().then(function () { return foo$1; }); const foo = 1; var foo$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, foo: foo }); diff --git a/test/form/samples/freeze/_expected/amd.js b/test/form/samples/freeze/_expected/amd.js index ee4280ef7f7..60c6a2683a6 100644 --- a/test/form/samples/freeze/_expected/amd.js +++ b/test/form/samples/freeze/_expected/amd.js @@ -4,6 +4,7 @@ define(['exports'], function (exports) { 'use strict'; const bar = 2; var namespace = ({ + __proto__: null, foo: foo, bar: bar }); diff --git a/test/form/samples/freeze/_expected/cjs.js b/test/form/samples/freeze/_expected/cjs.js index b9d3c67da24..c010fbc614a 100644 --- a/test/form/samples/freeze/_expected/cjs.js +++ b/test/form/samples/freeze/_expected/cjs.js @@ -6,6 +6,7 @@ const foo = 1; const bar = 2; var namespace = ({ + __proto__: null, foo: foo, bar: bar }); diff --git a/test/form/samples/freeze/_expected/es.js b/test/form/samples/freeze/_expected/es.js index 38e5ade2837..45de6b68c63 100644 --- a/test/form/samples/freeze/_expected/es.js +++ b/test/form/samples/freeze/_expected/es.js @@ -2,6 +2,7 @@ const foo = 1; const bar = 2; var namespace = ({ + __proto__: null, foo: foo, bar: bar }); diff --git a/test/form/samples/freeze/_expected/iife.js b/test/form/samples/freeze/_expected/iife.js index a86b90f7a80..1dc95266499 100644 --- a/test/form/samples/freeze/_expected/iife.js +++ b/test/form/samples/freeze/_expected/iife.js @@ -5,6 +5,7 @@ var myBundle = (function (exports) { const bar = 2; var namespace = ({ + __proto__: null, foo: foo, bar: bar }); diff --git a/test/form/samples/freeze/_expected/system.js b/test/form/samples/freeze/_expected/system.js index 2e6511500f9..c331d83ceac 100644 --- a/test/form/samples/freeze/_expected/system.js +++ b/test/form/samples/freeze/_expected/system.js @@ -7,6 +7,7 @@ System.register('myBundle', [], function (exports) { const bar = 2; var namespace = ({ + __proto__: null, foo: foo, bar: bar }); diff --git a/test/form/samples/freeze/_expected/umd.js b/test/form/samples/freeze/_expected/umd.js index bb1168a5a08..843b48f8c3f 100644 --- a/test/form/samples/freeze/_expected/umd.js +++ b/test/form/samples/freeze/_expected/umd.js @@ -8,6 +8,7 @@ const bar = 2; var namespace = ({ + __proto__: null, foo: foo, bar: bar }); diff --git a/test/form/samples/namespace-object-import/_expected/amd.js b/test/form/samples/namespace-object-import/_expected/amd.js index eea779d6e20..0e663d37254 100644 --- a/test/form/samples/namespace-object-import/_expected/amd.js +++ b/test/form/samples/namespace-object-import/_expected/amd.js @@ -3,6 +3,7 @@ define(function () { 'use strict'; var dep = "default"; var dep$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, 'default': dep }); diff --git a/test/form/samples/namespace-object-import/_expected/cjs.js b/test/form/samples/namespace-object-import/_expected/cjs.js index 2271b4c45d8..c27e146679f 100644 --- a/test/form/samples/namespace-object-import/_expected/cjs.js +++ b/test/form/samples/namespace-object-import/_expected/cjs.js @@ -3,6 +3,7 @@ var dep = "default"; var dep$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, 'default': dep }); diff --git a/test/form/samples/namespace-object-import/_expected/es.js b/test/form/samples/namespace-object-import/_expected/es.js index 321ce0ebcbc..fc850f02f55 100644 --- a/test/form/samples/namespace-object-import/_expected/es.js +++ b/test/form/samples/namespace-object-import/_expected/es.js @@ -1,6 +1,7 @@ var dep = "default"; var dep$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, 'default': dep }); diff --git a/test/form/samples/namespace-object-import/_expected/iife.js b/test/form/samples/namespace-object-import/_expected/iife.js index 8560919ed54..8048e57105b 100644 --- a/test/form/samples/namespace-object-import/_expected/iife.js +++ b/test/form/samples/namespace-object-import/_expected/iife.js @@ -4,6 +4,7 @@ var dep = "default"; var dep$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, 'default': dep }); diff --git a/test/form/samples/namespace-object-import/_expected/system.js b/test/form/samples/namespace-object-import/_expected/system.js index 16852da03f6..782f2137b93 100644 --- a/test/form/samples/namespace-object-import/_expected/system.js +++ b/test/form/samples/namespace-object-import/_expected/system.js @@ -6,6 +6,7 @@ System.register([], function () { var dep = "default"; var dep$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, 'default': dep }); diff --git a/test/form/samples/namespace-object-import/_expected/umd.js b/test/form/samples/namespace-object-import/_expected/umd.js index 781060a2c00..175d0d9b1b3 100644 --- a/test/form/samples/namespace-object-import/_expected/umd.js +++ b/test/form/samples/namespace-object-import/_expected/umd.js @@ -6,6 +6,7 @@ var dep = "default"; var dep$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, 'default': dep }); diff --git a/test/form/samples/namespace-self-import/_expected/amd.js b/test/form/samples/namespace-self-import/_expected/amd.js index 50271286157..38976dc388e 100644 --- a/test/form/samples/namespace-self-import/_expected/amd.js +++ b/test/form/samples/namespace-self-import/_expected/amd.js @@ -1,6 +1,7 @@ define(['exports'], function (exports) { 'use strict'; var self = /*#__PURE__*/Object.freeze({ + __proto__: null, get p () { return p; } }); diff --git a/test/form/samples/namespace-self-import/_expected/cjs.js b/test/form/samples/namespace-self-import/_expected/cjs.js index 0b8cb24fa60..286ebc2c57a 100644 --- a/test/form/samples/namespace-self-import/_expected/cjs.js +++ b/test/form/samples/namespace-self-import/_expected/cjs.js @@ -3,6 +3,7 @@ Object.defineProperty(exports, '__esModule', { value: true }); var self = /*#__PURE__*/Object.freeze({ + __proto__: null, get p () { return p; } }); diff --git a/test/form/samples/namespace-self-import/_expected/es.js b/test/form/samples/namespace-self-import/_expected/es.js index af88cc937ef..b4e25aee52a 100644 --- a/test/form/samples/namespace-self-import/_expected/es.js +++ b/test/form/samples/namespace-self-import/_expected/es.js @@ -1,4 +1,5 @@ var self = /*#__PURE__*/Object.freeze({ + __proto__: null, get p () { return p; } }); diff --git a/test/form/samples/namespace-self-import/_expected/iife.js b/test/form/samples/namespace-self-import/_expected/iife.js index 5b03aaa5b6b..9eac34fd918 100644 --- a/test/form/samples/namespace-self-import/_expected/iife.js +++ b/test/form/samples/namespace-self-import/_expected/iife.js @@ -2,6 +2,7 @@ var iife = (function (exports) { 'use strict'; var self = /*#__PURE__*/Object.freeze({ + __proto__: null, get p () { return p; } }); diff --git a/test/form/samples/namespace-self-import/_expected/system.js b/test/form/samples/namespace-self-import/_expected/system.js index 730eabb5996..370359f60d3 100644 --- a/test/form/samples/namespace-self-import/_expected/system.js +++ b/test/form/samples/namespace-self-import/_expected/system.js @@ -4,6 +4,7 @@ System.register('iife', [], function (exports) { execute: function () { var self = /*#__PURE__*/Object.freeze({ + __proto__: null, get p () { return p; } }); diff --git a/test/form/samples/namespace-self-import/_expected/umd.js b/test/form/samples/namespace-self-import/_expected/umd.js index 611c0f7a26e..23766c5c4f8 100644 --- a/test/form/samples/namespace-self-import/_expected/umd.js +++ b/test/form/samples/namespace-self-import/_expected/umd.js @@ -5,6 +5,7 @@ }(this, function (exports) { 'use strict'; var self = /*#__PURE__*/Object.freeze({ + __proto__: null, get p () { return p; } }); diff --git a/test/form/samples/namespace-tostringtag/_expected/amd.js b/test/form/samples/namespace-tostringtag/_expected/amd.js index 4f533907284..e6ddbfd62f1 100644 --- a/test/form/samples/namespace-tostringtag/_expected/amd.js +++ b/test/form/samples/namespace-tostringtag/_expected/amd.js @@ -2,6 +2,7 @@ define(['exports'], function (exports) { 'use strict'; var self = /*#__PURE__*/Object.freeze({ [Symbol.toStringTag]: 'Module', + __proto__: null, get p () { return p; } }); diff --git a/test/form/samples/namespace-tostringtag/_expected/cjs.js b/test/form/samples/namespace-tostringtag/_expected/cjs.js index 29707aa7bf7..9eb8fe5b21f 100644 --- a/test/form/samples/namespace-tostringtag/_expected/cjs.js +++ b/test/form/samples/namespace-tostringtag/_expected/cjs.js @@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true }); var self = /*#__PURE__*/Object.freeze({ [Symbol.toStringTag]: 'Module', + __proto__: null, get p () { return p; } }); diff --git a/test/form/samples/namespace-tostringtag/_expected/es.js b/test/form/samples/namespace-tostringtag/_expected/es.js index aeb84e06686..b5e71f3c02f 100644 --- a/test/form/samples/namespace-tostringtag/_expected/es.js +++ b/test/form/samples/namespace-tostringtag/_expected/es.js @@ -1,5 +1,6 @@ var self = /*#__PURE__*/Object.freeze({ [Symbol.toStringTag]: 'Module', + __proto__: null, get p () { return p; } }); diff --git a/test/form/samples/namespace-tostringtag/_expected/iife.js b/test/form/samples/namespace-tostringtag/_expected/iife.js index c51559a5be6..e03dfc5a3f2 100644 --- a/test/form/samples/namespace-tostringtag/_expected/iife.js +++ b/test/form/samples/namespace-tostringtag/_expected/iife.js @@ -3,6 +3,7 @@ var iife = (function (exports) { var self = /*#__PURE__*/Object.freeze({ [Symbol.toStringTag]: 'Module', + __proto__: null, get p () { return p; } }); diff --git a/test/form/samples/namespace-tostringtag/_expected/system.js b/test/form/samples/namespace-tostringtag/_expected/system.js index 8dbbf4f6702..5e4bc576382 100644 --- a/test/form/samples/namespace-tostringtag/_expected/system.js +++ b/test/form/samples/namespace-tostringtag/_expected/system.js @@ -5,6 +5,7 @@ System.register('iife', [], function (exports) { var self = /*#__PURE__*/Object.freeze({ [Symbol.toStringTag]: 'Module', + __proto__: null, get p () { return p; } }); diff --git a/test/form/samples/namespace-tostringtag/_expected/umd.js b/test/form/samples/namespace-tostringtag/_expected/umd.js index e0c9dd8bc49..5b2d4399f88 100644 --- a/test/form/samples/namespace-tostringtag/_expected/umd.js +++ b/test/form/samples/namespace-tostringtag/_expected/umd.js @@ -6,6 +6,7 @@ var self = /*#__PURE__*/Object.freeze({ [Symbol.toStringTag]: 'Module', + __proto__: null, get p () { return p; } }); diff --git a/test/form/samples/namespaces-have-null-prototype/_config.js b/test/form/samples/namespaces-have-null-prototype/_config.js new file mode 100644 index 00000000000..faa0ac1b8e7 --- /dev/null +++ b/test/form/samples/namespaces-have-null-prototype/_config.js @@ -0,0 +1,6 @@ +module.exports = { + description: 'creates namespaces with null prototypes', + options: { + output: { name: 'myBundle' } + } +}; diff --git a/test/form/samples/namespaces-have-null-prototype/_expected/amd.js b/test/form/samples/namespaces-have-null-prototype/_expected/amd.js new file mode 100644 index 00000000000..b53ccd4d76e --- /dev/null +++ b/test/form/samples/namespaces-have-null-prototype/_expected/amd.js @@ -0,0 +1,22 @@ +define(['exports'], function (exports) { 'use strict'; + + const foo = 1; + const bar = 2; + + var namespace = /*#__PURE__*/Object.freeze({ + __proto__: null, + foo: foo, + bar: bar + }); + + console.log( Object.keys( namespace ) ); + + const a = 1; + const b = 2; + + exports.a = a; + exports.b = b; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}); diff --git a/test/form/samples/namespaces-have-null-prototype/_expected/cjs.js b/test/form/samples/namespaces-have-null-prototype/_expected/cjs.js new file mode 100644 index 00000000000..445e1b89d69 --- /dev/null +++ b/test/form/samples/namespaces-have-null-prototype/_expected/cjs.js @@ -0,0 +1,20 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const foo = 1; +const bar = 2; + +var namespace = /*#__PURE__*/Object.freeze({ + __proto__: null, + foo: foo, + bar: bar +}); + +console.log( Object.keys( namespace ) ); + +const a = 1; +const b = 2; + +exports.a = a; +exports.b = b; diff --git a/test/form/samples/namespaces-have-null-prototype/_expected/es.js b/test/form/samples/namespaces-have-null-prototype/_expected/es.js new file mode 100644 index 00000000000..6f660a34a59 --- /dev/null +++ b/test/form/samples/namespaces-have-null-prototype/_expected/es.js @@ -0,0 +1,15 @@ +const foo = 1; +const bar = 2; + +var namespace = /*#__PURE__*/Object.freeze({ + __proto__: null, + foo: foo, + bar: bar +}); + +console.log( Object.keys( namespace ) ); + +const a = 1; +const b = 2; + +export { a, b }; diff --git a/test/form/samples/namespaces-have-null-prototype/_expected/iife.js b/test/form/samples/namespaces-have-null-prototype/_expected/iife.js new file mode 100644 index 00000000000..e31bea3b476 --- /dev/null +++ b/test/form/samples/namespaces-have-null-prototype/_expected/iife.js @@ -0,0 +1,23 @@ +var myBundle = (function (exports) { + 'use strict'; + + const foo = 1; + const bar = 2; + + var namespace = /*#__PURE__*/Object.freeze({ + __proto__: null, + foo: foo, + bar: bar + }); + + console.log( Object.keys( namespace ) ); + + const a = 1; + const b = 2; + + exports.a = a; + exports.b = b; + + return exports; + +}({})); diff --git a/test/form/samples/namespaces-have-null-prototype/_expected/system.js b/test/form/samples/namespaces-have-null-prototype/_expected/system.js new file mode 100644 index 00000000000..258f8497c83 --- /dev/null +++ b/test/form/samples/namespaces-have-null-prototype/_expected/system.js @@ -0,0 +1,22 @@ +System.register('myBundle', [], function (exports) { + 'use strict'; + return { + execute: function () { + + const foo = 1; + const bar = 2; + + var namespace = /*#__PURE__*/Object.freeze({ + __proto__: null, + foo: foo, + bar: bar + }); + + console.log( Object.keys( namespace ) ); + + const a = exports('a', 1); + const b = exports('b', 2); + + } + }; +}); diff --git a/test/form/samples/namespaces-have-null-prototype/_expected/umd.js b/test/form/samples/namespaces-have-null-prototype/_expected/umd.js new file mode 100644 index 00000000000..5f67bceb3b9 --- /dev/null +++ b/test/form/samples/namespaces-have-null-prototype/_expected/umd.js @@ -0,0 +1,26 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = global || self, factory(global.myBundle = {})); +}(this, function (exports) { 'use strict'; + + const foo = 1; + const bar = 2; + + var namespace = /*#__PURE__*/Object.freeze({ + __proto__: null, + foo: foo, + bar: bar + }); + + console.log( Object.keys( namespace ) ); + + const a = 1; + const b = 2; + + exports.a = a; + exports.b = b; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); diff --git a/test/form/samples/namespaces-have-null-prototype/main.js b/test/form/samples/namespaces-have-null-prototype/main.js new file mode 100644 index 00000000000..d434187c18c --- /dev/null +++ b/test/form/samples/namespaces-have-null-prototype/main.js @@ -0,0 +1,6 @@ +import * as namespace from './namespace.js'; + +console.log( Object.keys( namespace ) ); + +export const a = 1; +export const b = 2; diff --git a/test/form/samples/namespaces-have-null-prototype/namespace.js b/test/form/samples/namespaces-have-null-prototype/namespace.js new file mode 100644 index 00000000000..7f502126131 --- /dev/null +++ b/test/form/samples/namespaces-have-null-prototype/namespace.js @@ -0,0 +1,2 @@ +export const foo = 1; +export const bar = 2; \ No newline at end of file diff --git a/test/form/samples/prefer-const/_expected/amd.js b/test/form/samples/prefer-const/_expected/amd.js index 540dfd929bd..0f423ee98cb 100644 --- a/test/form/samples/prefer-const/_expected/amd.js +++ b/test/form/samples/prefer-const/_expected/amd.js @@ -4,6 +4,7 @@ define(['other'], function (other) { 'use strict'; const b = 2; const namespace = /*#__PURE__*/Object.freeze({ + __proto__: null, a: a, b: b }); diff --git a/test/form/samples/prefer-const/_expected/cjs.js b/test/form/samples/prefer-const/_expected/cjs.js index 92bd84e15e5..01aa90d1548 100644 --- a/test/form/samples/prefer-const/_expected/cjs.js +++ b/test/form/samples/prefer-const/_expected/cjs.js @@ -6,6 +6,7 @@ const a = 1; const b = 2; const namespace = /*#__PURE__*/Object.freeze({ + __proto__: null, a: a, b: b }); diff --git a/test/form/samples/prefer-const/_expected/es.js b/test/form/samples/prefer-const/_expected/es.js index d6a49579dcc..24735286aa8 100644 --- a/test/form/samples/prefer-const/_expected/es.js +++ b/test/form/samples/prefer-const/_expected/es.js @@ -4,6 +4,7 @@ const a = 1; const b = 2; const namespace = /*#__PURE__*/Object.freeze({ + __proto__: null, a: a, b: b }); diff --git a/test/form/samples/prefer-const/_expected/iife.js b/test/form/samples/prefer-const/_expected/iife.js index e40ca88e3de..72652cb62ef 100644 --- a/test/form/samples/prefer-const/_expected/iife.js +++ b/test/form/samples/prefer-const/_expected/iife.js @@ -5,6 +5,7 @@ const myBundle = (function (other) { const b = 2; const namespace = /*#__PURE__*/Object.freeze({ + __proto__: null, a: a, b: b }); diff --git a/test/form/samples/prefer-const/_expected/system.js b/test/form/samples/prefer-const/_expected/system.js index c0f85eb7134..a0599b20df8 100644 --- a/test/form/samples/prefer-const/_expected/system.js +++ b/test/form/samples/prefer-const/_expected/system.js @@ -11,6 +11,7 @@ System.register('myBundle', ['other'], function (exports) { const b = 2; const namespace = /*#__PURE__*/Object.freeze({ + __proto__: null, a: a, b: b }); diff --git a/test/form/samples/prefer-const/_expected/umd.js b/test/form/samples/prefer-const/_expected/umd.js index 121c9f6c245..36f9cec35ce 100644 --- a/test/form/samples/prefer-const/_expected/umd.js +++ b/test/form/samples/prefer-const/_expected/umd.js @@ -8,6 +8,7 @@ const b = 2; const namespace = /*#__PURE__*/Object.freeze({ + __proto__: null, a: a, b: b }); diff --git a/test/function/samples/namespace-tostring/main.js b/test/function/samples/namespace-tostring/main.js index dd991f848c9..13e195fd6c1 100644 --- a/test/function/samples/namespace-tostring/main.js +++ b/test/function/samples/namespace-tostring/main.js @@ -1,4 +1,4 @@ import * as foo from './foo'; -assert.equal("" + foo, "[object Module]"); +assert.equal(Object.prototype.toString.call(foo), "[object Module]"); assert.equal(foo.bar, 42); diff --git a/test/function/samples/namespaces-have-null-prototype/_config.js b/test/function/samples/namespaces-have-null-prototype/_config.js new file mode 100644 index 00000000000..d64597e0b9f --- /dev/null +++ b/test/function/samples/namespaces-have-null-prototype/_config.js @@ -0,0 +1,3 @@ +module.exports = { + description: 'creates namespaces with null prototypes' +}; diff --git a/test/function/samples/namespaces-have-null-prototype/main.js b/test/function/samples/namespaces-have-null-prototype/main.js new file mode 100644 index 00000000000..51b5a680979 --- /dev/null +++ b/test/function/samples/namespaces-have-null-prototype/main.js @@ -0,0 +1,3 @@ +import * as ns from './mod'; + +assert.equal( Object.getPrototypeOf(ns), null ); diff --git a/test/function/samples/namespaces-have-null-prototype/mod.js b/test/function/samples/namespaces-have-null-prototype/mod.js new file mode 100644 index 00000000000..0b0c3304ff3 --- /dev/null +++ b/test/function/samples/namespaces-have-null-prototype/mod.js @@ -0,0 +1,2 @@ +export var a = 1; +export var b = 2; diff --git a/test/function/samples/transparent-dynamic-inlining/foo.js b/test/function/samples/transparent-dynamic-inlining/foo.js index 96b14ac739a..61a9615ee29 100644 --- a/test/function/samples/transparent-dynamic-inlining/foo.js +++ b/test/function/samples/transparent-dynamic-inlining/foo.js @@ -1,4 +1,7 @@ export var x = 42; import('./main').then(x => { - assert.deepStrictEqual(x, { y: 42 }); + const expected = { y: 42 }; + Object.setPrototypeOf(expected, null); + + assert.deepStrictEqual(x, expected); });