Browse Source

Made __esModule a non-enumerable property of exports.

This is the same as how babel does it. See https://goo.gl/KTGKyH.
ghi-672
Cameron Martin 9 years ago
parent
commit
a660b896dc
  1. 3
      src/finalisers/cjs.js
  2. 4
      src/finalisers/shared/esModuleExport.js
  3. 3
      src/finalisers/umd.js
  4. 4
      test/form/assignment-to-exports-class-declaration/_expected/cjs.js
  5. 4
      test/form/assignment-to-exports-class-declaration/_expected/umd.js
  6. 4
      test/form/computed-properties/_expected/cjs.js
  7. 4
      test/form/computed-properties/_expected/umd.js
  8. 4
      test/form/dedupes-external-imports/_expected/cjs.js
  9. 4
      test/form/dedupes-external-imports/_expected/umd.js
  10. 4
      test/form/export-all-from-internal/_expected/cjs.js
  11. 4
      test/form/export-all-from-internal/_expected/umd.js
  12. 4
      test/form/export-default-import/_expected/cjs.js
  13. 4
      test/form/export-default-import/_expected/umd.js
  14. 4
      test/form/exports-at-end-if-possible/_expected/cjs.js
  15. 4
      test/form/exports-at-end-if-possible/_expected/umd.js
  16. 4
      test/form/multiple-exports/_expected/cjs.js
  17. 4
      test/form/multiple-exports/_expected/umd.js
  18. 4
      test/form/namespaced-named-exports/_expected/cjs.js
  19. 4
      test/form/namespaced-named-exports/_expected/umd.js
  20. 4
      test/form/no-treeshake/_expected/cjs.js
  21. 4
      test/form/no-treeshake/_expected/umd.js
  22. 4
      test/form/preserves-comments-after-imports/_expected/cjs.js
  23. 4
      test/form/preserves-comments-after-imports/_expected/umd.js
  24. 4
      test/form/umd-noconflict/_expected/cjs.js
  25. 4
      test/form/umd-noconflict/_expected/umd.js
  26. 2
      test/function/deconflicts-exports/_config.js
  27. 2
      test/function/export-destruction/_config.js

3
src/finalisers/cjs.js

@ -1,4 +1,5 @@
import getExportBlock from './shared/getExportBlock.js';
import esModuleExport from './shared/esModuleExport.js';
export default function cjs ( bundle, magicString, { exportMode }, options ) {
let intro = options.useStrict === false ? `` : `'use strict';\n\n`;
@ -35,7 +36,7 @@ export default function cjs ( bundle, magicString, { exportMode }, options ) {
if ( exportBlock ) magicString.append( '\n\n' + exportBlock );
if (exportMode === 'named') {
magicString.append('\n\nexports.__esModule = true;\n\n');
magicString.append(esModuleExport);
}
return magicString;

4
src/finalisers/shared/esModuleExport.js

@ -0,0 +1,4 @@
export default '\n\n' +
'Object.defineProperty(exports, "__esModule", {\n' +
' value: true\n' +
'});\n\n';

3
src/finalisers/umd.js

@ -3,6 +3,7 @@ import { getName, quoteId, req } from '../utils/map-helpers.js';
import getInteropBlock from './shared/getInteropBlock.js';
import getExportBlock from './shared/getExportBlock.js';
import getGlobalNameMaker from './shared/getGlobalNameMaker.js';
import esModuleExport from './shared/esModuleExport.js';
function setupNamespace ( name ) {
const parts = name.split( '.' );
@ -70,7 +71,7 @@ export default function umd ( bundle, magicString, { exportMode, indentString },
if ( exportBlock ) magicString.append( '\n\n' + exportBlock );
if (exportMode === 'named') {
magicString.append('\n\nexports.__esModule = true;\n\n');
magicString.append(esModuleExport);
}
return magicString

4
test/form/assignment-to-exports-class-declaration/_expected/cjs.js

@ -3,4 +3,6 @@
exports.Foo = class Foo {}
exports.Foo = lol( exports.Foo );
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});

4
test/form/assignment-to-exports-class-declaration/_expected/umd.js

@ -7,6 +7,8 @@
exports.Foo = class Foo {}
exports.Foo = lol( exports.Foo );
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
}));

