Skip to content

Commit

Permalink
Copy getters and setters correctly in interopWildcard (#6850)
Browse files Browse the repository at this point in the history
  • Loading branch information
danez authored and existentialism committed Nov 30, 2017
1 parent 18b91a8 commit 9d9710c
Show file tree
Hide file tree
Showing 10 changed files with 70 additions and 2 deletions.
11 changes: 10 additions & 1 deletion packages/babel-helpers/src/helpers.js
Expand Up @@ -449,7 +449,16 @@ helpers.interopRequireWildcard = defineHelper(`
var newObj = {};
if (obj != null) {
for (var key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
if (Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = Object.defineProperty && Object.getOwnPropertyDescriptor
? Object.getOwnPropertyDescriptor(obj, key)
: {};
if (desc.get || desc.set) {
Object.defineProperty(newObj, key, desc);
} else {
newObj[key] = obj[key];
}
}
}
}
newObj.default = obj;
Expand Down
@@ -0,0 +1,3 @@
import * as foo from "./moduleWithGetter";

export { foo };
@@ -0,0 +1,5 @@
import * as foo from "./moduleWithGetter";

assert.throws(() => foo.boo);

// No exception should be thrown
@@ -0,0 +1,12 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.foo = void 0;

var foo = _interopRequireWildcard(require("./moduleWithGetter"));

exports.foo = foo;

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
@@ -0,0 +1,6 @@
var Obj = {
baz: 123,
get boo() { throw new Error('Should never be triggered'); }
}

module.exports = Obj;
@@ -0,0 +1,3 @@
import Foo, { baz } from "./moduleWithGetter";

export { Foo, baz };
@@ -0,0 +1,3 @@
import Foo, { baz } from "./moduleWithGetter";

// No exception should be thrown
@@ -0,0 +1,21 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "Foo", {
enumerable: true,
get: function () {
return _moduleWithGetter.default;
}
});
Object.defineProperty(exports, "baz", {
enumerable: true,
get: function () {
return _moduleWithGetter.baz;
}
});

var _moduleWithGetter = _interopRequireWildcard(require("./moduleWithGetter"));

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
@@ -0,0 +1,6 @@
var Obj = {
baz: 123,
get boo() { throw new Error('Should never be triggered'); }
}

module.exports = Obj;
Expand Up @@ -6,7 +6,7 @@ var Bar = _interopRequireWildcard(require("bar"));

var _baz = require("baz");

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

Expand Down

0 comments on commit 9d9710c

Please sign in to comment.