diff --git a/docs/999-big-list-of-options.md b/docs/999-big-list-of-options.md index f220a5161ab..a7c75661137 100755 --- a/docs/999-big-list-of-options.md +++ b/docs/999-big-list-of-options.md @@ -460,7 +460,7 @@ Whether to extend the global variable defined by the `name` option in `umd` or ` #### output.generatedCode -Type: `"es5" | "es2015" | { arrowFunctions?: boolean, constBindings?: boolean, objectShorthand?: boolean, preset?: "es5" | "es2015", reservedNamesAsProps?: boolean }`
CLI: `--generatedCode `
Default: `"es5"` +Type: `"es5" | "es2015" | { arrowFunctions?: boolean, constBindings?: boolean, objectShorthand?: boolean, preset?: "es5" | "es2015", reservedNamesAsProps?: boolean, symbols?: boolean }`
CLI: `--generatedCode `
Default: `"es5"` Which language features Rollup can safely use in generated code. This will not transpile any user code but only change the code Rollup uses in wrappers and helpers. You may choose one of several presets: @@ -577,6 +577,34 @@ const foo = null; exports.void = foo; ``` +**output.generatedCode.symbols**
Type: `boolean`
CLI: `--generatedCode.symbols`/`--no-generatedCode.symbols`
Default: `false` + +Whether to allow the use of `Symbol` in auto-generated code snippets. Currently, this only controls if namespaces will have the `Symbol.toStringTag` property set to the correct value of `Module`, which means that for a namespace, `String(namespace)` logs `[object Module]`. This again is used for feature detection in certain libraries and frameworks. + +```javascript +// input +export const foo = 42; + +// cjs output with symbols: false +Object.defineProperty(exports, '__esModule', { value: true }); + +const foo = 42; + +exports.foo = foo; + +// cjs output with symbols: true +Object.defineProperties(exports, { + __esModule: { value: true }, + [Symbol.toStringTag]: { value: 'Module' } +}); + +const foo = 42; + +exports.foo = foo; +``` + +Note: The `__esModule` flag in the example can be prevented via the [`output.esModule`](https://rollupjs.org/guide/en/#outputesmodule) option. + #### output.hoistTransitiveImports Type: `boolean`
CLI: `--hoistTransitiveImports`/`--no-hoistTransitiveImports`
Default: `true` @@ -1417,19 +1445,6 @@ export default { }; ``` -#### output.namespaceToStringTag - -Type: `boolean`
CLI: `--namespaceToStringTag`/`--no-namespaceToStringTag`
Default: `false` - -Whether to add spec compliant `.toString()` tags to namespace objects. If this option is set, - -```javascript -import * as namespace from './file.js'; -console.log(String(namespace)); -``` - -will always log `[object Module]`; - #### output.noConflict Type: `boolean`
CLI: `--noConflict`/`--no-noConflict`
Default: `false` @@ -1848,10 +1863,6 @@ _Use the [`output.inlineDynamicImports`](guide/en/#outputinlinedynamicimports) o _Use the [`output.manualChunks`](guide/en/#outputmanualchunks) output option instead, which has the same signature._ -#### preserveModules - -_Use the [`output.preserveModules`](guide/en/#outputpreservemodules) output option instead, which has the same signature._ - #### output.dynamicImportFunction _Use the [`renderDynamicImport`](guide/en/#renderdynamicimport) plugin hook instead._
Type: `string`
CLI: `--dynamicImportFunction `
Default: `import` @@ -1890,3 +1901,20 @@ console.log(42); ``` You can also supply a list of external ids to be considered pure or a function that is called whenever an external import could be removed. + +#### output.namespaceToStringTag + +_Use [`output.generatedCode.symbols`](guide/en/#outputgeneratedcode) instead._
Type: `boolean`
CLI: `--namespaceToStringTag`/`--no-namespaceToStringTag`
Default: `false` + +Whether to add spec compliant `.toString()` tags to namespace objects. If this option is set, + +```javascript +import * as namespace from './file.js'; +console.log(String(namespace)); +``` + +will always log `[object Module]`; + +#### preserveModules + +_Use the [`output.preserveModules`](guide/en/#outputpreservemodules) output option instead, which has the same signature._ diff --git a/src/ast/variables/NamespaceVariable.ts b/src/ast/variables/NamespaceVariable.ts index 29d4ef6f065..efc910fb188 100644 --- a/src/ast/variables/NamespaceVariable.ts +++ b/src/ast/variables/NamespaceVariable.ts @@ -1,6 +1,6 @@ import type Module from '../../Module'; import type { AstContext } from '../../Module'; -import { MERGE_NAMESPACES_VARIABLE } from '../../utils/interopHelpers'; +import { getToStringTagValue, MERGE_NAMESPACES_VARIABLE } from '../../utils/interopHelpers'; import type { RenderOptions } from '../../utils/renderHelpers'; import { getSystemExportStatement } from '../../utils/systemJsRendering'; import type Identifier from '../nodes/Identifier'; @@ -77,11 +77,6 @@ export default class NamespaceVariable extends Variable { return [name, original.getName(getPropertyAccess)]; } ); - - if (namespaceToStringTag) { - members.unshift([null, `[Symbol.toStringTag]:${_}'Module'`]); - } - members.unshift([null, `__proto__:${_}null`]); let output = getObject(members, { lineBreakIndent: { base: '', t } }); @@ -89,12 +84,19 @@ export default class NamespaceVariable extends Variable { const assignmentArgs = this.mergedNamespaces.map(variable => variable.getName(getPropertyAccess) ); - output = `/*#__PURE__*/${MERGE_NAMESPACES_VARIABLE}(${output}, [${assignmentArgs.join( + output = `/*#__PURE__*/${MERGE_NAMESPACES_VARIABLE}(${output},${_}[${assignmentArgs.join( `,${_}` )}])`; - } - if (freeze) { - output = `/*#__PURE__*/Object.freeze(${output})`; + } else { + // The helper to merge namespaces will also take care of freezing and toStringTag + if (namespaceToStringTag) { + output = `/*#__PURE__*/Object.defineProperty(${output},${_}Symbol.toStringTag,${_}${getToStringTagValue( + getObject + )})`; + } + if (freeze) { + output = `/*#__PURE__*/Object.freeze(${output})`; + } } const name = this.getName(getPropertyAccess); diff --git a/src/finalisers/amd.ts b/src/finalisers/amd.ts index a4526c6e514..7d409f71b07 100644 --- a/src/finalisers/amd.ts +++ b/src/finalisers/amd.ts @@ -86,8 +86,7 @@ export default function amd( namedExportsMode && hasExports, isEntryFacade && esModule, isModuleFacade && namespaceToStringTag, - _, - n + snippets ); if (namespaceMarkers) { namespaceMarkers = n + n + namespaceMarkers; diff --git a/src/finalisers/cjs.ts b/src/finalisers/cjs.ts index 4bca3d4bbb0..be0ed121db2 100644 --- a/src/finalisers/cjs.ts +++ b/src/finalisers/cjs.ts @@ -38,8 +38,7 @@ export default function cjs( namedExportsMode && hasExports, isEntryFacade && esModule, isModuleFacade && namespaceToStringTag, - _, - n + snippets ); if (namespaceMarkers) { namespaceMarkers += n + n; diff --git a/src/finalisers/iife.ts b/src/finalisers/iife.ts index 687f7f30b01..a5bd3807eea 100644 --- a/src/finalisers/iife.ts +++ b/src/finalisers/iife.ts @@ -122,8 +122,7 @@ export default function iife( namedExportsMode && hasExports, esModule, namespaceToStringTag, - _, - n + snippets ); if (namespaceMarkers) { namespaceMarkers = n + n + namespaceMarkers; diff --git a/src/finalisers/shared/getExportBlock.ts b/src/finalisers/shared/getExportBlock.ts index b4ef94d3ddc..8664b178fe0 100644 --- a/src/finalisers/shared/getExportBlock.ts +++ b/src/finalisers/shared/getExportBlock.ts @@ -3,6 +3,7 @@ import type { GetInterop } from '../../rollup/types'; import type { GenerateCodeSnippets } from '../../utils/generateCodeSnippets'; import { defaultInteropHelpersByInteropType, + getToStringTagValue, isDefaultAProperty, namespaceInteropHelpersByInteropType } from '../../utils/interopHelpers'; @@ -189,34 +190,40 @@ function getReexportedImportName( return `${moduleVariableName}${getPropertyAccess(imported)}`; } -function getEsModuleExport(_: string): string { - return `Object.defineProperty(exports,${_}'__esModule',${_}{${_}value:${_}true${_}});`; -} - -function getNamespaceToStringExport(_: string): string { - return `exports[Symbol.toStringTag]${_}=${_}'Module';`; +function getEsModuleValue(getObject: GenerateCodeSnippets['getObject']) { + return getObject([['value', 'true']], { + lineBreakIndent: null + }); } export function getNamespaceMarkers( hasNamedExports: boolean, addEsModule: boolean, addNamespaceToStringTag: boolean, - _: string, - n: string + { _, getObject }: GenerateCodeSnippets ): string { - let namespaceMarkers = ''; if (hasNamedExports) { if (addEsModule) { - namespaceMarkers += getEsModuleExport(_); + if (addNamespaceToStringTag) { + return `Object.defineProperties(exports,${_}${getObject( + [ + ['__esModule', getEsModuleValue(getObject)], + [null, `[Symbol.toStringTag]:${_}${getToStringTagValue(getObject)}`] + ], + { + lineBreakIndent: null + } + )});`; + } + return `Object.defineProperty(exports,${_}'__esModule',${_}${getEsModuleValue(getObject)});`; } if (addNamespaceToStringTag) { - if (namespaceMarkers) { - namespaceMarkers += n; - } - namespaceMarkers += getNamespaceToStringExport(_); + return `Object.defineProperty(exports,${_}Symbol.toStringTag,${_}${getToStringTagValue( + getObject + )});`; } } - return namespaceMarkers; + return ''; } const getDefineProperty = ( diff --git a/src/finalisers/umd.ts b/src/finalisers/umd.ts index 2795d4cb1e8..46292d50df9 100644 --- a/src/finalisers/umd.ts +++ b/src/finalisers/umd.ts @@ -203,8 +203,7 @@ export default function umd( namedExportsMode && hasExports, esModule, namespaceToStringTag, - _, - n + snippets ); if (namespaceMarkers) { namespaceMarkers = n + n + namespaceMarkers; diff --git a/src/rollup/types.d.ts b/src/rollup/types.d.ts index 10a8341e873..55da5d5f34c 100644 --- a/src/rollup/types.d.ts +++ b/src/rollup/types.d.ts @@ -608,6 +608,7 @@ interface NormalizedGeneratedCodeOptions { constBindings: boolean; objectShorthand: boolean; reservedNamesAsProps: boolean; + symbols: boolean; } interface GeneratedCodeOptions extends Partial { @@ -681,12 +682,13 @@ export interface OutputOptions { manualChunks?: ManualChunksOption; minifyInternalExports?: boolean; name?: string; + /** @deprecated Use "generatedCode.symbols" instead. */ namespaceToStringTag?: boolean; noConflict?: boolean; outro?: string | (() => string | Promise); paths?: OptionsPaths; plugins?: (OutputPlugin | null | false | undefined)[]; - /** @deprecated Use the "generatedCode.constBindings" instead. */ + /** @deprecated Use "generatedCode.constBindings" instead. */ preferConst?: boolean; preserveModules?: boolean; preserveModulesRoot?: string; diff --git a/src/utils/interopHelpers.ts b/src/utils/interopHelpers.ts index 4c4c86e7d91..1fff502d0a5 100644 --- a/src/utils/interopHelpers.ts +++ b/src/utils/interopHelpers.ts @@ -105,28 +105,30 @@ const HELPER_GENERATORS: { }, [INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE]( _t, - { _, getDirectReturnFunction, getObject, n }, + snippets, _liveBindings: boolean, freeze: boolean, namespaceToStringTag: boolean ) { + const { getDirectReturnFunction, getObject, n } = snippets; const [left, right] = getDirectReturnFunction(['e'], { functionReturn: true, lineBreakIndent: null, name: INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE }); return `${left}${getFrozen( - getObject( - [ - ['__proto__', 'null'], - ...(namespaceToStringTag - ? [[null, `[Symbol.toStringTag]:${_}'Module'`] as [null, string]] - : []), - ['default', 'e'] - ], - { lineBreakIndent: null } - ), - freeze + freeze, + getWithToStringTag( + namespaceToStringTag, + getObject( + [ + ['__proto__', 'null'], + ['default', 'e'] + ], + { lineBreakIndent: null } + ), + snippets + ) )}${right}${n}${n}`; }, [INTEROP_NAMESPACE_DEFAULT_VARIABLE](t, snippets, liveBindings, freeze, namespaceToStringTag) { @@ -161,7 +163,7 @@ const HELPER_GENERATORS: { `}${n}${n}` ); }, - [MERGE_NAMESPACES_VARIABLE](t, snippets, liveBindings, freeze) { + [MERGE_NAMESPACES_VARIABLE](t, snippets, liveBindings, freeze, namespaceToStringTag) { const { _, cnst, n } = snippets; const useForEach = cnst === 'var' && liveBindings; return ( @@ -180,7 +182,10 @@ const HELPER_GENERATORS: { t, snippets )}${n}` + - `${t}return ${getFrozen('n', freeze)};${n}` + + `${t}return ${getFrozen( + freeze, + getWithToStringTag(namespaceToStringTag, 'n', snippets) + )};${n}` + `}${n}${n}` ); } @@ -200,7 +205,7 @@ const createNamespaceObject = ( freeze: boolean, namespaceToStringTag: boolean ) => { - const { _, cnst, getPropertyAccess, n, s } = snippets; + const { _, cnst, getObject, getPropertyAccess, n, s } = snippets; const copyProperty = `{${n}` + (liveBindings ? copyNonDefaultOwnPropertyLiveBinding : copyPropertyStatic)( @@ -210,16 +215,16 @@ const createNamespaceObject = ( ) + `${i}${t}}`; return ( - `${i}${cnst} n${_}=${_}${ + `${i}${cnst} n${_}=${_}Object.create(null${ namespaceToStringTag - ? `{__proto__:${_}null,${_}[Symbol.toStringTag]:${_}'Module'}` - : 'Object.create(null)' - };${n}` + + ? `,${_}{${_}[Symbol.toStringTag]:${_}${getToStringTagValue(getObject)}${_}}` + : '' + });${n}` + `${i}if${_}(e)${_}{${n}` + `${i}${t}${loopOverKeys(copyProperty, !liveBindings, snippets)}${n}` + `${i}}${n}` + `${i}n${getPropertyAccess('default')}${_}=${_}e;${n}` + - `${i}return ${getFrozen('n', freeze)}${s}${n}` + `${i}return ${getFrozen(freeze, 'n')}${s}${n}` ); }; @@ -321,7 +326,24 @@ const copyPropertyLiveBinding = ( const copyPropertyStatic = (_t: string, i: string, { _, n }: GenerateCodeSnippets) => `${i}n[k]${_}=${_}e[k];${n}`; -const getFrozen = (fragment: string, freeze: boolean) => +const getFrozen = (freeze: boolean, fragment: string) => freeze ? `Object.freeze(${fragment})` : fragment; +const getWithToStringTag = ( + namespaceToStringTag: boolean, + fragment: string, + { _, getObject }: GenerateCodeSnippets +) => + namespaceToStringTag + ? `Object.defineProperty(${fragment},${_}Symbol.toStringTag,${_}${getToStringTagValue( + getObject + )})` + : fragment; + export const HELPER_NAMES = Object.keys(HELPER_GENERATORS); + +export function getToStringTagValue(getObject: GenerateCodeSnippets['getObject']) { + return getObject([['value', "'Module'"]], { + lineBreakIndent: null + }); +} diff --git a/src/utils/options/normalizeOutputOptions.ts b/src/utils/options/normalizeOutputOptions.ts index d6f4fb9ef0a..c23e8fae064 100644 --- a/src/utils/options/normalizeOutputOptions.ts +++ b/src/utils/options/normalizeOutputOptions.ts @@ -32,6 +32,7 @@ export function normalizeOutputOptions( const preserveModules = getPreserveModules(config, inlineDynamicImports, inputOptions); const file = getFile(config, preserveModules, inputOptions); const preferConst = getPreferConst(config, inputOptions); + const generatedCode = getGeneratedCode(config, preferConst); const outputOptions: NormalizedOutputOptions & OutputOptions = { amd: getAmd(config), @@ -50,7 +51,7 @@ export function normalizeOutputOptions( footer: getAddon(config, 'footer'), format, freeze: config.freeze ?? true, - generatedCode: getGeneratedCode(config, preferConst), + generatedCode, globals: config.globals || {}, hoistTransitiveImports: config.hoistTransitiveImports ?? true, indent: getIndent(config, compact), @@ -60,7 +61,7 @@ export function normalizeOutputOptions( manualChunks: getManualChunks(config, inlineDynamicImports, preserveModules, inputOptions), minifyInternalExports: getMinifyInternalExports(config, format, compact), name: config.name, - namespaceToStringTag: config.namespaceToStringTag || false, + namespaceToStringTag: getNamespaceToStringTag(config, generatedCode, inputOptions), noConflict: config.noConflict || false, outro: getAddon(config, 'outro'), paths: config.paths || {}, @@ -345,7 +346,8 @@ const getGeneratedCode = ( arrowFunctions: configWithPreset.arrowFunctions === true, constBindings: configWithPreset.constBindings === true || preferConst, objectShorthand: configWithPreset.objectShorthand === true, - reservedNamesAsProps: configWithPreset.reservedNamesAsProps === true + reservedNamesAsProps: configWithPreset.reservedNamesAsProps === true, + symbols: configWithPreset.symbols === true }; }; @@ -452,3 +454,20 @@ const getMinifyInternalExports = ( compact: boolean ): NormalizedOutputOptions['minifyInternalExports'] => config.minifyInternalExports ?? (compact || format === 'es' || format === 'system'); + +const getNamespaceToStringTag = ( + config: OutputOptions, + generatedCode: NormalizedOutputOptions['generatedCode'], + inputOptions: NormalizedInputOptions +): NormalizedOutputOptions['namespaceToStringTag'] => { + const configNamespaceToStringTag = config.namespaceToStringTag; + if (configNamespaceToStringTag != null) { + warnDeprecation( + `The "output.namespaceToStringTag" option is deprecated. Use the "output.generatedCode.symbols" option instead.`, + false, + inputOptions + ); + return configNamespaceToStringTag; + } + return generatedCode.symbols || false; +}; diff --git a/src/utils/options/options.ts b/src/utils/options/options.ts index ac42f435dbd..cf480915b1d 100644 --- a/src/utils/options/options.ts +++ b/src/utils/options/options.ts @@ -38,7 +38,7 @@ export function warnUnknownOptions( } } -type ObjectValue = Base extends Record ? Base : never; +type ObjectValue = Base extends Record ? Base : never; export const treeshakePresets: { [key in NonNullable< @@ -80,13 +80,15 @@ export const generatedCodePresets: { arrowFunctions: true, constBindings: true, objectShorthand: true, - reservedNamesAsProps: true + reservedNamesAsProps: true, + symbols: true }, es5: { arrowFunctions: false, constBindings: false, objectShorthand: false, - reservedNamesAsProps: true + reservedNamesAsProps: true, + symbols: false } }; diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_config.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_config.js new file mode 100644 index 00000000000..722554bf7df --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_config.js @@ -0,0 +1,11 @@ +module.exports = { + description: + 'adds Symbol.toStringTag property to dynamic imports of entry chunks with default export mode', + options: { + strictDeprecations: false, + input: ['main', 'foo'], + output: { + namespaceToStringTag: true + } + } +}; diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/amd/foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/amd/foo.js new file mode 100644 index 00000000000..69228f8fb6e --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/amd/foo.js @@ -0,0 +1,7 @@ +define((function () { 'use strict'; + + var foo = 42; + + return foo; + +})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/amd/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/amd/main.js new file mode 100644 index 00000000000..b20a3be1577 --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/amd/main.js @@ -0,0 +1,7 @@ +define(['require'], (function (require) { 'use strict'; + + function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, 'default': e }, Symbol.toStringTag, { value: 'Module' })); } + + new Promise(function (resolve, reject) { require(['./foo'], function (m) { resolve(/*#__PURE__*/_interopNamespaceDefaultOnly(m)); }, reject); }).then(console.log); + +})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/cjs/foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/cjs/foo.js new file mode 100644 index 00000000000..476c8ac92d3 --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/cjs/foo.js @@ -0,0 +1,5 @@ +'use strict'; + +var foo = 42; + +module.exports = foo; diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/cjs/main.js new file mode 100644 index 00000000000..ce87c46a76b --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/cjs/main.js @@ -0,0 +1,5 @@ +'use strict'; + +function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, 'default': e }, Symbol.toStringTag, { value: 'Module' })); } + +Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./foo.js')); }).then(console.log); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/es/foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/es/foo.js new file mode 100644 index 00000000000..2685886fe7a --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/es/foo.js @@ -0,0 +1,3 @@ +var foo = 42; + +export { foo as default }; diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/es/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/es/main.js new file mode 100644 index 00000000000..1c55d63937e --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/es/main.js @@ -0,0 +1 @@ +import('./foo.js').then(console.log); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/system/foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/system/foo.js new file mode 100644 index 00000000000..98793de8971 --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/system/foo.js @@ -0,0 +1,10 @@ +System.register([], (function (exports) { + 'use strict'; + return { + execute: (function () { + + var foo = exports('default', 42); + + }) + }; +})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/system/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/system/main.js new file mode 100644 index 00000000000..a5552580fb2 --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/system/main.js @@ -0,0 +1,10 @@ +System.register([], (function (exports, module) { + 'use strict'; + return { + execute: (function () { + + module.import('./foo.js').then(console.log); + + }) + }; +})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/foo.js new file mode 100644 index 00000000000..7a4e8a723a4 --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/foo.js @@ -0,0 +1 @@ +export default 42; diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/main.js new file mode 100644 index 00000000000..999da12561c --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/main.js @@ -0,0 +1 @@ +import('./foo').then(console.log); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_config.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_config.js new file mode 100644 index 00000000000..d0d5ce8e03a --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_config.js @@ -0,0 +1,9 @@ +module.exports = { + description: 'adds Symbol.toStringTag property to dynamic imports', + options: { + strictDeprecations: false, + output: { + namespaceToStringTag: true + } + } +}; diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/amd/generated-foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/amd/generated-foo.js new file mode 100644 index 00000000000..ceaf138a547 --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/amd/generated-foo.js @@ -0,0 +1,9 @@ +define(['exports'], (function (exports) { 'use strict'; + + const bar = 42; + + exports.bar = bar; + + Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); + +})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/amd/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/amd/main.js new file mode 100644 index 00000000000..5268640bab9 --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/amd/main.js @@ -0,0 +1,5 @@ +define(['require'], (function (require) { 'use strict'; + + new Promise(function (resolve, reject) { require(['./generated-foo'], resolve, reject); }).then(console.log); + +})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/cjs/generated-foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/cjs/generated-foo.js new file mode 100644 index 00000000000..7e415cb7783 --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/cjs/generated-foo.js @@ -0,0 +1,7 @@ +'use strict'; + +Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); + +const bar = 42; + +exports.bar = bar; diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/cjs/main.js new file mode 100644 index 00000000000..3fac08fbab8 --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/cjs/main.js @@ -0,0 +1,3 @@ +'use strict'; + +Promise.resolve().then(function () { return require('./generated-foo.js'); }).then(console.log); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/es/generated-foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/es/generated-foo.js new file mode 100644 index 00000000000..540eb09fbef --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/es/generated-foo.js @@ -0,0 +1,3 @@ +const bar = 42; + +export { bar }; diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/es/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/es/main.js new file mode 100644 index 00000000000..7d43c40039e --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/es/main.js @@ -0,0 +1 @@ +import('./generated-foo.js').then(console.log); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/system/generated-foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/system/generated-foo.js new file mode 100644 index 00000000000..f77176add08 --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/system/generated-foo.js @@ -0,0 +1,10 @@ +System.register([], (function (exports) { + 'use strict'; + return { + execute: (function () { + + const bar = exports('bar', 42); + + }) + }; +})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/system/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/system/main.js new file mode 100644 index 00000000000..ed21ee675a3 --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/system/main.js @@ -0,0 +1,10 @@ +System.register([], (function (exports, module) { + 'use strict'; + return { + execute: (function () { + + module.import('./generated-foo.js').then(console.log); + + }) + }; +})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/foo.js new file mode 100644 index 00000000000..308e102fe9a --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/foo.js @@ -0,0 +1 @@ +export const bar = 42; diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/main.js new file mode 100644 index 00000000000..999da12561c --- /dev/null +++ b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/main.js @@ -0,0 +1 @@ +import('./foo').then(console.log); diff --git a/test/chunking-form/samples/namespace-tostring/dynamic-import-default-mode/_config.js b/test/chunking-form/samples/namespace-tostring/dynamic-import-default-mode/_config.js index af0e0e6af98..cce31ed90cf 100644 --- a/test/chunking-form/samples/namespace-tostring/dynamic-import-default-mode/_config.js +++ b/test/chunking-form/samples/namespace-tostring/dynamic-import-default-mode/_config.js @@ -4,7 +4,7 @@ module.exports = { options: { input: ['main', 'foo'], output: { - namespaceToStringTag: true + generatedCode: { symbols: true } } } }; diff --git a/test/chunking-form/samples/namespace-tostring/dynamic-import-default-mode/_expected/amd/main.js b/test/chunking-form/samples/namespace-tostring/dynamic-import-default-mode/_expected/amd/main.js index c31cc42195a..b20a3be1577 100644 --- a/test/chunking-form/samples/namespace-tostring/dynamic-import-default-mode/_expected/amd/main.js +++ b/test/chunking-form/samples/namespace-tostring/dynamic-import-default-mode/_expected/amd/main.js @@ -1,6 +1,6 @@ define(['require'], (function (require) { 'use strict'; - function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, [Symbol.toStringTag]: 'Module', 'default': e }); } + function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, 'default': e }, Symbol.toStringTag, { value: 'Module' })); } new Promise(function (resolve, reject) { require(['./foo'], function (m) { resolve(/*#__PURE__*/_interopNamespaceDefaultOnly(m)); }, reject); }).then(console.log); diff --git a/test/chunking-form/samples/namespace-tostring/dynamic-import-default-mode/_expected/cjs/main.js b/test/chunking-form/samples/namespace-tostring/dynamic-import-default-mode/_expected/cjs/main.js index ac29414d9ed..ce87c46a76b 100644 --- a/test/chunking-form/samples/namespace-tostring/dynamic-import-default-mode/_expected/cjs/main.js +++ b/test/chunking-form/samples/namespace-tostring/dynamic-import-default-mode/_expected/cjs/main.js @@ -1,5 +1,5 @@ 'use strict'; -function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, [Symbol.toStringTag]: 'Module', 'default': e }); } +function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, 'default': e }, Symbol.toStringTag, { value: 'Module' })); } Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./foo.js')); }).then(console.log); diff --git a/test/chunking-form/samples/namespace-tostring/dynamic-import/_config.js b/test/chunking-form/samples/namespace-tostring/dynamic-import/_config.js index 8cb42fbd52a..1e26346fe3b 100644 --- a/test/chunking-form/samples/namespace-tostring/dynamic-import/_config.js +++ b/test/chunking-form/samples/namespace-tostring/dynamic-import/_config.js @@ -2,7 +2,7 @@ module.exports = { description: 'adds Symbol.toStringTag property to dynamic imports', options: { output: { - namespaceToStringTag: true + generatedCode: { symbols: true } } } }; diff --git a/test/chunking-form/samples/namespace-tostring/dynamic-import/_expected/amd/generated-foo.js b/test/chunking-form/samples/namespace-tostring/dynamic-import/_expected/amd/generated-foo.js index b4aeeb1a8e8..ceaf138a547 100644 --- a/test/chunking-form/samples/namespace-tostring/dynamic-import/_expected/amd/generated-foo.js +++ b/test/chunking-form/samples/namespace-tostring/dynamic-import/_expected/amd/generated-foo.js @@ -4,6 +4,6 @@ define(['exports'], (function (exports) { 'use strict'; exports.bar = bar; - exports[Symbol.toStringTag] = 'Module'; + Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); })); diff --git a/test/chunking-form/samples/namespace-tostring/dynamic-import/_expected/cjs/generated-foo.js b/test/chunking-form/samples/namespace-tostring/dynamic-import/_expected/cjs/generated-foo.js index 1dba95c4b6a..7e415cb7783 100644 --- a/test/chunking-form/samples/namespace-tostring/dynamic-import/_expected/cjs/generated-foo.js +++ b/test/chunking-form/samples/namespace-tostring/dynamic-import/_expected/cjs/generated-foo.js @@ -1,6 +1,6 @@ 'use strict'; -exports[Symbol.toStringTag] = 'Module'; +Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const bar = 42; diff --git a/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/amd/generated-component.js b/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/amd/generated-component.js index 4a3520da20c..d0d66d2ee39 100644 --- a/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/amd/generated-component.js +++ b/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/amd/generated-component.js @@ -17,10 +17,10 @@ define(['exports', './generated-main'], (function (exports, main) { 'use strict' var component = { lib: main.lib, lib2: main.lib.named, lib3: main.lib.named.named }; - var component$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var component$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': component - }, [component])); + }, [component]); exports.component = component$1; diff --git a/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/cjs/generated-component.js b/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/cjs/generated-component.js index bf6f23ca9fa..e3ab4bb8a65 100644 --- a/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/cjs/generated-component.js +++ b/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/cjs/generated-component.js @@ -19,9 +19,9 @@ function _mergeNamespaces(n, m) { var component = { lib: main.lib, lib2: main.lib.named, lib3: main.lib.named.named }; -var component$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var component$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': component -}, [component])); +}, [component]); exports.component = component$1; diff --git a/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/es/generated-component.js b/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/es/generated-component.js index b4e6117c2f5..9797ce2a571 100644 --- a/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/es/generated-component.js +++ b/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/es/generated-component.js @@ -17,9 +17,9 @@ function _mergeNamespaces(n, m) { var component = { lib, lib2: lib.named, lib3: lib.named.named }; -var component$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var component$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': component -}, [component])); +}, [component]); export { component$1 as c }; diff --git a/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/system/generated-component.js b/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/system/generated-component.js index 64a770ae50f..ff868b83b97 100644 --- a/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/system/generated-component.js +++ b/test/chunking-form/samples/synthetic-named-exports/chained-default-reexport/_expected/system/generated-component.js @@ -24,10 +24,10 @@ System.register(['./generated-main.js'], (function (exports) { var component = { lib, lib2: lib.named, lib3: lib.named.named }; - var component$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var component$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': component - }, [component])); + }, [component]); exports('c', component$1); }) diff --git a/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/amd/generated-component.js b/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/amd/generated-component.js index c3352b6f6d3..bf122f79e96 100644 --- a/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/amd/generated-component.js +++ b/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/amd/generated-component.js @@ -17,10 +17,10 @@ define(['exports', './main'], (function (exports, main) { 'use strict'; var component = { lib: main.lib, someExport: main.lib.someExport }; - var component$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var component$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': component - }, [component])); + }, [component]); exports.component = component$1; diff --git a/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/cjs/generated-component.js b/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/cjs/generated-component.js index 1d45a706e97..a9451283ecc 100644 --- a/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/cjs/generated-component.js +++ b/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/cjs/generated-component.js @@ -19,9 +19,9 @@ function _mergeNamespaces(n, m) { var component = { lib: main.lib, someExport: main.lib.someExport }; -var component$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var component$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': component -}, [component])); +}, [component]); exports.component = component$1; diff --git a/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/es/generated-component.js b/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/es/generated-component.js index 8c5c1543cc9..b17f45b419c 100644 --- a/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/es/generated-component.js +++ b/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/es/generated-component.js @@ -17,9 +17,9 @@ function _mergeNamespaces(n, m) { var component = { lib, someExport: lib.someExport }; -var component$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var component$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': component -}, [component])); +}, [component]); export { component$1 as c }; diff --git a/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/system/generated-component.js b/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/system/generated-component.js index 10a5bc2fe65..02fb6e84f52 100644 --- a/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/system/generated-component.js +++ b/test/chunking-form/samples/synthetic-named-exports/default-reexport/_expected/system/generated-component.js @@ -24,10 +24,10 @@ System.register(['./main.js'], (function (exports) { var component = { lib, someExport: lib.someExport }; - var component$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var component$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': component - }, [component])); + }, [component]); exports('c', component$1); }) diff --git a/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/amd/generated-dep.js b/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/amd/generated-dep.js index 15860584fe7..79938a3df67 100644 --- a/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/amd/generated-dep.js +++ b/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/amd/generated-dep.js @@ -18,11 +18,11 @@ define(['exports'], (function (exports) { 'use strict'; var dep = { foo: 1 }; const bar = 2; - var dep$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var dep$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': dep, bar: bar - }, [dep])); + }, [dep]); exports.dep = dep$1; diff --git a/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/cjs/generated-dep.js b/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/cjs/generated-dep.js index 58a3f696d78..d1ff4621d04 100644 --- a/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/cjs/generated-dep.js +++ b/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/cjs/generated-dep.js @@ -18,10 +18,10 @@ function _mergeNamespaces(n, m) { var dep = { foo: 1 }; const bar = 2; -var dep$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var dep$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': dep, bar: bar -}, [dep])); +}, [dep]); exports.dep = dep$1; diff --git a/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/es/generated-dep.js b/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/es/generated-dep.js index 660bfd46bd8..5bff67b7976 100644 --- a/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/es/generated-dep.js +++ b/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/es/generated-dep.js @@ -16,10 +16,10 @@ function _mergeNamespaces(n, m) { var dep = { foo: 1 }; const bar = 2; -var dep$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var dep$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': dep, bar: bar -}, [dep])); +}, [dep]); export { dep$1 as d }; diff --git a/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/system/generated-dep.js b/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/system/generated-dep.js index 47e448c5039..78c2135a17d 100644 --- a/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/system/generated-dep.js +++ b/test/chunking-form/samples/synthetic-named-exports/dynamic-import/_expected/system/generated-dep.js @@ -21,11 +21,11 @@ System.register([], (function (exports) { var dep = { foo: 1 }; const bar = 2; - var dep$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var dep$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': dep, bar: bar - }, [dep])); + }, [dep]); exports('d', dep$1); }) diff --git a/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/amd/main.js b/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/amd/main.js index 70ccf408195..0ab650424d2 100644 --- a/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/amd/main.js +++ b/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/amd/main.js @@ -21,11 +21,11 @@ define(['exports'], (function (exports) { 'use strict'; }; const foo = 100; - var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, foo: foo, 'default': d - }, [d])); + }, [d]); const stuff = 12; console.log(stuff); diff --git a/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/cjs/main.js b/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/cjs/main.js index 0c8b8b1d102..e803cd19aa9 100644 --- a/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/cjs/main.js +++ b/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/cjs/main.js @@ -23,11 +23,11 @@ const d = { }; const foo = 100; -var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, foo: foo, 'default': d -}, [d])); +}, [d]); const stuff = 12; console.log(stuff); diff --git a/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/es/main.js b/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/es/main.js index adba79f6324..6ba1e67db35 100644 --- a/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/es/main.js +++ b/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/es/main.js @@ -19,11 +19,11 @@ const d = { }; const foo = 100; -var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, foo: foo, 'default': d -}, [d])); +}, [d]); const stuff = 12; console.log(stuff); diff --git a/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/system/main.js b/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/system/main.js index 74105a6593a..ca77838f6d0 100644 --- a/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/system/main.js +++ b/test/chunking-form/samples/synthetic-named-exports/mixed-synthetic-named-exports/_expected/system/main.js @@ -24,11 +24,11 @@ System.register([], (function (exports) { }; const foo = exports('foo', 100); - var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, foo: foo, 'default': d - }, [d])); + }, [d]); const stuff = 12; console.log(stuff); diff --git a/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/amd/main.js b/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/amd/main.js index 074e745bbe2..324255acd55 100644 --- a/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/amd/main.js +++ b/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/amd/main.js @@ -23,22 +23,22 @@ define(['exports'], (function (exports) { 'use strict'; }; const foo = 'foo'; - var synthetic$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var synthetic$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': synthetic, foo: foo - }, [synthetic])); + }, [synthetic]); const bar = 'bar'; var dep = 'not-overwritten'; - var dep$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var dep$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, bar: bar, 'default': dep, synthetic: synthetic$1, foo: foo - }, [synthetic])); + }, [synthetic]); exports.dep = dep$1; diff --git a/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/cjs/main.js b/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/cjs/main.js index a1fbae50b68..3e0618df813 100644 --- a/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/cjs/main.js +++ b/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/cjs/main.js @@ -25,21 +25,21 @@ var synthetic = { }; const foo = 'foo'; -var synthetic$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var synthetic$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': synthetic, foo: foo -}, [synthetic])); +}, [synthetic]); const bar = 'bar'; var dep = 'not-overwritten'; -var dep$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var dep$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, bar: bar, 'default': dep, synthetic: synthetic$1, foo: foo -}, [synthetic])); +}, [synthetic]); exports.dep = dep$1; diff --git a/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/es/main.js b/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/es/main.js index 102ba28d373..74b91c66ae3 100644 --- a/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/es/main.js +++ b/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/es/main.js @@ -21,21 +21,21 @@ var synthetic = { }; const foo = 'foo'; -var synthetic$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var synthetic$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': synthetic, foo: foo -}, [synthetic])); +}, [synthetic]); const bar = 'bar'; var dep = 'not-overwritten'; -var dep$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var dep$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, bar: bar, 'default': dep, synthetic: synthetic$1, foo: foo -}, [synthetic])); +}, [synthetic]); export { dep$1 as dep }; diff --git a/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/system/main.js b/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/system/main.js index 3ae10bcede6..f5d90778d2e 100644 --- a/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/system/main.js +++ b/test/chunking-form/samples/synthetic-named-exports/namespace/_expected/system/main.js @@ -26,22 +26,22 @@ System.register([], (function (exports) { }; const foo = 'foo'; - var synthetic$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var synthetic$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': synthetic, foo: foo - }, [synthetic])); + }, [synthetic]); const bar = 'bar'; var dep = 'not-overwritten'; - var dep$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var dep$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, bar: bar, 'default': dep, synthetic: synthetic$1, foo: foo - }, [synthetic])); + }, [synthetic]); exports('dep', dep$1); }) diff --git a/test/form/samples/compact/_config.js b/test/form/samples/compact/_config.js index f7e8d144e33..084e647223d 100644 --- a/test/form/samples/compact/_config.js +++ b/test/form/samples/compact/_config.js @@ -6,7 +6,7 @@ module.exports = { output: { name: 'foo', compact: true, - namespaceToStringTag: true, + generatedCode: { symbols: true }, globals: { external: 'x' } diff --git a/test/form/samples/compact/_expected/amd.js b/test/form/samples/compact/_expected/amd.js index 99dc1f8d131..fbc88713b71 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';function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e}}var x__default=/*#__PURE__*/_interopDefaultLegacy(x);var self=/*#__PURE__*/Object.freeze({__proto__:null,[Symbol.toStringTag]:'Module',get default(){return foo}});console.log(self); +define(['external'],(function(x){'use strict';function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e}}var x__default=/*#__PURE__*/_interopDefaultLegacy(x);var self=/*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({__proto__:null,get default(){return foo}},Symbol.toStringTag,{value:'Module'}));console.log(self); function foo () { console.log( x__default["default"] ); } diff --git a/test/form/samples/compact/_expected/cjs.js b/test/form/samples/compact/_expected/cjs.js index 12bda9bd86d..d2369598980 100644 --- a/test/form/samples/compact/_expected/cjs.js +++ b/test/form/samples/compact/_expected/cjs.js @@ -1,4 +1,4 @@ -'use strict';var x=require('external');function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e}}var x__default=/*#__PURE__*/_interopDefaultLegacy(x);var self=/*#__PURE__*/Object.freeze({__proto__:null,[Symbol.toStringTag]:'Module',get default(){return foo}});console.log(self); +'use strict';var x=require('external');function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e}}var x__default=/*#__PURE__*/_interopDefaultLegacy(x);var self=/*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({__proto__:null,get default(){return foo}},Symbol.toStringTag,{value:'Module'}));console.log(self); function foo () { console.log( x__default["default"] ); } diff --git a/test/form/samples/compact/_expected/es.js b/test/form/samples/compact/_expected/es.js index 80d65c2df82..13b262bc497 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({__proto__:null,[Symbol.toStringTag]:'Module',get default(){return foo}});console.log(self); +import x from'external';var self=/*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({__proto__:null,get default(){return foo}},Symbol.toStringTag,{value:'Module'}));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 3c191ecbe51..22333818524 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';function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e}}var x__default=/*#__PURE__*/_interopDefaultLegacy(x);var self=/*#__PURE__*/Object.freeze({__proto__:null,[Symbol.toStringTag]:'Module',get default(){return foo}});console.log(self); +var foo=(function(x){'use strict';function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e}}var x__default=/*#__PURE__*/_interopDefaultLegacy(x);var self=/*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({__proto__:null,get default(){return foo}},Symbol.toStringTag,{value:'Module'}));console.log(self); function foo () { console.log( x__default["default"] ); } diff --git a/test/form/samples/compact/_expected/system.js b/test/form/samples/compact/_expected/system.js index 9211a59a514..527a3651c75 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({__proto__:null,[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(/*#__PURE__*/Object.defineProperty({__proto__:null,get default(){return foo}},Symbol.toStringTag,{value:'Module'}));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 508ad1eeb47..a0993418649 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=typeof globalThis!=='undefined'?globalThis:g||self,g.foo=f(g.x));})(this,(function(x){'use strict';function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e}}var x__default=/*#__PURE__*/_interopDefaultLegacy(x);var self=/*#__PURE__*/Object.freeze({__proto__:null,[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=typeof globalThis!=='undefined'?globalThis:g||self,g.foo=f(g.x));})(this,(function(x){'use strict';function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e}}var x__default=/*#__PURE__*/_interopDefaultLegacy(x);var self=/*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({__proto__:null,get default(){return foo}},Symbol.toStringTag,{value:'Module'}));console.log(self); function foo () { console.log( x__default["default"] ); } diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/_config.js b/test/form/samples/deprecated/namespace-tostring/entry-default/_config.js new file mode 100644 index 00000000000..afe69c097a0 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-default/_config.js @@ -0,0 +1,11 @@ +module.exports = { + description: 'does not add Symbol.toStringTag property to entry chunks with default export mode', + options: { + strictDeprecations: false, + output: { + namespaceToStringTag: true, + exports: 'default', + name: 'bundle' + } + } +}; diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/amd.js b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/amd.js new file mode 100644 index 00000000000..3c31a8f0b9d --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/amd.js @@ -0,0 +1,7 @@ +define((function () { 'use strict'; + + var main = { foo: 42 }; + + return main; + +})); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/cjs.js b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/cjs.js new file mode 100644 index 00000000000..202ac69aeb8 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/cjs.js @@ -0,0 +1,5 @@ +'use strict'; + +var main = { foo: 42 }; + +module.exports = main; diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/es.js b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/es.js new file mode 100644 index 00000000000..9f84202e42f --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/es.js @@ -0,0 +1,3 @@ +var main = { foo: 42 }; + +export { main as default }; diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/iife.js b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/iife.js new file mode 100644 index 00000000000..b9892e03936 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/iife.js @@ -0,0 +1,8 @@ +var bundle = (function () { + 'use strict'; + + var main = { foo: 42 }; + + return main; + +})(); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/system.js b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/system.js new file mode 100644 index 00000000000..e78d3f095ab --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/system.js @@ -0,0 +1,10 @@ +System.register('bundle', [], (function (exports) { + 'use strict'; + return { + execute: (function () { + + var main = exports('default', { foo: 42 }); + + }) + }; +})); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/umd.js b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/umd.js new file mode 100644 index 00000000000..8bea7766204 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/umd.js @@ -0,0 +1,11 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bundle = factory()); +})(this, (function () { 'use strict'; + + var main = { foo: 42 }; + + return main; + +})); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/main.js b/test/form/samples/deprecated/namespace-tostring/entry-default/main.js new file mode 100644 index 00000000000..407b3c24eb7 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-default/main.js @@ -0,0 +1 @@ +export default { foo: 42 }; diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/_config.js b/test/form/samples/deprecated/namespace-tostring/entry-named/_config.js new file mode 100644 index 00000000000..04c66f0ed4e --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-named/_config.js @@ -0,0 +1,11 @@ +module.exports = { + description: 'adds Symbol.toStringTag property to entry chunks with named exports', + options: { + strictDeprecations: false, + output: { + namespaceToStringTag: true, + exports: 'named', + name: 'bundle' + } + } +}; diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/amd.js b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/amd.js new file mode 100644 index 00000000000..a686695eb27 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/amd.js @@ -0,0 +1,9 @@ +define(['exports'], (function (exports) { 'use strict'; + + const foo = 42; + + exports.foo = foo; + + Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); + +})); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/cjs.js b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/cjs.js new file mode 100644 index 00000000000..0a7f7b36138 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/cjs.js @@ -0,0 +1,7 @@ +'use strict'; + +Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); + +const foo = 42; + +exports.foo = foo; diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/es.js b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/es.js new file mode 100644 index 00000000000..b72a22eac84 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/es.js @@ -0,0 +1,3 @@ +const foo = 42; + +export { foo }; diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/iife.js b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/iife.js new file mode 100644 index 00000000000..caef71c5aaa --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/iife.js @@ -0,0 +1,12 @@ +var bundle = (function (exports) { + 'use strict'; + + const foo = 42; + + exports.foo = foo; + + Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); + + return exports; + +})({}); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/system.js b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/system.js new file mode 100644 index 00000000000..53ad1b79c2f --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/system.js @@ -0,0 +1,10 @@ +System.register('bundle', [], (function (exports) { + 'use strict'; + return { + execute: (function () { + + const foo = exports('foo', 42); + + }) + }; +})); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/umd.js b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/umd.js new file mode 100644 index 00000000000..d1b1697e7cd --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/umd.js @@ -0,0 +1,13 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bundle = {})); +})(this, (function (exports) { 'use strict'; + + const foo = 42; + + exports.foo = foo; + + Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); + +})); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/main.js b/test/form/samples/deprecated/namespace-tostring/entry-named/main.js new file mode 100644 index 00000000000..9d7381d29f6 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/entry-named/main.js @@ -0,0 +1 @@ +export const foo = 42; diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_config.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_config.js new file mode 100644 index 00000000000..4505660889c --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_config.js @@ -0,0 +1,29 @@ +module.exports = { + description: 'adds Symbol.toStringTag property to external namespaces', + options: { + strictDeprecations: false, + external(id) { + return id.startsWith('external'); + }, + output: { + namespaceToStringTag: true, + globals: { + 'external-auto': 'externalAuto', + 'external-default': 'externalDefault', + 'external-defaultOnly': 'externalDefaultOnly' + }, + interop(id) { + switch (id) { + case 'external-auto': + return 'auto'; + case 'external-default': + return 'default'; + case 'external-defaultOnly': + return 'defaultOnly'; + default: + throw new Error(`Unexpected require "${id}"`); + } + } + } + } +}; diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/amd.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/amd.js new file mode 100644 index 00000000000..8bc035b7149 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/amd.js @@ -0,0 +1,40 @@ +define(['external-auto', 'external-default', 'external-defaultOnly'], (function (externalAuto, externalDefault, externalDefaultOnly) { 'use strict'; + + function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, 'default': e }, Symbol.toStringTag, { value: 'Module' })); } + + function _interopNamespaceDefault(e) { + var n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { return e[k]; } + }); + } + }); + } + n["default"] = e; + return Object.freeze(n); + } + + function _interopNamespace (e) { return e && e.__esModule ? e : _interopNamespaceDefault(e); } + + var externalAuto__namespace = /*#__PURE__*/_interopNamespace(externalAuto); + var externalDefault__namespace = /*#__PURE__*/_interopNamespaceDefault(externalDefault); + var externalDefaultOnly__namespace = /*#__PURE__*/_interopNamespaceDefaultOnly(externalDefaultOnly); + + assert.strictEqual(externalAuto__namespace[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(externalAuto__namespace), '[object Module]'); + assert.strictEqual(externalAuto__namespace.foo, 42); + + assert.strictEqual(externalDefault__namespace[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(externalDefault__namespace), '[object Module]'); + assert.strictEqual(externalDefault__namespace.foo, 42); + + assert.strictEqual(externalDefaultOnly__namespace[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly__namespace), '[object Module]'); + assert.deepStrictEqual(externalDefaultOnly__namespace.default, { foo: 42 }); + +})); diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/cjs.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/cjs.js new file mode 100644 index 00000000000..5322b095993 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/cjs.js @@ -0,0 +1,42 @@ +'use strict'; + +var externalAuto = require('external-auto'); +var externalDefault = require('external-default'); +var externalDefaultOnly = require('external-defaultOnly'); + +function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, 'default': e }, Symbol.toStringTag, { value: 'Module' })); } + +function _interopNamespaceDefault(e) { + var n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { return e[k]; } + }); + } + }); + } + n["default"] = e; + return Object.freeze(n); +} + +function _interopNamespace (e) { return e && e.__esModule ? e : _interopNamespaceDefault(e); } + +var externalAuto__namespace = /*#__PURE__*/_interopNamespace(externalAuto); +var externalDefault__namespace = /*#__PURE__*/_interopNamespaceDefault(externalDefault); +var externalDefaultOnly__namespace = /*#__PURE__*/_interopNamespaceDefaultOnly(externalDefaultOnly); + +assert.strictEqual(externalAuto__namespace[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(externalAuto__namespace), '[object Module]'); +assert.strictEqual(externalAuto__namespace.foo, 42); + +assert.strictEqual(externalDefault__namespace[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(externalDefault__namespace), '[object Module]'); +assert.strictEqual(externalDefault__namespace.foo, 42); + +assert.strictEqual(externalDefaultOnly__namespace[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly__namespace), '[object Module]'); +assert.deepStrictEqual(externalDefaultOnly__namespace.default, { foo: 42 }); diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/es.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/es.js new file mode 100644 index 00000000000..978de6a2cb4 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/es.js @@ -0,0 +1,15 @@ +import * as externalAuto from 'external-auto'; +import * as externalDefault from 'external-default'; +import * as externalDefaultOnly from 'external-defaultOnly'; + +assert.strictEqual(externalAuto[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(externalAuto), '[object Module]'); +assert.strictEqual(externalAuto.foo, 42); + +assert.strictEqual(externalDefault[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(externalDefault), '[object Module]'); +assert.strictEqual(externalDefault.foo, 42); + +assert.strictEqual(externalDefaultOnly[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly), '[object Module]'); +assert.deepStrictEqual(externalDefaultOnly.default, { foo: 42 }); diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/iife.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/iife.js new file mode 100644 index 00000000000..16f5fff7a43 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/iife.js @@ -0,0 +1,41 @@ +(function (externalAuto, externalDefault, externalDefaultOnly) { + 'use strict'; + + function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, 'default': e }, Symbol.toStringTag, { value: 'Module' })); } + + function _interopNamespaceDefault(e) { + var n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { return e[k]; } + }); + } + }); + } + n["default"] = e; + return Object.freeze(n); + } + + function _interopNamespace (e) { return e && e.__esModule ? e : _interopNamespaceDefault(e); } + + var externalAuto__namespace = /*#__PURE__*/_interopNamespace(externalAuto); + var externalDefault__namespace = /*#__PURE__*/_interopNamespaceDefault(externalDefault); + var externalDefaultOnly__namespace = /*#__PURE__*/_interopNamespaceDefaultOnly(externalDefaultOnly); + + assert.strictEqual(externalAuto__namespace[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(externalAuto__namespace), '[object Module]'); + assert.strictEqual(externalAuto__namespace.foo, 42); + + assert.strictEqual(externalDefault__namespace[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(externalDefault__namespace), '[object Module]'); + assert.strictEqual(externalDefault__namespace.foo, 42); + + assert.strictEqual(externalDefaultOnly__namespace[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly__namespace), '[object Module]'); + assert.deepStrictEqual(externalDefaultOnly__namespace.default, { foo: 42 }); + +})(externalAuto, externalDefault, externalDefaultOnly); diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/system.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/system.js new file mode 100644 index 00000000000..76dd2bf6c12 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/system.js @@ -0,0 +1,28 @@ +System.register(['external-auto', 'external-default', 'external-defaultOnly'], (function () { + 'use strict'; + var externalAuto, externalDefault, externalDefaultOnly; + return { + setters: [function (module) { + externalAuto = module; + }, function (module) { + externalDefault = module; + }, function (module) { + externalDefaultOnly = module; + }], + execute: (function () { + + assert.strictEqual(externalAuto[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(externalAuto), '[object Module]'); + assert.strictEqual(externalAuto.foo, 42); + + assert.strictEqual(externalDefault[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(externalDefault), '[object Module]'); + assert.strictEqual(externalDefault.foo, 42); + + assert.strictEqual(externalDefaultOnly[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly), '[object Module]'); + assert.deepStrictEqual(externalDefaultOnly.default, { foo: 42 }); + + }) + }; +})); diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/umd.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/umd.js new file mode 100644 index 00000000000..2b672d968f8 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/umd.js @@ -0,0 +1,44 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('external-auto'), require('external-default'), require('external-defaultOnly')) : + typeof define === 'function' && define.amd ? define(['external-auto', 'external-default', 'external-defaultOnly'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.externalAuto, global.externalDefault, global.externalDefaultOnly)); +})(this, (function (externalAuto, externalDefault, externalDefaultOnly) { 'use strict'; + + function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, 'default': e }, Symbol.toStringTag, { value: 'Module' })); } + + function _interopNamespaceDefault(e) { + var n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { return e[k]; } + }); + } + }); + } + n["default"] = e; + return Object.freeze(n); + } + + function _interopNamespace (e) { return e && e.__esModule ? e : _interopNamespaceDefault(e); } + + var externalAuto__namespace = /*#__PURE__*/_interopNamespace(externalAuto); + var externalDefault__namespace = /*#__PURE__*/_interopNamespaceDefault(externalDefault); + var externalDefaultOnly__namespace = /*#__PURE__*/_interopNamespaceDefaultOnly(externalDefaultOnly); + + assert.strictEqual(externalAuto__namespace[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(externalAuto__namespace), '[object Module]'); + assert.strictEqual(externalAuto__namespace.foo, 42); + + assert.strictEqual(externalDefault__namespace[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(externalDefault__namespace), '[object Module]'); + assert.strictEqual(externalDefault__namespace.foo, 42); + + assert.strictEqual(externalDefaultOnly__namespace[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly__namespace), '[object Module]'); + assert.deepStrictEqual(externalDefaultOnly__namespace.default, { foo: 42 }); + +})); diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/main.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/main.js new file mode 100644 index 00000000000..978de6a2cb4 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/external-namespaces/main.js @@ -0,0 +1,15 @@ +import * as externalAuto from 'external-auto'; +import * as externalDefault from 'external-default'; +import * as externalDefaultOnly from 'external-defaultOnly'; + +assert.strictEqual(externalAuto[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(externalAuto), '[object Module]'); +assert.strictEqual(externalAuto.foo, 42); + +assert.strictEqual(externalDefault[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(externalDefault), '[object Module]'); +assert.strictEqual(externalDefault.foo, 42); + +assert.strictEqual(externalDefaultOnly[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly), '[object Module]'); +assert.deepStrictEqual(externalDefaultOnly.default, { foo: 42 }); diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_config.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_config.js new file mode 100644 index 00000000000..70d5429e572 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_config.js @@ -0,0 +1,9 @@ +module.exports = { + description: 'adds Symbol.toStringTag property to inlined namespaces', + options: { + strictDeprecations: false, + output: { + namespaceToStringTag: true + } + } +}; diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/amd.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/amd.js new file mode 100644 index 00000000000..0fd10487115 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/amd.js @@ -0,0 +1,14 @@ +define((function () { 'use strict'; + + const bar = 42; + + var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ + __proto__: null, + bar: bar + }, Symbol.toStringTag, { value: 'Module' })); + + assert.strictEqual(foo[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); + assert.strictEqual(bar, 42); + +})); diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/cjs.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/cjs.js new file mode 100644 index 00000000000..1d2be7a0b92 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/cjs.js @@ -0,0 +1,12 @@ +'use strict'; + +const bar = 42; + +var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ + __proto__: null, + bar: bar +}, Symbol.toStringTag, { value: 'Module' })); + +assert.strictEqual(foo[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); +assert.strictEqual(bar, 42); diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/es.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/es.js new file mode 100644 index 00000000000..a74e0a8f263 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/es.js @@ -0,0 +1,10 @@ +const bar = 42; + +var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ + __proto__: null, + bar: bar +}, Symbol.toStringTag, { value: 'Module' })); + +assert.strictEqual(foo[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); +assert.strictEqual(bar, 42); diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/iife.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/iife.js new file mode 100644 index 00000000000..d960020bd7a --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/iife.js @@ -0,0 +1,15 @@ +(function () { + 'use strict'; + + const bar = 42; + + var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ + __proto__: null, + bar: bar + }, Symbol.toStringTag, { value: 'Module' })); + + assert.strictEqual(foo[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); + assert.strictEqual(bar, 42); + +})(); diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/system.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/system.js new file mode 100644 index 00000000000..d26e5038939 --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/system.js @@ -0,0 +1,19 @@ +System.register([], (function () { + 'use strict'; + return { + execute: (function () { + + const bar = 42; + + var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ + __proto__: null, + bar: bar + }, Symbol.toStringTag, { value: 'Module' })); + + assert.strictEqual(foo[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); + assert.strictEqual(bar, 42); + + }) + }; +})); diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/umd.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/umd.js new file mode 100644 index 00000000000..fdb31a26ccd --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/umd.js @@ -0,0 +1,17 @@ +(function (factory) { + typeof define === 'function' && define.amd ? define(factory) : + factory(); +})((function () { 'use strict'; + + const bar = 42; + + var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ + __proto__: null, + bar: bar + }, Symbol.toStringTag, { value: 'Module' })); + + assert.strictEqual(foo[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); + assert.strictEqual(bar, 42); + +})); diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/foo.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/foo.js new file mode 100644 index 00000000000..308e102fe9a --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/foo.js @@ -0,0 +1 @@ +export const bar = 42; diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/main.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/main.js new file mode 100644 index 00000000000..fb6b24345ef --- /dev/null +++ b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/main.js @@ -0,0 +1,5 @@ +import * as foo from './foo'; + +assert.strictEqual(foo[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); +assert.strictEqual(foo.bar, 42); diff --git a/test/form/samples/generated-code-compact/arrow-functions-false/_expected/amd.js b/test/form/samples/generated-code-compact/arrow-functions-false/_expected/amd.js index 66930f6272a..3c2ea04fc07 100644 --- a/test/form/samples/generated-code-compact/arrow-functions-false/_expected/amd.js +++ b/test/form/samples/generated-code-compact/arrow-functions-false/_expected/amd.js @@ -9,4 +9,4 @@ new Promise(function(c,e){require(['external'],function(m){c(/*#__PURE__*/_inter console.log(defaultLegacy__default["default"]); console.log(externalAuto__default["default"]); console.log(externalDefault__namespace); -console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo}, [defaultLegacy__namespace]));Object.defineProperty(exports,'foo',{enumerable:true,get:function(){return defaultLegacy.foo}});Object.keys(defaultLegacy).forEach(function(k){if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return defaultLegacy[k]}})});Object.defineProperty(exports,'__esModule',{value:true});})); \ No newline at end of file +console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo},[defaultLegacy__namespace]);Object.defineProperty(exports,'foo',{enumerable:true,get:function(){return defaultLegacy.foo}});Object.keys(defaultLegacy).forEach(function(k){if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return defaultLegacy[k]}})});Object.defineProperty(exports,'__esModule',{value:true});})); \ No newline at end of file diff --git a/test/form/samples/generated-code-compact/arrow-functions-false/_expected/cjs.js b/test/form/samples/generated-code-compact/arrow-functions-false/_expected/cjs.js index 6caa482b3f4..5c7861d7344 100644 --- a/test/form/samples/generated-code-compact/arrow-functions-false/_expected/cjs.js +++ b/test/form/samples/generated-code-compact/arrow-functions-false/_expected/cjs.js @@ -9,4 +9,4 @@ Promise.resolve().then(function(){return /*#__PURE__*/_interopNamespace(require( console.log(defaultLegacy__default["default"]); console.log(externalAuto__default["default"]); console.log(externalDefault__namespace); -console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo}, [defaultLegacy__namespace]));Object.defineProperty(exports,'foo',{enumerable:true,get:function(){return defaultLegacy.foo}});Object.keys(defaultLegacy).forEach(function(k){if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return defaultLegacy[k]}})}); \ No newline at end of file +console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo},[defaultLegacy__namespace]);Object.defineProperty(exports,'foo',{enumerable:true,get:function(){return defaultLegacy.foo}});Object.keys(defaultLegacy).forEach(function(k){if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return defaultLegacy[k]}})}); \ No newline at end of file diff --git a/test/form/samples/generated-code-compact/arrow-functions-false/_expected/es.js b/test/form/samples/generated-code-compact/arrow-functions-false/_expected/es.js index 1a0b8ac67d6..1b203b91c4b 100644 --- a/test/form/samples/generated-code-compact/arrow-functions-false/_expected/es.js +++ b/test/form/samples/generated-code-compact/arrow-functions-false/_expected/es.js @@ -9,4 +9,4 @@ import('external').then(console.log); console.log(defaultLegacy__default); console.log(externalAuto); console.log(externalDefault); -console.log(externalDefaultOnly);var main=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return a},foo:foo}, [defaultLegacy]));export{a}; \ No newline at end of file +console.log(externalDefaultOnly);var main=/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return a},foo:foo},[defaultLegacy]);export{a}; \ No newline at end of file diff --git a/test/form/samples/generated-code-compact/arrow-functions-false/_expected/iife.js b/test/form/samples/generated-code-compact/arrow-functions-false/_expected/iife.js index 5429ec3029c..0c0edac979a 100644 --- a/test/form/samples/generated-code-compact/arrow-functions-false/_expected/iife.js +++ b/test/form/samples/generated-code-compact/arrow-functions-false/_expected/iife.js @@ -9,4 +9,4 @@ import('external').then(console.log); console.log(defaultLegacy__default["default"]); console.log(externalAuto__default["default"]); console.log(externalDefault__namespace); -console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo}, [defaultLegacy__namespace]));Object.defineProperty(exports,'foo',{enumerable:true,get:function(){return defaultLegacy.foo}});Object.keys(defaultLegacy).forEach(function(k){if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return defaultLegacy[k]}})});Object.defineProperty(exports,'__esModule',{value:true});return exports;})({},null,defaultLegacy,externalAuto,externalDefault,externalDefaultOnly); \ No newline at end of file +console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo},[defaultLegacy__namespace]);Object.defineProperty(exports,'foo',{enumerable:true,get:function(){return defaultLegacy.foo}});Object.keys(defaultLegacy).forEach(function(k){if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return defaultLegacy[k]}})});Object.defineProperty(exports,'__esModule',{value:true});return exports;})({},null,defaultLegacy,externalAuto,externalDefault,externalDefaultOnly); \ No newline at end of file diff --git a/test/form/samples/generated-code-compact/arrow-functions-false/_expected/system.js b/test/form/samples/generated-code-compact/arrow-functions-false/_expected/system.js index 411aa3f9d75..46ad9162f96 100644 --- a/test/form/samples/generated-code-compact/arrow-functions-false/_expected/system.js +++ b/test/form/samples/generated-code-compact/arrow-functions-false/_expected/system.js @@ -9,4 +9,4 @@ module.import('external').then(console.log); console.log(defaultLegacy__default); console.log(externalAuto); console.log(externalDefault); -console.log(externalDefaultOnly);var main=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return a},foo:foo}, [defaultLegacy]));})}})); \ No newline at end of file +console.log(externalDefaultOnly);var main=/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return a},foo:foo},[defaultLegacy]);})}})); \ No newline at end of file diff --git a/test/form/samples/generated-code-compact/arrow-functions-false/_expected/umd.js b/test/form/samples/generated-code-compact/arrow-functions-false/_expected/umd.js index 3ec22991fa5..03adad2bf7e 100644 --- a/test/form/samples/generated-code-compact/arrow-functions-false/_expected/umd.js +++ b/test/form/samples/generated-code-compact/arrow-functions-false/_expected/umd.js @@ -9,4 +9,4 @@ import('external').then(console.log); console.log(defaultLegacy__default["default"]); console.log(externalAuto__default["default"]); console.log(externalDefault__namespace); -console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo}, [defaultLegacy__namespace]));Object.defineProperty(exports,'foo',{enumerable:true,get:function(){return defaultLegacy.foo}});Object.keys(defaultLegacy).forEach(function(k){if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return defaultLegacy[k]}})});Object.defineProperty(exports,'__esModule',{value:true});})); \ No newline at end of file +console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo},[defaultLegacy__namespace]);Object.defineProperty(exports,'foo',{enumerable:true,get:function(){return defaultLegacy.foo}});Object.keys(defaultLegacy).forEach(function(k){if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return defaultLegacy[k]}})});Object.defineProperty(exports,'__esModule',{value:true});})); \ No newline at end of file diff --git a/test/form/samples/generated-code-compact/arrow-functions-true/_expected/amd.js b/test/form/samples/generated-code-compact/arrow-functions-true/_expected/amd.js index aeb252acf14..542ca79ed27 100644 --- a/test/form/samples/generated-code-compact/arrow-functions-true/_expected/amd.js +++ b/test/form/samples/generated-code-compact/arrow-functions-true/_expected/amd.js @@ -9,4 +9,4 @@ new Promise((c,e)=>require(['external'],m=>c(/*#__PURE__*/_interopNamespace(m)), console.log(defaultLegacy__default["default"]); console.log(externalAuto__default["default"]); console.log(externalDefault__namespace); -console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo}, [defaultLegacy__namespace]));Object.defineProperty(exports,'foo',{enumerable:true,get:()=>defaultLegacy.foo});Object.keys(defaultLegacy).forEach(k=>{if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:()=>defaultLegacy[k]})});Object.defineProperty(exports,'__esModule',{value:true});})); \ No newline at end of file +console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo},[defaultLegacy__namespace]);Object.defineProperty(exports,'foo',{enumerable:true,get:()=>defaultLegacy.foo});Object.keys(defaultLegacy).forEach(k=>{if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:()=>defaultLegacy[k]})});Object.defineProperty(exports,'__esModule',{value:true});})); \ No newline at end of file diff --git a/test/form/samples/generated-code-compact/arrow-functions-true/_expected/cjs.js b/test/form/samples/generated-code-compact/arrow-functions-true/_expected/cjs.js index 5551ee02b24..760d6f81cff 100644 --- a/test/form/samples/generated-code-compact/arrow-functions-true/_expected/cjs.js +++ b/test/form/samples/generated-code-compact/arrow-functions-true/_expected/cjs.js @@ -9,4 +9,4 @@ Promise.resolve().then(()=>/*#__PURE__*/_interopNamespace(require('external'))). console.log(defaultLegacy__default["default"]); console.log(externalAuto__default["default"]); console.log(externalDefault__namespace); -console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo}, [defaultLegacy__namespace]));Object.defineProperty(exports,'foo',{enumerable:true,get:()=>defaultLegacy.foo});Object.keys(defaultLegacy).forEach(k=>{if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:()=>defaultLegacy[k]})}); \ No newline at end of file +console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo},[defaultLegacy__namespace]);Object.defineProperty(exports,'foo',{enumerable:true,get:()=>defaultLegacy.foo});Object.keys(defaultLegacy).forEach(k=>{if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:()=>defaultLegacy[k]})}); \ No newline at end of file diff --git a/test/form/samples/generated-code-compact/arrow-functions-true/_expected/es.js b/test/form/samples/generated-code-compact/arrow-functions-true/_expected/es.js index 3a51c4feac5..4f12cc48ad6 100644 --- a/test/form/samples/generated-code-compact/arrow-functions-true/_expected/es.js +++ b/test/form/samples/generated-code-compact/arrow-functions-true/_expected/es.js @@ -9,4 +9,4 @@ import('external').then(console.log); console.log(defaultLegacy__default); console.log(externalAuto); console.log(externalDefault); -console.log(externalDefaultOnly);var main=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return a},foo:foo}, [defaultLegacy]));export{a}; \ No newline at end of file +console.log(externalDefaultOnly);var main=/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return a},foo:foo},[defaultLegacy]);export{a}; \ No newline at end of file diff --git a/test/form/samples/generated-code-compact/arrow-functions-true/_expected/iife.js b/test/form/samples/generated-code-compact/arrow-functions-true/_expected/iife.js index df7a8f8782d..8e03a12ece3 100644 --- a/test/form/samples/generated-code-compact/arrow-functions-true/_expected/iife.js +++ b/test/form/samples/generated-code-compact/arrow-functions-true/_expected/iife.js @@ -9,4 +9,4 @@ import('external').then(console.log); console.log(defaultLegacy__default["default"]); console.log(externalAuto__default["default"]); console.log(externalDefault__namespace); -console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo}, [defaultLegacy__namespace]));Object.defineProperty(exports,'foo',{enumerable:true,get:()=>defaultLegacy.foo});Object.keys(defaultLegacy).forEach(k=>{if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:()=>defaultLegacy[k]})});Object.defineProperty(exports,'__esModule',{value:true});return exports;})({},null,defaultLegacy,externalAuto,externalDefault,externalDefaultOnly); \ No newline at end of file +console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo},[defaultLegacy__namespace]);Object.defineProperty(exports,'foo',{enumerable:true,get:()=>defaultLegacy.foo});Object.keys(defaultLegacy).forEach(k=>{if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:()=>defaultLegacy[k]})});Object.defineProperty(exports,'__esModule',{value:true});return exports;})({},null,defaultLegacy,externalAuto,externalDefault,externalDefaultOnly); \ No newline at end of file diff --git a/test/form/samples/generated-code-compact/arrow-functions-true/_expected/system.js b/test/form/samples/generated-code-compact/arrow-functions-true/_expected/system.js index 1fe600ad287..f85876bcd5a 100644 --- a/test/form/samples/generated-code-compact/arrow-functions-true/_expected/system.js +++ b/test/form/samples/generated-code-compact/arrow-functions-true/_expected/system.js @@ -9,4 +9,4 @@ module.import('external').then(console.log); console.log(defaultLegacy__default); console.log(externalAuto); console.log(externalDefault); -console.log(externalDefaultOnly);var main=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return a},foo:foo}, [defaultLegacy]));})}})); \ No newline at end of file +console.log(externalDefaultOnly);var main=/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return a},foo:foo},[defaultLegacy]);})}})); \ No newline at end of file diff --git a/test/form/samples/generated-code-compact/arrow-functions-true/_expected/umd.js b/test/form/samples/generated-code-compact/arrow-functions-true/_expected/umd.js index c71450bbf94..111e275a39b 100644 --- a/test/form/samples/generated-code-compact/arrow-functions-true/_expected/umd.js +++ b/test/form/samples/generated-code-compact/arrow-functions-true/_expected/umd.js @@ -9,4 +9,4 @@ import('external').then(console.log); console.log(defaultLegacy__default["default"]); console.log(externalAuto__default["default"]); console.log(externalDefault__namespace); -console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo}, [defaultLegacy__namespace]));Object.defineProperty(exports,'foo',{enumerable:true,get:()=>defaultLegacy.foo});Object.keys(defaultLegacy).forEach(k=>{if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:()=>defaultLegacy[k]})});Object.defineProperty(exports,'__esModule',{value:true});})); \ No newline at end of file +console.log(externalDefaultOnly__namespace);var main=/*#__PURE__*/_mergeNamespaces({__proto__:null,get a(){return exports.a},foo:foo},[defaultLegacy__namespace]);Object.defineProperty(exports,'foo',{enumerable:true,get:()=>defaultLegacy.foo});Object.keys(defaultLegacy).forEach(k=>{if(k!=='default'&&!exports.hasOwnProperty(k))Object.defineProperty(exports,k,{enumerable:true,get:()=>defaultLegacy[k]})});Object.defineProperty(exports,'__esModule',{value:true});})); \ No newline at end of file diff --git a/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/amd.js b/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/amd.js index d2e01517a19..5ef83edbf8e 100644 --- a/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/amd.js +++ b/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/amd.js @@ -1,6 +1,6 @@ define(['module','exports','external','externalDefaultOnly','external2'],(function(module,exports,external,defaultOnly,someDefault){'use strict';function _interopDefault(e){return e&&e.__esModule?e:{'default':e}}function _interopNamespaceDefaultOnly(e){return Object.freeze({__proto__:null,'default':e})}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n["default"]=e;return Object.freeze(n)}function _mergeNamespaces(n, m){m.forEach(function(e){e&&typeof e!=='string'&&!Array.isArray(e)&&Object.keys(e).forEach(function(k){if(k!=='default'&&!(k in n)){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})});return Object.freeze(n);}var external__namespace=/*#__PURE__*/_interopNamespace(external);var defaultOnly__namespace=/*#__PURE__*/_interopNamespaceDefaultOnly(defaultOnly);var someDefault__default=/*#__PURE__*/_interopDefault(someDefault);var other = { foo: 'bar' -};var ns=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,'default':other}, [other]));console.log(ns, other.foo, other["function"], other["some-prop"], external["function"], someDefault__default["default"], defaultOnly__namespace); +};var ns=/*#__PURE__*/_mergeNamespaces({__proto__:null,'default':other},[other]);console.log(ns, other.foo, other["function"], other["some-prop"], external["function"], someDefault__default["default"], defaultOnly__namespace); console.log(undefined, undefined); exports["function"] = 1; diff --git a/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/cjs.js b/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/cjs.js index 90e65545a76..596b653d514 100644 --- a/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/cjs.js +++ b/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/cjs.js @@ -1,6 +1,6 @@ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var external=require('external'),defaultOnly=require('externalDefaultOnly'),someDefault=require('external2');function _interopDefault(e){return e&&e.__esModule?e:{'default':e}}function _interopNamespaceDefaultOnly(e){return Object.freeze({__proto__:null,'default':e})}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n["default"]=e;return Object.freeze(n)}function _mergeNamespaces(n, m){m.forEach(function(e){e&&typeof e!=='string'&&!Array.isArray(e)&&Object.keys(e).forEach(function(k){if(k!=='default'&&!(k in n)){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})});return Object.freeze(n);}var external__namespace=/*#__PURE__*/_interopNamespace(external);var defaultOnly__namespace=/*#__PURE__*/_interopNamespaceDefaultOnly(defaultOnly);var someDefault__default=/*#__PURE__*/_interopDefault(someDefault);var other = { foo: 'bar' -};var ns=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,'default':other}, [other]));console.log(ns, other.foo, other["function"], other["some-prop"], external["function"], someDefault__default["default"], defaultOnly__namespace); +};var ns=/*#__PURE__*/_mergeNamespaces({__proto__:null,'default':other},[other]);console.log(ns, other.foo, other["function"], other["some-prop"], external["function"], someDefault__default["default"], defaultOnly__namespace); console.log(undefined, undefined); exports["function"] = 1; diff --git a/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/es.js b/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/es.js index d232f162ec1..d3bc4b681bd 100644 --- a/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/es.js +++ b/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/es.js @@ -1,6 +1,6 @@ import {function as function$1}from'external';import*as external from'external';export{external as default };export{function as bar,default as void}from'external';import*as defaultOnly from'externalDefaultOnly';import someDefault from'external2';function _mergeNamespaces(n, m){m.forEach(function(e){e&&typeof e!=='string'&&!Array.isArray(e)&&Object.keys(e).forEach(function(k){if(k!=='default'&&!(k in n)){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})});return Object.freeze(n);}var other = { foo: 'bar' -};var ns=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,'default':other}, [other]));console.log(ns, other.foo, other["function"], other["some-prop"], function$1, someDefault, defaultOnly); +};var ns=/*#__PURE__*/_mergeNamespaces({__proto__:null,'default':other},[other]);console.log(ns, other.foo, other["function"], other["some-prop"], function$1, someDefault, defaultOnly); console.log(import.meta['function'], import.meta['some-prop']); let f = 1; diff --git a/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/iife.js b/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/iife.js index 9bdac89bba7..0ae2717088e 100644 --- a/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/iife.js +++ b/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/iife.js @@ -1,6 +1,6 @@ var bundle=(function(exports,external,defaultOnly,someDefault){'use strict';function _interopDefault(e){return e&&e.__esModule?e:{'default':e}}function _interopNamespaceDefaultOnly(e){return Object.freeze({__proto__:null,'default':e})}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n["default"]=e;return Object.freeze(n)}function _mergeNamespaces(n, m){m.forEach(function(e){e&&typeof e!=='string'&&!Array.isArray(e)&&Object.keys(e).forEach(function(k){if(k!=='default'&&!(k in n)){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})});return Object.freeze(n);}var external__namespace=/*#__PURE__*/_interopNamespace(external);var defaultOnly__namespace=/*#__PURE__*/_interopNamespaceDefaultOnly(defaultOnly);var someDefault__default=/*#__PURE__*/_interopDefault(someDefault);var other = { foo: 'bar' -};var ns=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,'default':other}, [other]));console.log(ns, other.foo, other["function"], other["some-prop"], external["function"], someDefault__default["default"], defaultOnly__namespace); +};var ns=/*#__PURE__*/_mergeNamespaces({__proto__:null,'default':other},[other]);console.log(ns, other.foo, other["function"], other["some-prop"], external["function"], someDefault__default["default"], defaultOnly__namespace); console.log(undefined, undefined); exports["function"] = 1; diff --git a/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/system.js b/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/system.js index 07eb4873d01..3aa72d253cd 100644 --- a/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/system.js +++ b/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/system.js @@ -1,6 +1,6 @@ System.register('bundle',['external','externalDefaultOnly','external2'],(function(exports,module){'use strict';var function$1,defaultOnly,someDefault;return{setters:[function(module){function$1=module["function"];exports({bar:module["function"],'default':module,'void':module["default"]});},function(module){defaultOnly=module;},function(module){someDefault=module["default"];}],execute:(function(){function _mergeNamespaces(n, m){m.forEach(function(e){e&&typeof e!=='string'&&!Array.isArray(e)&&Object.keys(e).forEach(function(k){if(k!=='default'&&!(k in n)){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})});return Object.freeze(n);}var other = { foo: 'bar' -};var ns=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,'default':other}, [other]));console.log(ns, other.foo, other["function"], other["some-prop"], function$1, someDefault, defaultOnly); +};var ns=/*#__PURE__*/_mergeNamespaces({__proto__:null,'default':other},[other]);console.log(ns, other.foo, other["function"], other["some-prop"], function$1, someDefault, defaultOnly); console.log(module.meta["function"], module.meta["some-prop"]); let f = exports('function',1); diff --git a/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/umd.js b/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/umd.js index b4681902687..9cee11f9bdf 100644 --- a/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/umd.js +++ b/test/form/samples/generated-code-compact/reserved-names-as-props-false/_expected/umd.js @@ -1,6 +1,6 @@ (function(g,f){typeof exports==='object'&&typeof module!=='undefined'?f(exports,require('external'),require('externalDefaultOnly'),require('external2')):typeof define==='function'&&define.amd?define(['exports','external','externalDefaultOnly','external2'],f):(g=typeof globalThis!=='undefined'?globalThis:g||self,f(g.bundle={},g.external,g.defaultOnly,g.someDefault));})(this,(function(exports,external,defaultOnly,someDefault){'use strict';function _interopDefault(e){return e&&e.__esModule?e:{'default':e}}function _interopNamespaceDefaultOnly(e){return Object.freeze({__proto__:null,'default':e})}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n["default"]=e;return Object.freeze(n)}function _mergeNamespaces(n, m){m.forEach(function(e){e&&typeof e!=='string'&&!Array.isArray(e)&&Object.keys(e).forEach(function(k){if(k!=='default'&&!(k in n)){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})});return Object.freeze(n);}var external__namespace=/*#__PURE__*/_interopNamespace(external);var defaultOnly__namespace=/*#__PURE__*/_interopNamespaceDefaultOnly(defaultOnly);var someDefault__default=/*#__PURE__*/_interopDefault(someDefault);var other = { foo: 'bar' -};var ns=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,'default':other}, [other]));console.log(ns, other.foo, other["function"], other["some-prop"], external["function"], someDefault__default["default"], defaultOnly__namespace); +};var ns=/*#__PURE__*/_mergeNamespaces({__proto__:null,'default':other},[other]);console.log(ns, other.foo, other["function"], other["some-prop"], external["function"], someDefault__default["default"], defaultOnly__namespace); console.log(undefined, undefined); exports["function"] = 1; diff --git a/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/amd.js b/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/amd.js index a9a2e13b189..9d6cf592435 100644 --- a/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/amd.js +++ b/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/amd.js @@ -1,6 +1,6 @@ define(['module','exports','external','externalDefaultOnly','external2'],(function(module,exports,external,defaultOnly,someDefault){'use strict';function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespaceDefaultOnly(e){return Object.freeze({__proto__:null,default:e})}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}function _mergeNamespaces(n, m){m.forEach(function(e){e&&typeof e!=='string'&&!Array.isArray(e)&&Object.keys(e).forEach(function(k){if(k!=='default'&&!(k in n)){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})});return Object.freeze(n);}var external__namespace=/*#__PURE__*/_interopNamespace(external);var defaultOnly__namespace=/*#__PURE__*/_interopNamespaceDefaultOnly(defaultOnly);var someDefault__default=/*#__PURE__*/_interopDefault(someDefault);var other = { foo: 'bar' -};var ns=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,default:other}, [other]));console.log(ns, other.foo, other.function, other["some-prop"], external.function, someDefault__default.default, defaultOnly__namespace); +};var ns=/*#__PURE__*/_mergeNamespaces({__proto__:null,default:other},[other]);console.log(ns, other.foo, other.function, other["some-prop"], external.function, someDefault__default.default, defaultOnly__namespace); console.log(undefined, undefined); exports.function = 1; diff --git a/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/cjs.js b/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/cjs.js index 7193306540a..713e3a86d2e 100644 --- a/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/cjs.js +++ b/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/cjs.js @@ -1,6 +1,6 @@ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var external=require('external'),defaultOnly=require('externalDefaultOnly'),someDefault=require('external2');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespaceDefaultOnly(e){return Object.freeze({__proto__:null,default:e})}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}function _mergeNamespaces(n, m){m.forEach(function(e){e&&typeof e!=='string'&&!Array.isArray(e)&&Object.keys(e).forEach(function(k){if(k!=='default'&&!(k in n)){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})});return Object.freeze(n);}var external__namespace=/*#__PURE__*/_interopNamespace(external);var defaultOnly__namespace=/*#__PURE__*/_interopNamespaceDefaultOnly(defaultOnly);var someDefault__default=/*#__PURE__*/_interopDefault(someDefault);var other = { foo: 'bar' -};var ns=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,default:other}, [other]));console.log(ns, other.foo, other.function, other["some-prop"], external.function, someDefault__default.default, defaultOnly__namespace); +};var ns=/*#__PURE__*/_mergeNamespaces({__proto__:null,default:other},[other]);console.log(ns, other.foo, other.function, other["some-prop"], external.function, someDefault__default.default, defaultOnly__namespace); console.log(undefined, undefined); exports.function = 1; diff --git a/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/es.js b/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/es.js index f9b49edcd60..0d757dbee11 100644 --- a/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/es.js +++ b/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/es.js @@ -1,6 +1,6 @@ import {function as function$1}from'external';import*as external from'external';export{external as default };export{function as bar,default as void}from'external';import*as defaultOnly from'externalDefaultOnly';import someDefault from'external2';function _mergeNamespaces(n, m){m.forEach(function(e){e&&typeof e!=='string'&&!Array.isArray(e)&&Object.keys(e).forEach(function(k){if(k!=='default'&&!(k in n)){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})});return Object.freeze(n);}var other = { foo: 'bar' -};var ns=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,default:other}, [other]));console.log(ns, other.foo, other.function, other["some-prop"], function$1, someDefault, defaultOnly); +};var ns=/*#__PURE__*/_mergeNamespaces({__proto__:null,default:other},[other]);console.log(ns, other.foo, other.function, other["some-prop"], function$1, someDefault, defaultOnly); console.log(import.meta['function'], import.meta['some-prop']); let f = 1; diff --git a/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/iife.js b/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/iife.js index 4b3612d84b1..0cc8b38aa27 100644 --- a/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/iife.js +++ b/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/iife.js @@ -1,6 +1,6 @@ var bundle=(function(exports,external,defaultOnly,someDefault){'use strict';function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespaceDefaultOnly(e){return Object.freeze({__proto__:null,default:e})}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}function _mergeNamespaces(n, m){m.forEach(function(e){e&&typeof e!=='string'&&!Array.isArray(e)&&Object.keys(e).forEach(function(k){if(k!=='default'&&!(k in n)){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})});return Object.freeze(n);}var external__namespace=/*#__PURE__*/_interopNamespace(external);var defaultOnly__namespace=/*#__PURE__*/_interopNamespaceDefaultOnly(defaultOnly);var someDefault__default=/*#__PURE__*/_interopDefault(someDefault);var other = { foo: 'bar' -};var ns=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,default:other}, [other]));console.log(ns, other.foo, other.function, other["some-prop"], external.function, someDefault__default.default, defaultOnly__namespace); +};var ns=/*#__PURE__*/_mergeNamespaces({__proto__:null,default:other},[other]);console.log(ns, other.foo, other.function, other["some-prop"], external.function, someDefault__default.default, defaultOnly__namespace); console.log(undefined, undefined); exports.function = 1; diff --git a/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/system.js b/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/system.js index b6136cb635a..6fe0e2efd25 100644 --- a/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/system.js +++ b/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/system.js @@ -1,6 +1,6 @@ System.register('bundle',['external','externalDefaultOnly','external2'],(function(exports,module){'use strict';var function$1,defaultOnly,someDefault;return{setters:[function(module){function$1=module.function;exports({bar:module.function,default:module,void:module.default});},function(module){defaultOnly=module;},function(module){someDefault=module.default;}],execute:(function(){function _mergeNamespaces(n, m){m.forEach(function(e){e&&typeof e!=='string'&&!Array.isArray(e)&&Object.keys(e).forEach(function(k){if(k!=='default'&&!(k in n)){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})});return Object.freeze(n);}var other = { foo: 'bar' -};var ns=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,default:other}, [other]));console.log(ns, other.foo, other.function, other["some-prop"], function$1, someDefault, defaultOnly); +};var ns=/*#__PURE__*/_mergeNamespaces({__proto__:null,default:other},[other]);console.log(ns, other.foo, other.function, other["some-prop"], function$1, someDefault, defaultOnly); console.log(module.meta.function, module.meta["some-prop"]); let f = exports('function',1); diff --git a/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/umd.js b/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/umd.js index 3b5b24d5996..507b94de06d 100644 --- a/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/umd.js +++ b/test/form/samples/generated-code-compact/reserved-names-as-props-true/_expected/umd.js @@ -1,6 +1,6 @@ (function(g,f){typeof exports==='object'&&typeof module!=='undefined'?f(exports,require('external'),require('externalDefaultOnly'),require('external2')):typeof define==='function'&&define.amd?define(['exports','external','externalDefaultOnly','external2'],f):(g=typeof globalThis!=='undefined'?globalThis:g||self,f(g.bundle={},g.external,g.defaultOnly,g.someDefault));})(this,(function(exports,external,defaultOnly,someDefault){'use strict';function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespaceDefaultOnly(e){return Object.freeze({__proto__:null,default:e})}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}function _mergeNamespaces(n, m){m.forEach(function(e){e&&typeof e!=='string'&&!Array.isArray(e)&&Object.keys(e).forEach(function(k){if(k!=='default'&&!(k in n)){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})});return Object.freeze(n);}var external__namespace=/*#__PURE__*/_interopNamespace(external);var defaultOnly__namespace=/*#__PURE__*/_interopNamespaceDefaultOnly(defaultOnly);var someDefault__default=/*#__PURE__*/_interopDefault(someDefault);var other = { foo: 'bar' -};var ns=/*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({__proto__:null,default:other}, [other]));console.log(ns, other.foo, other.function, other["some-prop"], external.function, someDefault__default.default, defaultOnly__namespace); +};var ns=/*#__PURE__*/_mergeNamespaces({__proto__:null,default:other},[other]);console.log(ns, other.foo, other.function, other["some-prop"], external.function, someDefault__default.default, defaultOnly__namespace); console.log(undefined, undefined); exports.function = 1; diff --git a/test/form/samples/generated-code/arrow-functions-false/_expected/amd.js b/test/form/samples/generated-code/arrow-functions-false/_expected/amd.js index 86d3a24479c..901a15deec9 100644 --- a/test/form/samples/generated-code/arrow-functions-false/_expected/amd.js +++ b/test/form/samples/generated-code/arrow-functions-false/_expected/amd.js @@ -59,11 +59,11 @@ define(['require', 'exports', 'externalNoImport', 'external', 'externalAuto', 'e console.log(externalDefault__namespace); console.log(externalDefaultOnly__namespace); - var main = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var main = /*#__PURE__*/_mergeNamespaces({ __proto__: null, get a () { return exports.a; }, foo: foo - }, [defaultLegacy__namespace])); + }, [defaultLegacy__namespace]); Object.defineProperty(exports, 'foo', { enumerable: true, diff --git a/test/form/samples/generated-code/arrow-functions-false/_expected/cjs.js b/test/form/samples/generated-code/arrow-functions-false/_expected/cjs.js index b4540987f90..639581f4d97 100644 --- a/test/form/samples/generated-code/arrow-functions-false/_expected/cjs.js +++ b/test/form/samples/generated-code/arrow-functions-false/_expected/cjs.js @@ -67,11 +67,11 @@ console.log(externalAuto__default["default"]); console.log(externalDefault__namespace); console.log(externalDefaultOnly__namespace); -var main = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var main = /*#__PURE__*/_mergeNamespaces({ __proto__: null, get a () { return exports.a; }, foo: foo -}, [defaultLegacy__namespace])); +}, [defaultLegacy__namespace]); Object.defineProperty(exports, 'foo', { enumerable: true, diff --git a/test/form/samples/generated-code/arrow-functions-false/_expected/es.js b/test/form/samples/generated-code/arrow-functions-false/_expected/es.js index 5bf73f56edf..edbd196c43e 100644 --- a/test/form/samples/generated-code/arrow-functions-false/_expected/es.js +++ b/test/form/samples/generated-code/arrow-functions-false/_expected/es.js @@ -35,10 +35,10 @@ console.log(externalAuto); console.log(externalDefault); console.log(externalDefaultOnly); -var main = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var main = /*#__PURE__*/_mergeNamespaces({ __proto__: null, get a () { return a; }, foo: foo -}, [defaultLegacy])); +}, [defaultLegacy]); export { a }; diff --git a/test/form/samples/generated-code/arrow-functions-false/_expected/iife.js b/test/form/samples/generated-code/arrow-functions-false/_expected/iife.js index 39a9cc6f1a9..ca3071df474 100644 --- a/test/form/samples/generated-code/arrow-functions-false/_expected/iife.js +++ b/test/form/samples/generated-code/arrow-functions-false/_expected/iife.js @@ -60,11 +60,11 @@ var bundle = (function (exports, externalNoImport, defaultLegacy, externalAuto, console.log(externalDefault__namespace); console.log(externalDefaultOnly__namespace); - var main = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var main = /*#__PURE__*/_mergeNamespaces({ __proto__: null, get a () { return exports.a; }, foo: foo - }, [defaultLegacy__namespace])); + }, [defaultLegacy__namespace]); Object.defineProperty(exports, 'foo', { enumerable: true, diff --git a/test/form/samples/generated-code/arrow-functions-false/_expected/system.js b/test/form/samples/generated-code/arrow-functions-false/_expected/system.js index 44c218858fe..2014d269412 100644 --- a/test/form/samples/generated-code/arrow-functions-false/_expected/system.js +++ b/test/form/samples/generated-code/arrow-functions-false/_expected/system.js @@ -53,11 +53,11 @@ System.register('bundle', ['externalNoImport', 'external', 'externalAuto', 'exte console.log(externalDefault); console.log(externalDefaultOnly); - var main = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var main = /*#__PURE__*/_mergeNamespaces({ __proto__: null, get a () { return a; }, foo: foo - }, [defaultLegacy])); + }, [defaultLegacy]); }) }; diff --git a/test/form/samples/generated-code/arrow-functions-false/_expected/umd.js b/test/form/samples/generated-code/arrow-functions-false/_expected/umd.js index 45ccbfbd0f1..d4b2ae1fef9 100644 --- a/test/form/samples/generated-code/arrow-functions-false/_expected/umd.js +++ b/test/form/samples/generated-code/arrow-functions-false/_expected/umd.js @@ -68,11 +68,11 @@ console.log(externalDefault__namespace); console.log(externalDefaultOnly__namespace); - var main = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var main = /*#__PURE__*/_mergeNamespaces({ __proto__: null, get a () { return exports.a; }, foo: foo - }, [defaultLegacy__namespace])); + }, [defaultLegacy__namespace]); Object.defineProperty(exports, 'foo', { enumerable: true, diff --git a/test/form/samples/generated-code/arrow-functions-true/_expected/amd.js b/test/form/samples/generated-code/arrow-functions-true/_expected/amd.js index ecd40afdf5a..99d96d74d9e 100644 --- a/test/form/samples/generated-code/arrow-functions-true/_expected/amd.js +++ b/test/form/samples/generated-code/arrow-functions-true/_expected/amd.js @@ -59,11 +59,11 @@ define(['require', 'exports', 'externalNoImport', 'external', 'externalAuto', 'e console.log(externalDefault__namespace); console.log(externalDefaultOnly__namespace); - var main = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var main = /*#__PURE__*/_mergeNamespaces({ __proto__: null, get a () { return exports.a; }, foo: foo - }, [defaultLegacy__namespace])); + }, [defaultLegacy__namespace]); Object.defineProperty(exports, 'foo', { enumerable: true, diff --git a/test/form/samples/generated-code/arrow-functions-true/_expected/cjs.js b/test/form/samples/generated-code/arrow-functions-true/_expected/cjs.js index 0245b6e7289..0ae0e4dfd80 100644 --- a/test/form/samples/generated-code/arrow-functions-true/_expected/cjs.js +++ b/test/form/samples/generated-code/arrow-functions-true/_expected/cjs.js @@ -67,11 +67,11 @@ console.log(externalAuto__default["default"]); console.log(externalDefault__namespace); console.log(externalDefaultOnly__namespace); -var main = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var main = /*#__PURE__*/_mergeNamespaces({ __proto__: null, get a () { return exports.a; }, foo: foo -}, [defaultLegacy__namespace])); +}, [defaultLegacy__namespace]); Object.defineProperty(exports, 'foo', { enumerable: true, diff --git a/test/form/samples/generated-code/arrow-functions-true/_expected/es.js b/test/form/samples/generated-code/arrow-functions-true/_expected/es.js index d8f734e0173..9d0d056095d 100644 --- a/test/form/samples/generated-code/arrow-functions-true/_expected/es.js +++ b/test/form/samples/generated-code/arrow-functions-true/_expected/es.js @@ -35,10 +35,10 @@ console.log(externalAuto); console.log(externalDefault); console.log(externalDefaultOnly); -var main = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var main = /*#__PURE__*/_mergeNamespaces({ __proto__: null, get a () { return a; }, foo: foo -}, [defaultLegacy])); +}, [defaultLegacy]); export { a }; diff --git a/test/form/samples/generated-code/arrow-functions-true/_expected/iife.js b/test/form/samples/generated-code/arrow-functions-true/_expected/iife.js index c0a445d3b6b..7cd3e5d7dc9 100644 --- a/test/form/samples/generated-code/arrow-functions-true/_expected/iife.js +++ b/test/form/samples/generated-code/arrow-functions-true/_expected/iife.js @@ -60,11 +60,11 @@ var bundle = (function (exports, externalNoImport, defaultLegacy, externalAuto, console.log(externalDefault__namespace); console.log(externalDefaultOnly__namespace); - var main = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var main = /*#__PURE__*/_mergeNamespaces({ __proto__: null, get a () { return exports.a; }, foo: foo - }, [defaultLegacy__namespace])); + }, [defaultLegacy__namespace]); Object.defineProperty(exports, 'foo', { enumerable: true, diff --git a/test/form/samples/generated-code/arrow-functions-true/_expected/system.js b/test/form/samples/generated-code/arrow-functions-true/_expected/system.js index 5e235a9d216..88440e686fb 100644 --- a/test/form/samples/generated-code/arrow-functions-true/_expected/system.js +++ b/test/form/samples/generated-code/arrow-functions-true/_expected/system.js @@ -53,11 +53,11 @@ System.register('bundle', ['externalNoImport', 'external', 'externalAuto', 'exte console.log(externalDefault); console.log(externalDefaultOnly); - var main = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var main = /*#__PURE__*/_mergeNamespaces({ __proto__: null, get a () { return a; }, foo: foo - }, [defaultLegacy])); + }, [defaultLegacy]); }) }; diff --git a/test/form/samples/generated-code/arrow-functions-true/_expected/umd.js b/test/form/samples/generated-code/arrow-functions-true/_expected/umd.js index 92ad65570eb..daad56cbf32 100644 --- a/test/form/samples/generated-code/arrow-functions-true/_expected/umd.js +++ b/test/form/samples/generated-code/arrow-functions-true/_expected/umd.js @@ -68,11 +68,11 @@ console.log(externalDefault__namespace); console.log(externalDefaultOnly__namespace); - var main = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var main = /*#__PURE__*/_mergeNamespaces({ __proto__: null, get a () { return exports.a; }, foo: foo - }, [defaultLegacy__namespace])); + }, [defaultLegacy__namespace]); Object.defineProperty(exports, 'foo', { enumerable: true, diff --git a/test/form/samples/generated-code/reserved-names-as-props-false/_expected/amd.js b/test/form/samples/generated-code/reserved-names-as-props-false/_expected/amd.js index 924417b6e88..d18c7795252 100644 --- a/test/form/samples/generated-code/reserved-names-as-props-false/_expected/amd.js +++ b/test/form/samples/generated-code/reserved-names-as-props-false/_expected/amd.js @@ -45,10 +45,10 @@ define(['module', 'exports', 'external', 'externalDefaultOnly', 'external2'], (f foo: 'bar' }; - var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': other - }, [other])); + }, [other]); console.log(ns, other.foo, other["function"], other["some-prop"], external["function"], someDefault__default["default"], defaultOnly__namespace); console.log(undefined, undefined); diff --git a/test/form/samples/generated-code/reserved-names-as-props-false/_expected/cjs.js b/test/form/samples/generated-code/reserved-names-as-props-false/_expected/cjs.js index a2cee947851..674100e6720 100644 --- a/test/form/samples/generated-code/reserved-names-as-props-false/_expected/cjs.js +++ b/test/form/samples/generated-code/reserved-names-as-props-false/_expected/cjs.js @@ -51,10 +51,10 @@ var other = { foo: 'bar' }; -var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': other -}, [other])); +}, [other]); console.log(ns, other.foo, other["function"], other["some-prop"], external["function"], someDefault__default["default"], defaultOnly__namespace); console.log(undefined, undefined); diff --git a/test/form/samples/generated-code/reserved-names-as-props-false/_expected/es.js b/test/form/samples/generated-code/reserved-names-as-props-false/_expected/es.js index 1f0eec1d445..2a6ed788aad 100644 --- a/test/form/samples/generated-code/reserved-names-as-props-false/_expected/es.js +++ b/test/form/samples/generated-code/reserved-names-as-props-false/_expected/es.js @@ -24,10 +24,10 @@ var other = { foo: 'bar' }; -var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': other -}, [other])); +}, [other]); console.log(ns, other.foo, other["function"], other["some-prop"], function$1, someDefault, defaultOnly); console.log(import.meta['function'], import.meta['some-prop']); diff --git a/test/form/samples/generated-code/reserved-names-as-props-false/_expected/iife.js b/test/form/samples/generated-code/reserved-names-as-props-false/_expected/iife.js index 38207851c15..29a6f7881af 100644 --- a/test/form/samples/generated-code/reserved-names-as-props-false/_expected/iife.js +++ b/test/form/samples/generated-code/reserved-names-as-props-false/_expected/iife.js @@ -46,10 +46,10 @@ var bundle = (function (exports, external, defaultOnly, someDefault) { foo: 'bar' }; - var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': other - }, [other])); + }, [other]); console.log(ns, other.foo, other["function"], other["some-prop"], external["function"], someDefault__default["default"], defaultOnly__namespace); console.log(undefined, undefined); diff --git a/test/form/samples/generated-code/reserved-names-as-props-false/_expected/system.js b/test/form/samples/generated-code/reserved-names-as-props-false/_expected/system.js index f8c87c4b69b..f1344126209 100644 --- a/test/form/samples/generated-code/reserved-names-as-props-false/_expected/system.js +++ b/test/form/samples/generated-code/reserved-names-as-props-false/_expected/system.js @@ -31,10 +31,10 @@ System.register('bundle', ['external', 'externalDefaultOnly', 'external2'], (fun foo: 'bar' }; - var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': other - }, [other])); + }, [other]); console.log(ns, other.foo, other["function"], other["some-prop"], function$1, someDefault, defaultOnly); console.log(module.meta["function"], module.meta["some-prop"]); diff --git a/test/form/samples/generated-code/reserved-names-as-props-false/_expected/umd.js b/test/form/samples/generated-code/reserved-names-as-props-false/_expected/umd.js index 60c2a92ddfc..36083a2bb15 100644 --- a/test/form/samples/generated-code/reserved-names-as-props-false/_expected/umd.js +++ b/test/form/samples/generated-code/reserved-names-as-props-false/_expected/umd.js @@ -49,10 +49,10 @@ foo: 'bar' }; - var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, 'default': other - }, [other])); + }, [other]); console.log(ns, other.foo, other["function"], other["some-prop"], external["function"], someDefault__default["default"], defaultOnly__namespace); console.log(undefined, undefined); diff --git a/test/form/samples/generated-code/reserved-names-as-props-true/_expected/amd.js b/test/form/samples/generated-code/reserved-names-as-props-true/_expected/amd.js index bc5436cc26e..8dadd4d542a 100644 --- a/test/form/samples/generated-code/reserved-names-as-props-true/_expected/amd.js +++ b/test/form/samples/generated-code/reserved-names-as-props-true/_expected/amd.js @@ -45,10 +45,10 @@ define(['module', 'exports', 'external', 'externalDefaultOnly', 'external2'], (f foo: 'bar' }; - var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, default: other - }, [other])); + }, [other]); console.log(ns, other.foo, other.function, other["some-prop"], external.function, someDefault__default.default, defaultOnly__namespace); console.log(undefined, undefined); diff --git a/test/form/samples/generated-code/reserved-names-as-props-true/_expected/cjs.js b/test/form/samples/generated-code/reserved-names-as-props-true/_expected/cjs.js index c4ae721a26c..c4646a58c34 100644 --- a/test/form/samples/generated-code/reserved-names-as-props-true/_expected/cjs.js +++ b/test/form/samples/generated-code/reserved-names-as-props-true/_expected/cjs.js @@ -51,10 +51,10 @@ var other = { foo: 'bar' }; -var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, default: other -}, [other])); +}, [other]); console.log(ns, other.foo, other.function, other["some-prop"], external.function, someDefault__default.default, defaultOnly__namespace); console.log(undefined, undefined); diff --git a/test/form/samples/generated-code/reserved-names-as-props-true/_expected/es.js b/test/form/samples/generated-code/reserved-names-as-props-true/_expected/es.js index cd807ccb29c..35def899a87 100644 --- a/test/form/samples/generated-code/reserved-names-as-props-true/_expected/es.js +++ b/test/form/samples/generated-code/reserved-names-as-props-true/_expected/es.js @@ -24,10 +24,10 @@ var other = { foo: 'bar' }; -var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, default: other -}, [other])); +}, [other]); console.log(ns, other.foo, other.function, other["some-prop"], function$1, someDefault, defaultOnly); console.log(import.meta['function'], import.meta['some-prop']); diff --git a/test/form/samples/generated-code/reserved-names-as-props-true/_expected/iife.js b/test/form/samples/generated-code/reserved-names-as-props-true/_expected/iife.js index f3b598db022..bcc1cd758d9 100644 --- a/test/form/samples/generated-code/reserved-names-as-props-true/_expected/iife.js +++ b/test/form/samples/generated-code/reserved-names-as-props-true/_expected/iife.js @@ -46,10 +46,10 @@ var bundle = (function (exports, external, defaultOnly, someDefault) { foo: 'bar' }; - var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, default: other - }, [other])); + }, [other]); console.log(ns, other.foo, other.function, other["some-prop"], external.function, someDefault__default.default, defaultOnly__namespace); console.log(undefined, undefined); diff --git a/test/form/samples/generated-code/reserved-names-as-props-true/_expected/system.js b/test/form/samples/generated-code/reserved-names-as-props-true/_expected/system.js index 812313e268e..562a5c10cf0 100644 --- a/test/form/samples/generated-code/reserved-names-as-props-true/_expected/system.js +++ b/test/form/samples/generated-code/reserved-names-as-props-true/_expected/system.js @@ -31,10 +31,10 @@ System.register('bundle', ['external', 'externalDefaultOnly', 'external2'], (fun foo: 'bar' }; - var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, default: other - }, [other])); + }, [other]); console.log(ns, other.foo, other.function, other["some-prop"], function$1, someDefault, defaultOnly); console.log(module.meta.function, module.meta["some-prop"]); diff --git a/test/form/samples/generated-code/reserved-names-as-props-true/_expected/umd.js b/test/form/samples/generated-code/reserved-names-as-props-true/_expected/umd.js index fa25c67c94a..02f2543d4b0 100644 --- a/test/form/samples/generated-code/reserved-names-as-props-true/_expected/umd.js +++ b/test/form/samples/generated-code/reserved-names-as-props-true/_expected/umd.js @@ -49,10 +49,10 @@ foo: 'bar' }; - var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null, default: other - }, [other])); + }, [other]); console.log(ns, other.foo, other.function, other["some-prop"], external.function, someDefault__default.default, defaultOnly__namespace); console.log(undefined, undefined); diff --git a/test/form/samples/merge-namespaces-non-live/_expected.js b/test/form/samples/merge-namespaces-non-live/_expected.js index 0ccac72f180..db09de273d3 100644 --- a/test/form/samples/merge-namespaces-non-live/_expected.js +++ b/test/form/samples/merge-namespaces-non-live/_expected.js @@ -17,8 +17,8 @@ const __synthetic$1 = { module: 'synthetic' }; const __synthetic = { module: 'reexport' }; -var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null -}, [__synthetic, __synthetic$1, external1, external2])); +}, [__synthetic, __synthetic$1, external1, external2]); console.log(ns); diff --git a/test/form/samples/merge-namespaces/_expected.js b/test/form/samples/merge-namespaces/_expected.js index 718fc549bf6..e3d670024b7 100644 --- a/test/form/samples/merge-namespaces/_expected.js +++ b/test/form/samples/merge-namespaces/_expected.js @@ -20,8 +20,8 @@ const __synthetic$1 = { module: 'synthetic' }; const __synthetic = { module: 'reexport' }; -var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var ns = /*#__PURE__*/_mergeNamespaces({ __proto__: null -}, [__synthetic, __synthetic$1, external1, external2])); +}, [__synthetic, __synthetic$1, external1, external2]); console.log(ns); diff --git a/test/form/samples/namespace-tostring/entry-default/_config.js b/test/form/samples/namespace-tostring/entry-default/_config.js index 2b68c154c07..210c3b4ee86 100644 --- a/test/form/samples/namespace-tostring/entry-default/_config.js +++ b/test/form/samples/namespace-tostring/entry-default/_config.js @@ -2,7 +2,7 @@ module.exports = { description: 'does not add Symbol.toStringTag property to entry chunks with default export mode', options: { output: { - namespaceToStringTag: true, + generatedCode: { symbols: true }, exports: 'default', name: 'bundle' } diff --git a/test/form/samples/namespace-tostring/entry-named/_config.js b/test/form/samples/namespace-tostring/entry-named/_config.js index d329caa8833..69452db2796 100644 --- a/test/form/samples/namespace-tostring/entry-named/_config.js +++ b/test/form/samples/namespace-tostring/entry-named/_config.js @@ -2,7 +2,7 @@ module.exports = { description: 'adds Symbol.toStringTag property to entry chunks with named exports', options: { output: { - namespaceToStringTag: true, + generatedCode: { symbols: true }, exports: 'named', name: 'bundle' } diff --git a/test/form/samples/namespace-tostring/entry-named/_expected/amd.js b/test/form/samples/namespace-tostring/entry-named/_expected/amd.js index f7387a8013c..a686695eb27 100644 --- a/test/form/samples/namespace-tostring/entry-named/_expected/amd.js +++ b/test/form/samples/namespace-tostring/entry-named/_expected/amd.js @@ -4,7 +4,6 @@ define(['exports'], (function (exports) { 'use strict'; exports.foo = foo; - Object.defineProperty(exports, '__esModule', { value: true }); - exports[Symbol.toStringTag] = 'Module'; + Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); })); diff --git a/test/form/samples/namespace-tostring/entry-named/_expected/cjs.js b/test/form/samples/namespace-tostring/entry-named/_expected/cjs.js index 66fbbf71292..0a7f7b36138 100644 --- a/test/form/samples/namespace-tostring/entry-named/_expected/cjs.js +++ b/test/form/samples/namespace-tostring/entry-named/_expected/cjs.js @@ -1,7 +1,6 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports[Symbol.toStringTag] = 'Module'; +Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const foo = 42; diff --git a/test/form/samples/namespace-tostring/entry-named/_expected/iife.js b/test/form/samples/namespace-tostring/entry-named/_expected/iife.js index 7629316c2d9..caef71c5aaa 100644 --- a/test/form/samples/namespace-tostring/entry-named/_expected/iife.js +++ b/test/form/samples/namespace-tostring/entry-named/_expected/iife.js @@ -5,8 +5,7 @@ var bundle = (function (exports) { exports.foo = foo; - Object.defineProperty(exports, '__esModule', { value: true }); - exports[Symbol.toStringTag] = 'Module'; + Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); return exports; diff --git a/test/form/samples/namespace-tostring/entry-named/_expected/umd.js b/test/form/samples/namespace-tostring/entry-named/_expected/umd.js index 9fae7c06e3b..d1b1697e7cd 100644 --- a/test/form/samples/namespace-tostring/entry-named/_expected/umd.js +++ b/test/form/samples/namespace-tostring/entry-named/_expected/umd.js @@ -8,7 +8,6 @@ exports.foo = foo; - Object.defineProperty(exports, '__esModule', { value: true }); - exports[Symbol.toStringTag] = 'Module'; + Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); })); diff --git a/test/form/samples/namespace-tostring/external-namespaces/_config.js b/test/form/samples/namespace-tostring/external-namespaces/_config.js index a6cacfa987a..389ed877b3a 100644 --- a/test/form/samples/namespace-tostring/external-namespaces/_config.js +++ b/test/form/samples/namespace-tostring/external-namespaces/_config.js @@ -5,7 +5,7 @@ module.exports = { return id.startsWith('external'); }, output: { - namespaceToStringTag: true, + generatedCode: { symbols: true }, globals: { 'external-auto': 'externalAuto', 'external-default': 'externalDefault', diff --git a/test/form/samples/namespace-tostring/external-namespaces/_expected/amd.js b/test/form/samples/namespace-tostring/external-namespaces/_expected/amd.js index 3ba43d49951..8bc035b7149 100644 --- a/test/form/samples/namespace-tostring/external-namespaces/_expected/amd.js +++ b/test/form/samples/namespace-tostring/external-namespaces/_expected/amd.js @@ -1,9 +1,9 @@ define(['external-auto', 'external-default', 'external-defaultOnly'], (function (externalAuto, externalDefault, externalDefaultOnly) { 'use strict'; - function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, [Symbol.toStringTag]: 'Module', 'default': e }); } + function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, 'default': e }, Symbol.toStringTag, { value: 'Module' })); } function _interopNamespaceDefault(e) { - var n = {__proto__: null, [Symbol.toStringTag]: 'Module'}; + var n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { diff --git a/test/form/samples/namespace-tostring/external-namespaces/_expected/cjs.js b/test/form/samples/namespace-tostring/external-namespaces/_expected/cjs.js index 51542879635..5322b095993 100644 --- a/test/form/samples/namespace-tostring/external-namespaces/_expected/cjs.js +++ b/test/form/samples/namespace-tostring/external-namespaces/_expected/cjs.js @@ -4,10 +4,10 @@ var externalAuto = require('external-auto'); var externalDefault = require('external-default'); var externalDefaultOnly = require('external-defaultOnly'); -function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, [Symbol.toStringTag]: 'Module', 'default': e }); } +function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, 'default': e }, Symbol.toStringTag, { value: 'Module' })); } function _interopNamespaceDefault(e) { - var n = {__proto__: null, [Symbol.toStringTag]: 'Module'}; + var n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { diff --git a/test/form/samples/namespace-tostring/external-namespaces/_expected/iife.js b/test/form/samples/namespace-tostring/external-namespaces/_expected/iife.js index ceaad50d24c..16f5fff7a43 100644 --- a/test/form/samples/namespace-tostring/external-namespaces/_expected/iife.js +++ b/test/form/samples/namespace-tostring/external-namespaces/_expected/iife.js @@ -1,10 +1,10 @@ (function (externalAuto, externalDefault, externalDefaultOnly) { 'use strict'; - function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, [Symbol.toStringTag]: 'Module', 'default': e }); } + function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, 'default': e }, Symbol.toStringTag, { value: 'Module' })); } function _interopNamespaceDefault(e) { - var n = {__proto__: null, [Symbol.toStringTag]: 'Module'}; + var n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { diff --git a/test/form/samples/namespace-tostring/external-namespaces/_expected/umd.js b/test/form/samples/namespace-tostring/external-namespaces/_expected/umd.js index 02284b5343d..2b672d968f8 100644 --- a/test/form/samples/namespace-tostring/external-namespaces/_expected/umd.js +++ b/test/form/samples/namespace-tostring/external-namespaces/_expected/umd.js @@ -4,10 +4,10 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.externalAuto, global.externalDefault, global.externalDefaultOnly)); })(this, (function (externalAuto, externalDefault, externalDefaultOnly) { 'use strict'; - function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, [Symbol.toStringTag]: 'Module', 'default': e }); } + function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, 'default': e }, Symbol.toStringTag, { value: 'Module' })); } function _interopNamespaceDefault(e) { - var n = {__proto__: null, [Symbol.toStringTag]: 'Module'}; + var n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { diff --git a/test/form/samples/namespace-tostring/inlined-namespace/_config.js b/test/form/samples/namespace-tostring/inlined-namespace/_config.js index 62ccb9bf2cc..4e489178028 100644 --- a/test/form/samples/namespace-tostring/inlined-namespace/_config.js +++ b/test/form/samples/namespace-tostring/inlined-namespace/_config.js @@ -2,7 +2,7 @@ module.exports = { description: 'adds Symbol.toStringTag property to inlined namespaces', options: { output: { - namespaceToStringTag: true + generatedCode: { symbols: true } } } }; diff --git a/test/form/samples/namespace-tostring/inlined-namespace/_expected/amd.js b/test/form/samples/namespace-tostring/inlined-namespace/_expected/amd.js index 520518ca5c8..0fd10487115 100644 --- a/test/form/samples/namespace-tostring/inlined-namespace/_expected/amd.js +++ b/test/form/samples/namespace-tostring/inlined-namespace/_expected/amd.js @@ -2,11 +2,10 @@ define((function () { 'use strict'; const bar = 42; - var foo = /*#__PURE__*/Object.freeze({ + var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ __proto__: null, - [Symbol.toStringTag]: 'Module', bar: bar - }); + }, Symbol.toStringTag, { value: 'Module' })); assert.strictEqual(foo[Symbol.toStringTag], 'Module'); assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); diff --git a/test/form/samples/namespace-tostring/inlined-namespace/_expected/cjs.js b/test/form/samples/namespace-tostring/inlined-namespace/_expected/cjs.js index 72ea5c72080..1d2be7a0b92 100644 --- a/test/form/samples/namespace-tostring/inlined-namespace/_expected/cjs.js +++ b/test/form/samples/namespace-tostring/inlined-namespace/_expected/cjs.js @@ -2,11 +2,10 @@ const bar = 42; -var foo = /*#__PURE__*/Object.freeze({ +var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ __proto__: null, - [Symbol.toStringTag]: 'Module', bar: bar -}); +}, Symbol.toStringTag, { value: 'Module' })); assert.strictEqual(foo[Symbol.toStringTag], 'Module'); assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); diff --git a/test/form/samples/namespace-tostring/inlined-namespace/_expected/es.js b/test/form/samples/namespace-tostring/inlined-namespace/_expected/es.js index ae232b6b724..a74e0a8f263 100644 --- a/test/form/samples/namespace-tostring/inlined-namespace/_expected/es.js +++ b/test/form/samples/namespace-tostring/inlined-namespace/_expected/es.js @@ -1,10 +1,9 @@ const bar = 42; -var foo = /*#__PURE__*/Object.freeze({ +var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ __proto__: null, - [Symbol.toStringTag]: 'Module', bar: bar -}); +}, Symbol.toStringTag, { value: 'Module' })); assert.strictEqual(foo[Symbol.toStringTag], 'Module'); assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); diff --git a/test/form/samples/namespace-tostring/inlined-namespace/_expected/iife.js b/test/form/samples/namespace-tostring/inlined-namespace/_expected/iife.js index 229f1e2a0d6..d960020bd7a 100644 --- a/test/form/samples/namespace-tostring/inlined-namespace/_expected/iife.js +++ b/test/form/samples/namespace-tostring/inlined-namespace/_expected/iife.js @@ -3,11 +3,10 @@ const bar = 42; - var foo = /*#__PURE__*/Object.freeze({ + var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ __proto__: null, - [Symbol.toStringTag]: 'Module', bar: bar - }); + }, Symbol.toStringTag, { value: 'Module' })); assert.strictEqual(foo[Symbol.toStringTag], 'Module'); assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); diff --git a/test/form/samples/namespace-tostring/inlined-namespace/_expected/system.js b/test/form/samples/namespace-tostring/inlined-namespace/_expected/system.js index 936d479165e..d26e5038939 100644 --- a/test/form/samples/namespace-tostring/inlined-namespace/_expected/system.js +++ b/test/form/samples/namespace-tostring/inlined-namespace/_expected/system.js @@ -5,11 +5,10 @@ System.register([], (function () { const bar = 42; - var foo = /*#__PURE__*/Object.freeze({ + var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ __proto__: null, - [Symbol.toStringTag]: 'Module', bar: bar - }); + }, Symbol.toStringTag, { value: 'Module' })); assert.strictEqual(foo[Symbol.toStringTag], 'Module'); assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); diff --git a/test/form/samples/namespace-tostring/inlined-namespace/_expected/umd.js b/test/form/samples/namespace-tostring/inlined-namespace/_expected/umd.js index 8299de9b9c8..fdb31a26ccd 100644 --- a/test/form/samples/namespace-tostring/inlined-namespace/_expected/umd.js +++ b/test/form/samples/namespace-tostring/inlined-namespace/_expected/umd.js @@ -5,11 +5,10 @@ const bar = 42; - var foo = /*#__PURE__*/Object.freeze({ + var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ __proto__: null, - [Symbol.toStringTag]: 'Module', bar: bar - }); + }, Symbol.toStringTag, { value: 'Module' })); assert.strictEqual(foo[Symbol.toStringTag], 'Module'); assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); diff --git a/test/form/samples/ns-external-star-reexport/_expected/amd.js b/test/form/samples/ns-external-star-reexport/_expected/amd.js index 26fe34a4c40..7c9cf3ca32d 100644 --- a/test/form/samples/ns-external-star-reexport/_expected/amd.js +++ b/test/form/samples/ns-external-star-reexport/_expected/amd.js @@ -36,21 +36,21 @@ define(['exports', 'external1', 'external2'], (function (exports, external1, ext var external1__namespace = /*#__PURE__*/_interopNamespace(external1); var external2__namespace = /*#__PURE__*/_interopNamespace(external2); - var reexportExternal = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var reexportExternal = /*#__PURE__*/_mergeNamespaces({ __proto__: null - }, [external1__namespace])); + }, [external1__namespace]); const extra = 'extra'; const override = 'override'; var reexportExternalsWithOverride = { synthetic: 'synthetic' }; - var reexportExternalsWithOverride$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var reexportExternalsWithOverride$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, override: override, 'default': reexportExternalsWithOverride, extra: extra - }, [reexportExternalsWithOverride, external1__namespace, external2__namespace])); + }, [reexportExternalsWithOverride, external1__namespace, external2__namespace]); exports.external = reexportExternal; exports.externalOverride = reexportExternalsWithOverride$1; diff --git a/test/form/samples/ns-external-star-reexport/_expected/cjs.js b/test/form/samples/ns-external-star-reexport/_expected/cjs.js index d64ba2a2292..66227f3df8c 100644 --- a/test/form/samples/ns-external-star-reexport/_expected/cjs.js +++ b/test/form/samples/ns-external-star-reexport/_expected/cjs.js @@ -41,21 +41,21 @@ function _mergeNamespaces(n, m) { var external1__namespace = /*#__PURE__*/_interopNamespace(external1); var external2__namespace = /*#__PURE__*/_interopNamespace(external2); -var reexportExternal = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var reexportExternal = /*#__PURE__*/_mergeNamespaces({ __proto__: null -}, [external1__namespace])); +}, [external1__namespace]); const extra = 'extra'; const override = 'override'; var reexportExternalsWithOverride = { synthetic: 'synthetic' }; -var reexportExternalsWithOverride$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var reexportExternalsWithOverride$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, override: override, 'default': reexportExternalsWithOverride, extra: extra -}, [reexportExternalsWithOverride, external1__namespace, external2__namespace])); +}, [reexportExternalsWithOverride, external1__namespace, external2__namespace]); exports.external = reexportExternal; exports.externalOverride = reexportExternalsWithOverride$1; diff --git a/test/form/samples/ns-external-star-reexport/_expected/es.js b/test/form/samples/ns-external-star-reexport/_expected/es.js index eda2049ea00..dd11dc69a98 100644 --- a/test/form/samples/ns-external-star-reexport/_expected/es.js +++ b/test/form/samples/ns-external-star-reexport/_expected/es.js @@ -16,20 +16,20 @@ function _mergeNamespaces(n, m) { return Object.freeze(n); } -var reexportExternal = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var reexportExternal = /*#__PURE__*/_mergeNamespaces({ __proto__: null -}, [external1])); +}, [external1]); const extra = 'extra'; const override = 'override'; var reexportExternalsWithOverride = { synthetic: 'synthetic' }; -var reexportExternalsWithOverride$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ +var reexportExternalsWithOverride$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, override: override, 'default': reexportExternalsWithOverride, extra: extra -}, [reexportExternalsWithOverride, external1, external2])); +}, [reexportExternalsWithOverride, external1, external2]); export { reexportExternal as external, reexportExternalsWithOverride$1 as externalOverride }; diff --git a/test/form/samples/ns-external-star-reexport/_expected/iife.js b/test/form/samples/ns-external-star-reexport/_expected/iife.js index 2c3eda016d5..6641d14ffec 100644 --- a/test/form/samples/ns-external-star-reexport/_expected/iife.js +++ b/test/form/samples/ns-external-star-reexport/_expected/iife.js @@ -37,21 +37,21 @@ var bundle = (function (exports, external1, external2) { var external1__namespace = /*#__PURE__*/_interopNamespace(external1); var external2__namespace = /*#__PURE__*/_interopNamespace(external2); - var reexportExternal = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var reexportExternal = /*#__PURE__*/_mergeNamespaces({ __proto__: null - }, [external1__namespace])); + }, [external1__namespace]); const extra = 'extra'; const override = 'override'; var reexportExternalsWithOverride = { synthetic: 'synthetic' }; - var reexportExternalsWithOverride$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var reexportExternalsWithOverride$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, override: override, 'default': reexportExternalsWithOverride, extra: extra - }, [reexportExternalsWithOverride, external1__namespace, external2__namespace])); + }, [reexportExternalsWithOverride, external1__namespace, external2__namespace]); exports.external = reexportExternal; exports.externalOverride = reexportExternalsWithOverride$1; diff --git a/test/form/samples/ns-external-star-reexport/_expected/system.js b/test/form/samples/ns-external-star-reexport/_expected/system.js index fd2d7adfb2d..1bbf6fd3b4a 100644 --- a/test/form/samples/ns-external-star-reexport/_expected/system.js +++ b/test/form/samples/ns-external-star-reexport/_expected/system.js @@ -24,9 +24,9 @@ System.register('bundle', ['external1', 'external2'], (function (exports) { return Object.freeze(n); } - var reexportExternal = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var reexportExternal = /*#__PURE__*/_mergeNamespaces({ __proto__: null - }, [external1])); + }, [external1]); exports('external', reexportExternal); const extra = 'extra'; @@ -34,12 +34,12 @@ System.register('bundle', ['external1', 'external2'], (function (exports) { const override = 'override'; var reexportExternalsWithOverride = { synthetic: 'synthetic' }; - var reexportExternalsWithOverride$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var reexportExternalsWithOverride$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, override: override, 'default': reexportExternalsWithOverride, extra: extra - }, [reexportExternalsWithOverride, external1, external2])); + }, [reexportExternalsWithOverride, external1, external2]); exports('externalOverride', reexportExternalsWithOverride$1); }) diff --git a/test/form/samples/ns-external-star-reexport/_expected/umd.js b/test/form/samples/ns-external-star-reexport/_expected/umd.js index b9ccfc10e93..c8b2d5ac05b 100644 --- a/test/form/samples/ns-external-star-reexport/_expected/umd.js +++ b/test/form/samples/ns-external-star-reexport/_expected/umd.js @@ -40,21 +40,21 @@ var external1__namespace = /*#__PURE__*/_interopNamespace(external1); var external2__namespace = /*#__PURE__*/_interopNamespace(external2); - var reexportExternal = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var reexportExternal = /*#__PURE__*/_mergeNamespaces({ __proto__: null - }, [external1__namespace])); + }, [external1__namespace]); const extra = 'extra'; const override = 'override'; var reexportExternalsWithOverride = { synthetic: 'synthetic' }; - var reexportExternalsWithOverride$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({ + var reexportExternalsWithOverride$1 = /*#__PURE__*/_mergeNamespaces({ __proto__: null, override: override, 'default': reexportExternalsWithOverride, extra: extra - }, [reexportExternalsWithOverride, external1__namespace, external2__namespace])); + }, [reexportExternalsWithOverride, external1__namespace, external2__namespace]); exports.external = reexportExternal; exports.externalOverride = reexportExternalsWithOverride$1; diff --git a/test/function/samples/compact/_config.js b/test/function/samples/compact/_config.js index 18101794b43..af768500312 100644 --- a/test/function/samples/compact/_config.js +++ b/test/function/samples/compact/_config.js @@ -4,7 +4,7 @@ module.exports = { external: ['external'], output: { compact: true, - namespaceToStringTag: true + generatedCode: { symbols: true } } }, warnings: [ diff --git a/test/function/samples/deprecated/compact/_config.js b/test/function/samples/deprecated/compact/_config.js new file mode 100644 index 00000000000..30ce0c74921 --- /dev/null +++ b/test/function/samples/deprecated/compact/_config.js @@ -0,0 +1,24 @@ +module.exports = { + description: 'compact output with compact: true', + options: { + strictDeprecations: false, + external: ['external'], + output: { + compact: true, + namespaceToStringTag: true + } + }, + warnings: [ + { + code: 'CIRCULAR_DEPENDENCY', + cycle: ['main.js', 'main.js'], + importer: 'main.js', + message: 'Circular dependency: main.js -> main.js' + } + ], + context: { + require() { + return 42; + } + } +}; diff --git a/test/function/samples/deprecated/compact/main.js b/test/function/samples/deprecated/compact/main.js new file mode 100644 index 00000000000..6ecb287fb92 --- /dev/null +++ b/test/function/samples/deprecated/compact/main.js @@ -0,0 +1,12 @@ +import x from 'external'; +import * as self from './main.js'; + +assert.equal(self && self['de' + 'fault'](), 42); + +export default function foo() { + return x; +} + +import('./main.js').then(self => { + assert.equal(self && self['de' + 'fault'](), 42); +}); diff --git a/test/function/samples/deprecated/name-conflict-symbol/_config.js b/test/function/samples/deprecated/name-conflict-symbol/_config.js new file mode 100644 index 00000000000..87812cfdceb --- /dev/null +++ b/test/function/samples/deprecated/name-conflict-symbol/_config.js @@ -0,0 +1,15 @@ +const assert = require('assert'); + +module.exports = { + description: 'avoids name conflicts with local variables named Symbol', + options: { + strictDeprecations: false, + output: { + namespaceToStringTag: true + } + }, + exports(exports) { + assert.strictEqual(exports.Symbol, null); + assert.strictEqual(exports.toString(), '[object Module]'); + } +}; diff --git a/test/function/samples/deprecated/name-conflict-symbol/main.js b/test/function/samples/deprecated/name-conflict-symbol/main.js new file mode 100644 index 00000000000..6b55d36f1c2 --- /dev/null +++ b/test/function/samples/deprecated/name-conflict-symbol/main.js @@ -0,0 +1 @@ +export const Symbol = null; diff --git a/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_config.js b/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_config.js new file mode 100644 index 00000000000..229c2f06ac5 --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_config.js @@ -0,0 +1,19 @@ +const assert = require('assert'); + +module.exports = { + description: + 'adds Symbol.toStringTag property to dynamic imports of entry chunks with default export mode', + options: { + strictDeprecations: false, + input: ['main', 'foo'], + output: { + namespaceToStringTag: true + } + }, + async exports(exports) { + const foo = await exports; + assert.strictEqual(foo[Symbol.toStringTag], 'Module'); + assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); + assert.strictEqual(foo.default, 42); + } +}; diff --git a/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/foo.js b/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/foo.js new file mode 100644 index 00000000000..7a4e8a723a4 --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/foo.js @@ -0,0 +1 @@ +export default 42; diff --git a/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/main.js b/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/main.js new file mode 100644 index 00000000000..88023eaa2a6 --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/main.js @@ -0,0 +1 @@ +export default import('./foo'); diff --git a/test/function/samples/deprecated/namespace-tostring/dynamic-import/_config.js b/test/function/samples/deprecated/namespace-tostring/dynamic-import/_config.js new file mode 100644 index 00000000000..8e2345f65d2 --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/dynamic-import/_config.js @@ -0,0 +1,22 @@ +const assert = require('assert'); + +module.exports = { + description: 'adds Symbol.toStringTag property to dynamic imports', + options: { + strictDeprecations: false, + output: { + namespaceToStringTag: true + } + }, + async exports(exports) { + const namespace = await exports; + assert.strictEqual(Object.prototype.toString.call(namespace), '[object Module]'); + assert.strictEqual(namespace[Symbol.toStringTag], 'Module'); + assert.strictEqual(namespace.bar, 42); + + const copied = { ...namespace }; + assert.deepStrictEqual(copied, { bar: 42 }); + assert.strictEqual(Object.prototype.toString.call(copied), '[object Object]'); + assert.strictEqual(copied[Symbol.toStringTag], undefined); + } +}; diff --git a/test/function/samples/deprecated/namespace-tostring/dynamic-import/foo.js b/test/function/samples/deprecated/namespace-tostring/dynamic-import/foo.js new file mode 100644 index 00000000000..308e102fe9a --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/dynamic-import/foo.js @@ -0,0 +1 @@ +export const bar = 42; diff --git a/test/function/samples/deprecated/namespace-tostring/dynamic-import/main.js b/test/function/samples/deprecated/namespace-tostring/dynamic-import/main.js new file mode 100644 index 00000000000..88023eaa2a6 --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/dynamic-import/main.js @@ -0,0 +1 @@ +export default import('./foo'); diff --git a/test/function/samples/deprecated/namespace-tostring/entry-default/_config.js b/test/function/samples/deprecated/namespace-tostring/entry-default/_config.js new file mode 100644 index 00000000000..157a349ffe1 --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/entry-default/_config.js @@ -0,0 +1,17 @@ +const assert = require('assert'); + +module.exports = { + description: 'does not add Symbol.toStringTag property to entry chunks with default export mode', + options: { + strictDeprecations: false, + output: { + namespaceToStringTag: true, + exports: 'default' + } + }, + exports(exports) { + assert.strictEqual(exports[Symbol.toStringTag], undefined); + assert.strictEqual(Object.prototype.toString.call(exports), '[object Object]'); + assert.strictEqual(exports.foo, 42); + } +}; diff --git a/test/function/samples/deprecated/namespace-tostring/entry-default/main.js b/test/function/samples/deprecated/namespace-tostring/entry-default/main.js new file mode 100644 index 00000000000..407b3c24eb7 --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/entry-default/main.js @@ -0,0 +1 @@ +export default { foo: 42 }; diff --git a/test/function/samples/deprecated/namespace-tostring/entry-named/_config.js b/test/function/samples/deprecated/namespace-tostring/entry-named/_config.js new file mode 100644 index 00000000000..f4d48b27188 --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/entry-named/_config.js @@ -0,0 +1,22 @@ +const assert = require('assert'); + +module.exports = { + description: 'adds Symbol.toStringTag property to entry chunks with named exports', + options: { + strictDeprecations: false, + output: { + namespaceToStringTag: true, + exports: 'named' + } + }, + exports(exports) { + assert.strictEqual(Object.prototype.toString.call(exports), '[object Module]'); + assert.strictEqual(exports[Symbol.toStringTag], 'Module'); + assert.strictEqual(exports.foo, 42); + + const copied = { ...exports }; + assert.deepStrictEqual(copied, { foo: 42 }); + assert.strictEqual(Object.prototype.toString.call(copied), '[object Object]'); + assert.strictEqual(copied[Symbol.toStringTag], undefined); + } +}; diff --git a/test/function/samples/deprecated/namespace-tostring/entry-named/main.js b/test/function/samples/deprecated/namespace-tostring/entry-named/main.js new file mode 100644 index 00000000000..9d7381d29f6 --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/entry-named/main.js @@ -0,0 +1 @@ +export const foo = 42; diff --git a/test/function/samples/deprecated/namespace-tostring/external-namespaces/_config.js b/test/function/samples/deprecated/namespace-tostring/external-namespaces/_config.js new file mode 100644 index 00000000000..21ac84c6eb5 --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/external-namespaces/_config.js @@ -0,0 +1,29 @@ +module.exports = { + description: 'adds Symbol.toStringTag property to external namespaces', + options: { + strictDeprecations: false, + external(id) { + return id.startsWith('external'); + }, + output: { + namespaceToStringTag: true, + interop(id) { + switch (id) { + case 'external-auto': + return 'auto'; + case 'external-default': + return 'default'; + case 'external-defaultOnly': + return 'defaultOnly'; + default: + throw new Error(`Unexpected require "${id}"`); + } + } + } + }, + context: { + require() { + return { foo: 42 }; + } + } +}; diff --git a/test/function/samples/deprecated/namespace-tostring/external-namespaces/main.js b/test/function/samples/deprecated/namespace-tostring/external-namespaces/main.js new file mode 100644 index 00000000000..978de6a2cb4 --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/external-namespaces/main.js @@ -0,0 +1,15 @@ +import * as externalAuto from 'external-auto'; +import * as externalDefault from 'external-default'; +import * as externalDefaultOnly from 'external-defaultOnly'; + +assert.strictEqual(externalAuto[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(externalAuto), '[object Module]'); +assert.strictEqual(externalAuto.foo, 42); + +assert.strictEqual(externalDefault[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(externalDefault), '[object Module]'); +assert.strictEqual(externalDefault.foo, 42); + +assert.strictEqual(externalDefaultOnly[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly), '[object Module]'); +assert.deepStrictEqual(externalDefaultOnly.default, { foo: 42 }); diff --git a/test/function/samples/deprecated/namespace-tostring/inlined-namespace/_config.js b/test/function/samples/deprecated/namespace-tostring/inlined-namespace/_config.js new file mode 100644 index 00000000000..70d5429e572 --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/inlined-namespace/_config.js @@ -0,0 +1,9 @@ +module.exports = { + description: 'adds Symbol.toStringTag property to inlined namespaces', + options: { + strictDeprecations: false, + output: { + namespaceToStringTag: true + } + } +}; diff --git a/test/function/samples/deprecated/namespace-tostring/inlined-namespace/foo.js b/test/function/samples/deprecated/namespace-tostring/inlined-namespace/foo.js new file mode 100644 index 00000000000..308e102fe9a --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/inlined-namespace/foo.js @@ -0,0 +1 @@ +export const bar = 42; diff --git a/test/function/samples/deprecated/namespace-tostring/inlined-namespace/main.js b/test/function/samples/deprecated/namespace-tostring/inlined-namespace/main.js new file mode 100644 index 00000000000..fb6b24345ef --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/inlined-namespace/main.js @@ -0,0 +1,5 @@ +import * as foo from './foo'; + +assert.strictEqual(foo[Symbol.toStringTag], 'Module'); +assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); +assert.strictEqual(foo.bar, 42); diff --git a/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/_config.js b/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/_config.js new file mode 100644 index 00000000000..3b6363a482d --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/_config.js @@ -0,0 +1,20 @@ +module.exports = { + description: 'generated interop namespaces should have correct Symbol.toStringTag', + context: { + require() { + return { answer: 42 }; + } + }, + options: { + strictDeprecations: false, + external(id) { + return id.includes('external'); + }, + output: { + namespaceToStringTag: true, + interop(id) { + return id.split('-')[1]; + } + } + } +}; diff --git a/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/dep.js b/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/dep.js new file mode 100644 index 00000000000..123aa5a11dc --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/dep.js @@ -0,0 +1,2 @@ +export * from 'external-default'; +export const extra = 'extra'; diff --git a/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/main.js b/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/main.js new file mode 100644 index 00000000000..7240b9002d0 --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/main.js @@ -0,0 +1,25 @@ +import * as nsDefault from 'external-default'; +import * as nsDefaultOnly from 'external-defaultOnly'; +import * as nsMerged from './dep.js'; + +function verifyNamespace(ns, expected) { + assert.deepStrictEqual(Object.getOwnPropertyDescriptor(ns, Symbol.toStringTag), { + value: 'Module', + configurable: false, + enumerable: false, + writable: false + }); + + const assigned = Object.assign({}, ns); + const spreaded = { ...ns }; + + assert.deepStrictEqual(assigned, expected); + assert.strictEqual(assigned[Symbol.toStringTag], undefined); + + assert.deepStrictEqual(spreaded, expected); + assert.strictEqual(spreaded[Symbol.toStringTag], undefined); +} + +verifyNamespace(nsDefault, { answer: 42, default: { answer: 42 } }); +verifyNamespace(nsDefaultOnly, { default: { answer: 42 } }); +verifyNamespace(nsMerged, { answer: 42, extra: 'extra' }); diff --git a/test/function/samples/deprecated/namespace-tostring/property-descriptor/_config.js b/test/function/samples/deprecated/namespace-tostring/property-descriptor/_config.js new file mode 100644 index 00000000000..aeac0e0efff --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/property-descriptor/_config.js @@ -0,0 +1,9 @@ +module.exports = { + description: 'namespace export should have @@toStringTag with correct property descriptors #4336', + options: { + strictDeprecations: false, + output: { + namespaceToStringTag: true + } + } +}; diff --git a/test/function/samples/deprecated/namespace-tostring/property-descriptor/foo.js b/test/function/samples/deprecated/namespace-tostring/property-descriptor/foo.js new file mode 100644 index 00000000000..c155820bf77 --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/property-descriptor/foo.js @@ -0,0 +1 @@ +export const foo = 'bar'; diff --git a/test/function/samples/deprecated/namespace-tostring/property-descriptor/main.js b/test/function/samples/deprecated/namespace-tostring/property-descriptor/main.js new file mode 100644 index 00000000000..2743d20a176 --- /dev/null +++ b/test/function/samples/deprecated/namespace-tostring/property-descriptor/main.js @@ -0,0 +1,22 @@ +import * as ns from './foo.js'; + +const { assign, getOwnPropertyDescriptor } = Object; + +const { configurable, enumerable, value, writable } = getOwnPropertyDescriptor( + ns, + Symbol.toStringTag +); + +assert.strictEqual(value, 'Module', 'value'); +assert.strictEqual(configurable, false, 'configurable'); +assert.strictEqual(enumerable, false, 'enumerable'); +assert.strictEqual(writable, false, 'writable'); + +const a = assign({}, ns); +const b = { ...ns }; + +assert.deepStrictEqual(a, { foo: 'bar' }); +assert.strictEqual(a[Symbol.toStringTag], undefined); + +assert.deepStrictEqual(b, { foo: 'bar' }); +assert.strictEqual(b[Symbol.toStringTag], undefined); diff --git a/test/function/samples/deprecated/nested-inlined-dynamic-import-1/_config.js b/test/function/samples/deprecated/nested-inlined-dynamic-import-1/_config.js index ad243453388..8ab6e162777 100644 --- a/test/function/samples/deprecated/nested-inlined-dynamic-import-1/_config.js +++ b/test/function/samples/deprecated/nested-inlined-dynamic-import-1/_config.js @@ -4,7 +4,8 @@ module.exports = { description: 'deconflicts variables when nested dynamic imports are inlined via inlineDynamicImports', options: { - output: { inlineDynamicImports: true } + strictDeprecations: false, + inlineDynamicImports: true }, exports(exports) { return exports().then(result => assert.strictEqual(result, 43)); diff --git a/test/function/samples/deprecated/reexport-ns/_config.js b/test/function/samples/deprecated/reexport-ns/_config.js new file mode 100644 index 00000000000..60fecaa0d22 --- /dev/null +++ b/test/function/samples/deprecated/reexport-ns/_config.js @@ -0,0 +1,17 @@ +const assert = require('assert'); + +module.exports = { + description: 'external namespace reexport', + options: { + strictDeprecations: false, + external: ['external'], + output: { + namespaceToStringTag: true + } + }, + exports(exports) { + assert.strictEqual(typeof exports.maths, 'object'); + assert.strictEqual(exports[Symbol.toStringTag], 'Module'); + assert.strictEqual(exports.maths.external, true); + } +}; diff --git a/test/function/samples/deprecated/reexport-ns/main.js b/test/function/samples/deprecated/reexport-ns/main.js new file mode 100644 index 00000000000..240d9f00fc8 --- /dev/null +++ b/test/function/samples/deprecated/reexport-ns/main.js @@ -0,0 +1,3 @@ +import * as maths from './maths.js'; + +export default maths; diff --git a/test/function/samples/deprecated/reexport-ns/maths.js b/test/function/samples/deprecated/reexport-ns/maths.js new file mode 100644 index 00000000000..5089bebae3c --- /dev/null +++ b/test/function/samples/deprecated/reexport-ns/maths.js @@ -0,0 +1 @@ +export { default as maths } from './square.js'; diff --git a/test/function/samples/deprecated/reexport-ns/square.js b/test/function/samples/deprecated/reexport-ns/square.js new file mode 100644 index 00000000000..b3725dbd9fe --- /dev/null +++ b/test/function/samples/deprecated/reexport-ns/square.js @@ -0,0 +1,2 @@ +import * as m from 'external'; +export default m; diff --git a/test/function/samples/deprecations/namespaceToStringTag/_config.js b/test/function/samples/deprecations/namespaceToStringTag/_config.js new file mode 100644 index 00000000000..16283f6677d --- /dev/null +++ b/test/function/samples/deprecations/namespaceToStringTag/_config.js @@ -0,0 +1,13 @@ +module.exports = { + description: 'marks the "output.namespaceToStringTag" option as deprecated', + options: { + output: { + namespaceToStringTag: true + } + }, + generateError: { + code: 'DEPRECATED_FEATURE', + message: + 'The "output.namespaceToStringTag" option is deprecated. Use the "output.generatedCode.symbols" option instead.' + } +}; diff --git a/test/function/samples/deprecations/namespaceToStringTag/main.js b/test/function/samples/deprecations/namespaceToStringTag/main.js new file mode 100644 index 00000000000..cc1d88a24fa --- /dev/null +++ b/test/function/samples/deprecations/namespaceToStringTag/main.js @@ -0,0 +1 @@ +assert.ok(true); diff --git a/test/function/samples/name-conflict-symbol/_config.js b/test/function/samples/name-conflict-symbol/_config.js index 1ef944a3218..31f849ba704 100644 --- a/test/function/samples/name-conflict-symbol/_config.js +++ b/test/function/samples/name-conflict-symbol/_config.js @@ -4,7 +4,7 @@ module.exports = { description: 'avoids name conflicts with local variables named Symbol', options: { output: { - namespaceToStringTag: true + generatedCode: { symbols: true } } }, exports(exports) { diff --git a/test/function/samples/namespace-tostring/dynamic-import-default-mode/_config.js b/test/function/samples/namespace-tostring/dynamic-import-default-mode/_config.js index 0b803ae86e3..9cc02b8d332 100644 --- a/test/function/samples/namespace-tostring/dynamic-import-default-mode/_config.js +++ b/test/function/samples/namespace-tostring/dynamic-import-default-mode/_config.js @@ -6,7 +6,7 @@ module.exports = { options: { input: ['main', 'foo'], output: { - namespaceToStringTag: true + generatedCode: { symbols: true } } }, async exports(exports) { diff --git a/test/function/samples/namespace-tostring/dynamic-import/_config.js b/test/function/samples/namespace-tostring/dynamic-import/_config.js index 90958a0c768..654c5c893e8 100644 --- a/test/function/samples/namespace-tostring/dynamic-import/_config.js +++ b/test/function/samples/namespace-tostring/dynamic-import/_config.js @@ -4,13 +4,18 @@ module.exports = { description: 'adds Symbol.toStringTag property to dynamic imports', options: { output: { - namespaceToStringTag: true + generatedCode: { symbols: true } } }, async exports(exports) { - const foo = await exports; - assert.strictEqual(foo[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); - assert.strictEqual(foo.bar, 42); + const namespace = await exports; + assert.strictEqual(Object.prototype.toString.call(namespace), '[object Module]'); + assert.strictEqual(namespace[Symbol.toStringTag], 'Module'); + assert.strictEqual(namespace.bar, 42); + + const copied = { ...namespace }; + assert.deepStrictEqual(copied, { bar: 42 }); + assert.strictEqual(Object.prototype.toString.call(copied), '[object Object]'); + assert.strictEqual(copied[Symbol.toStringTag], undefined); } }; diff --git a/test/function/samples/namespace-tostring/entry-default/_config.js b/test/function/samples/namespace-tostring/entry-default/_config.js index fd09a408684..de4bf9d2826 100644 --- a/test/function/samples/namespace-tostring/entry-default/_config.js +++ b/test/function/samples/namespace-tostring/entry-default/_config.js @@ -4,7 +4,7 @@ module.exports = { description: 'does not add Symbol.toStringTag property to entry chunks with default export mode', options: { output: { - namespaceToStringTag: true, + generatedCode: { symbols: true }, exports: 'default' } }, diff --git a/test/function/samples/namespace-tostring/entry-named/_config.js b/test/function/samples/namespace-tostring/entry-named/_config.js index 15bdf092827..9ce69615cef 100644 --- a/test/function/samples/namespace-tostring/entry-named/_config.js +++ b/test/function/samples/namespace-tostring/entry-named/_config.js @@ -4,13 +4,18 @@ module.exports = { description: 'adds Symbol.toStringTag property to entry chunks with named exports', options: { output: { - namespaceToStringTag: true, + generatedCode: { symbols: true }, exports: 'named' } }, exports(exports) { - assert.strictEqual(exports[Symbol.toStringTag], 'Module'); assert.strictEqual(Object.prototype.toString.call(exports), '[object Module]'); + assert.strictEqual(exports[Symbol.toStringTag], 'Module'); assert.strictEqual(exports.foo, 42); + + const copied = { ...exports }; + assert.deepStrictEqual(copied, { foo: 42 }); + assert.strictEqual(Object.prototype.toString.call(copied), '[object Object]'); + assert.strictEqual(copied[Symbol.toStringTag], undefined); } }; diff --git a/test/function/samples/namespace-tostring/external-namespaces/_config.js b/test/function/samples/namespace-tostring/external-namespaces/_config.js index 73c4c844b6c..b0213d2ba8c 100644 --- a/test/function/samples/namespace-tostring/external-namespaces/_config.js +++ b/test/function/samples/namespace-tostring/external-namespaces/_config.js @@ -5,7 +5,7 @@ module.exports = { return id.startsWith('external'); }, output: { - namespaceToStringTag: true, + generatedCode: { symbols: true }, interop(id) { switch (id) { case 'external-auto': diff --git a/test/function/samples/namespace-tostring/inlined-namespace/_config.js b/test/function/samples/namespace-tostring/inlined-namespace/_config.js index 62ccb9bf2cc..4e489178028 100644 --- a/test/function/samples/namespace-tostring/inlined-namespace/_config.js +++ b/test/function/samples/namespace-tostring/inlined-namespace/_config.js @@ -2,7 +2,7 @@ module.exports = { description: 'adds Symbol.toStringTag property to inlined namespaces', options: { output: { - namespaceToStringTag: true + generatedCode: { symbols: true } } } }; diff --git a/test/function/samples/namespace-tostring/interop-property-descriptor/_config.js b/test/function/samples/namespace-tostring/interop-property-descriptor/_config.js new file mode 100644 index 00000000000..0aa022a9925 --- /dev/null +++ b/test/function/samples/namespace-tostring/interop-property-descriptor/_config.js @@ -0,0 +1,19 @@ +module.exports = { + description: 'generated interop namespaces should have correct Symbol.toStringTag', + context: { + require() { + return { answer: 42 }; + } + }, + options: { + external(id) { + return id.includes('external'); + }, + output: { + generatedCode: { symbols: true }, + interop(id) { + return id.split('-')[1]; + } + } + } +}; diff --git a/test/function/samples/namespace-tostring/interop-property-descriptor/dep.js b/test/function/samples/namespace-tostring/interop-property-descriptor/dep.js new file mode 100644 index 00000000000..123aa5a11dc --- /dev/null +++ b/test/function/samples/namespace-tostring/interop-property-descriptor/dep.js @@ -0,0 +1,2 @@ +export * from 'external-default'; +export const extra = 'extra'; diff --git a/test/function/samples/namespace-tostring/interop-property-descriptor/main.js b/test/function/samples/namespace-tostring/interop-property-descriptor/main.js new file mode 100644 index 00000000000..7240b9002d0 --- /dev/null +++ b/test/function/samples/namespace-tostring/interop-property-descriptor/main.js @@ -0,0 +1,25 @@ +import * as nsDefault from 'external-default'; +import * as nsDefaultOnly from 'external-defaultOnly'; +import * as nsMerged from './dep.js'; + +function verifyNamespace(ns, expected) { + assert.deepStrictEqual(Object.getOwnPropertyDescriptor(ns, Symbol.toStringTag), { + value: 'Module', + configurable: false, + enumerable: false, + writable: false + }); + + const assigned = Object.assign({}, ns); + const spreaded = { ...ns }; + + assert.deepStrictEqual(assigned, expected); + assert.strictEqual(assigned[Symbol.toStringTag], undefined); + + assert.deepStrictEqual(spreaded, expected); + assert.strictEqual(spreaded[Symbol.toStringTag], undefined); +} + +verifyNamespace(nsDefault, { answer: 42, default: { answer: 42 } }); +verifyNamespace(nsDefaultOnly, { default: { answer: 42 } }); +verifyNamespace(nsMerged, { answer: 42, extra: 'extra' }); diff --git a/test/function/samples/namespace-tostring/property-descriptor/_config.js b/test/function/samples/namespace-tostring/property-descriptor/_config.js new file mode 100644 index 00000000000..fd8251ad12d --- /dev/null +++ b/test/function/samples/namespace-tostring/property-descriptor/_config.js @@ -0,0 +1,8 @@ +module.exports = { + description: 'namespace export should have @@toStringTag with correct property descriptors #4336', + options: { + output: { + generatedCode: { symbols: true } + } + } +}; diff --git a/test/function/samples/namespace-tostring/property-descriptor/foo.js b/test/function/samples/namespace-tostring/property-descriptor/foo.js new file mode 100644 index 00000000000..c155820bf77 --- /dev/null +++ b/test/function/samples/namespace-tostring/property-descriptor/foo.js @@ -0,0 +1 @@ +export const foo = 'bar'; diff --git a/test/function/samples/namespace-tostring/property-descriptor/main.js b/test/function/samples/namespace-tostring/property-descriptor/main.js new file mode 100644 index 00000000000..2743d20a176 --- /dev/null +++ b/test/function/samples/namespace-tostring/property-descriptor/main.js @@ -0,0 +1,22 @@ +import * as ns from './foo.js'; + +const { assign, getOwnPropertyDescriptor } = Object; + +const { configurable, enumerable, value, writable } = getOwnPropertyDescriptor( + ns, + Symbol.toStringTag +); + +assert.strictEqual(value, 'Module', 'value'); +assert.strictEqual(configurable, false, 'configurable'); +assert.strictEqual(enumerable, false, 'enumerable'); +assert.strictEqual(writable, false, 'writable'); + +const a = assign({}, ns); +const b = { ...ns }; + +assert.deepStrictEqual(a, { foo: 'bar' }); +assert.strictEqual(a[Symbol.toStringTag], undefined); + +assert.deepStrictEqual(b, { foo: 'bar' }); +assert.strictEqual(b[Symbol.toStringTag], undefined); diff --git a/test/function/samples/output-options-hook/_config.js b/test/function/samples/output-options-hook/_config.js index 4505a8295e3..bdb7cc2cec3 100644 --- a/test/function/samples/output-options-hook/_config.js +++ b/test/function/samples/output-options-hook/_config.js @@ -34,7 +34,8 @@ module.exports = { arrowFunctions: false, constBindings: false, objectShorthand: false, - reservedNamesAsProps: false + reservedNamesAsProps: false, + symbols: false }, globals: {}, hoistTransitiveImports: true, diff --git a/test/function/samples/reexport-ns/_config.js b/test/function/samples/reexport-ns/_config.js index e7c00efb391..650d1dfde52 100644 --- a/test/function/samples/reexport-ns/_config.js +++ b/test/function/samples/reexport-ns/_config.js @@ -5,7 +5,7 @@ module.exports = { options: { external: ['external'], output: { - namespaceToStringTag: true + generatedCode: { symbols: true } } }, exports(exports) { diff --git a/test/function/samples/synthetic-named-exports-fallback-es2015/main.js b/test/function/samples/synthetic-named-exports-fallback-es2015/main.js index 60dc807dbcf..b451a9c7411 100644 --- a/test/function/samples/synthetic-named-exports-fallback-es2015/main.js +++ b/test/function/samples/synthetic-named-exports-fallback-es2015/main.js @@ -3,7 +3,10 @@ import * as fromString from './string'; import * as fromArray from './array'; import * as fromInherited from './inherited'; -assert.deepStrictEqual(fromNull, { __proto__: null, foo: 'bar' }); -assert.deepStrictEqual(fromString, { __proto__: null, foo: 'bar' }); -assert.deepStrictEqual(fromArray, { __proto__: null, foo: 'bar' }); -assert.deepStrictEqual(fromInherited, { __proto__: null, foo: 'bar' }); +const expectedNs = { __proto__: null, foo: 'bar' }; +Object.defineProperty(expectedNs, Symbol.toStringTag, { value: 'Module' }); + +assert.deepStrictEqual(fromNull, expectedNs); +assert.deepStrictEqual(fromString, expectedNs); +assert.deepStrictEqual(fromArray, expectedNs); +assert.deepStrictEqual(fromInherited, expectedNs);