4
test/form/computed-properties/_expected/cjs.js

@ -16,4 +16,6 @@ class X {
exports.x = x;
exports.X = X;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});

4
test/form/computed-properties/_expected/umd.js

@ -20,6 +20,8 @@
exports.x = x;
exports.X = X;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
}));

4
test/form/dedupes-external-imports/_expected/cjs.js

@ -31,4 +31,6 @@ exports.foo = foo;
exports.bar = bar;
exports.baz = baz;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});

4
test/form/dedupes-external-imports/_expected/umd.js

@ -33,6 +33,8 @@
exports.bar = bar;
exports.baz = baz;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
}));

4
test/form/export-all-from-internal/_expected/cjs.js

@ -6,4 +6,6 @@ const b = 2;
exports.a = a;
exports.b = b;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});

4
test/form/export-all-from-internal/_expected/umd.js

@ -10,6 +10,8 @@
exports.a = a;
exports.b = b;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
}));

4
test/form/export-default-import/_expected/cjs.js

@ -8,4 +8,6 @@ var x = _interopDefault(require('x'));
exports.x = x;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});

4
test/form/export-default-import/_expected/umd.js

@ -10,6 +10,8 @@
exports.x = x;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
}));

4
test/form/exports-at-end-if-possible/_expected/cjs.js

@ -8,4 +8,6 @@ console.log( FOO );
exports.FOO = FOO;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});

4
test/form/exports-at-end-if-possible/_expected/umd.js

@ -12,6 +12,8 @@
exports.FOO = FOO;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
}));

4
test/form/multiple-exports/_expected/cjs.js

@ -6,4 +6,6 @@ var bar = 2;
exports.foo = foo;
exports.bar = bar;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});

4
test/form/multiple-exports/_expected/umd.js

@ -10,6 +10,8 @@
exports.foo = foo;
exports.bar = bar;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
}));

4
test/form/namespaced-named-exports/_expected/cjs.js

@ -4,4 +4,6 @@ var answer = 42;
exports.answer = answer;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});

4
test/form/namespaced-named-exports/_expected/umd.js

@ -8,6 +8,8 @@
exports.answer = answer;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
}));

4
test/form/no-treeshake/_expected/cjs.js

@ -24,4 +24,6 @@ exports.create = create;
exports.getPrototypeOf = getPrototypeOf;
exports.strange = quux;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});

4
test/form/no-treeshake/_expected/umd.js

@ -26,6 +26,8 @@
exports.getPrototypeOf = getPrototypeOf;
exports.strange = quux;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
}));

4
test/form/preserves-comments-after-imports/_expected/cjs.js

@ -8,4 +8,6 @@ var obj = { number };
exports.obj = obj;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});

4
test/form/preserves-comments-after-imports/_expected/umd.js

@ -12,6 +12,8 @@
exports.obj = obj;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
}));

4
test/form/umd-noconflict/_expected/cjs.js

@ -12,4 +12,6 @@ exports.doThings = doThings;
exports.number = number;
exports.setting = setting;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});

4
test/form/umd-noconflict/_expected/umd.js

@ -21,6 +21,8 @@
exports.number = number;
exports.setting = setting;
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
}));

2
test/function/deconflicts-exports/_config.js

@ -3,7 +3,7 @@ var assert = require( 'assert' );
module.exports = {
description: 'renames variables named `exports` if necessary',
exports: function ( exports ) {
assert.deepEqual( Object.keys( exports ), [ 'a', 'b', '__esModule' ] );
assert.deepEqual( Object.keys( exports ), [ 'a', 'b' ] );
assert.equal( exports.a, 'A' );
assert.equal( exports.b, 42 );
}

2
test/function/export-destruction/_config.js

@ -5,7 +5,7 @@ module.exports = {
babel: true,
exports: function ( exports ) {
assert.deepEqual( Object.keys( exports ), [ 'baz', 'quux', '__esModule' ] );
assert.deepEqual( Object.keys( exports ), [ 'baz', 'quux' ] );
assert.equal( exports.baz, 5 );
assert.equal( exports.quux, 17 );
}

Loading…
Cancel
Save