Skip to content

Commit 0dc4b00

Browse files
committed
optimize __createBinding
When the binding is itself one that was created by `__createBinding`, re-use its descriptor, which avoids piling multiple levels of getters in the case of multiple levels of exports. Also related to microsoft#46744 and to microsoft/tslib#165.
1 parent c792a66 commit 0dc4b00

File tree

155 files changed

+705
-235
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

155 files changed

+705
-235
lines changed

src/compiler/factory/emitHelpers.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -783,7 +783,9 @@ namespace ts {
783783
text: `
784784
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
785785
if (k2 === undefined) k2 = k;
786-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
786+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
787+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
788+
Object.defineProperty(o, k2, desc);
787789
}) : (function(o, m, k, k2) {
788790
if (k2 === undefined) k2 = k;
789791
o[k2] = m[k];

tests/baselines/reference/ambientShorthand_reExport.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ x($);
2020
"use strict";
2121
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2222
if (k2 === undefined) k2 = k;
23-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
23+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
24+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
25+
Object.defineProperty(o, k2, desc);
2426
}) : (function(o, m, k, k2) {
2527
if (k2 === undefined) k2 = k;
2628
o[k2] = m[k];
@@ -33,7 +35,9 @@ __createBinding(exports, jquery_1, "x");
3335
"use strict";
3436
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3537
if (k2 === undefined) k2 = k;
36-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
38+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
39+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
40+
Object.defineProperty(o, k2, desc);
3741
}) : (function(o, m, k, k2) {
3842
if (k2 === undefined) k2 = k;
3943
o[k2] = m[k];

tests/baselines/reference/constEnumPreserveEmitReexport.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ exports["default"] = ConstEnum_1.MyConstEnum;
3030
"use strict";
3131
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3232
if (k2 === undefined) k2 = k;
33-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
33+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
34+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
35+
Object.defineProperty(o, k2, desc);
3436
}) : (function(o, m, k, k2) {
3537
if (k2 === undefined) k2 = k;
3638
o[k2] = m[k];

tests/baselines/reference/declarationEmitAliasExportStar.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ exports.__esModule = true;
1616
"use strict";
1717
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
1818
if (k2 === undefined) k2 = k;
19-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
19+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
20+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
21+
Object.defineProperty(o, k2, desc);
2022
}) : (function(o, m, k, k2) {
2123
if (k2 === undefined) k2 = k;
2224
o[k2] = m[k];

tests/baselines/reference/declarationEmitExportAssignedNamespaceNoTripleSlashTypesReference.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@ exports.obj = {
5959
"use strict";
6060
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6161
if (k2 === undefined) k2 = k;
62-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
62+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
63+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
64+
Object.defineProperty(o, k2, desc);
6365
}) : (function(o, m, k, k2) {
6466
if (k2 === undefined) k2 = k;
6567
o[k2] = m[k];

tests/baselines/reference/declarationEmitReexportedSymlinkReference.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ exports.ADMIN = pkg2_1.MetadataAccessor.create('1');
5353
"use strict";
5454
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5555
if (k2 === undefined) k2 = k;
56-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
56+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
57+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
58+
Object.defineProperty(o, k2, desc);
5759
}) : (function(o, m, k, k2) {
5860
if (k2 === undefined) k2 = k;
5961
o[k2] = m[k];

tests/baselines/reference/declarationEmitReexportedSymlinkReference2.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ exports.ADMIN = pkg2_1.MetadataAccessor.create('1');
5656
"use strict";
5757
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5858
if (k2 === undefined) k2 = k;
59-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
59+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
60+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
61+
Object.defineProperty(o, k2, desc);
6062
}) : (function(o, m, k, k2) {
6163
if (k2 === undefined) k2 = k;
6264
o[k2] = m[k];

tests/baselines/reference/declarationEmitReexportedSymlinkReference3.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ exports.ADMIN = pkg2_1.MetadataAccessor.create('1');
5353
"use strict";
5454
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5555
if (k2 === undefined) k2 = k;
56-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
56+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
57+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
58+
Object.defineProperty(o, k2, desc);
5759
}) : (function(o, m, k, k2) {
5860
if (k2 === undefined) k2 = k;
5961
o[k2] = m[k];

tests/baselines/reference/doubleUnderscoreExportStarConflict.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ exports.__foo = __foo;
2727
"use strict";
2828
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2929
if (k2 === undefined) k2 = k;
30-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
30+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
31+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
32+
Object.defineProperty(o, k2, desc);
3133
}) : (function(o, m, k, k2) {
3234
if (k2 === undefined) k2 = k;
3335
o[k2] = m[k];

tests/baselines/reference/es6ExportAllInEs5.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ exports.x = 10;
3434
"use strict";
3535
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3636
if (k2 === undefined) k2 = k;
37-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
37+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
38+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
39+
Object.defineProperty(o, k2, desc);
3840
}) : (function(o, m, k, k2) {
3941
if (k2 === undefined) k2 = k;
4042
o[k2] = m[k];

tests/baselines/reference/es6ExportEqualsInterop.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,9 @@ export * from "class-module";
211211
/// <reference path="modules.d.ts"/>
212212
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
213213
if (k2 === undefined) k2 = k;
214-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
214+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
215+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
216+
Object.defineProperty(o, k2, desc);
215217
}) : (function(o, m, k, k2) {
216218
if (k2 === undefined) k2 = k;
217219
o[k2] = m[k];

tests/baselines/reference/esModuleInterop.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ fs;
2222
"use strict";
2323
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2424
if (k2 === undefined) k2 = k;
25-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
25+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
26+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
27+
Object.defineProperty(o, k2, desc);
2628
}) : (function(o, m, k, k2) {
2729
if (k2 === undefined) k2 = k;
2830
o[k2] = m[k];

tests/baselines/reference/esModuleInteropImportCall.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ import("./foo").then(f => {
1313
//// [index.js]
1414
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
1515
if (k2 === undefined) k2 = k;
16-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
17+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
18+
Object.defineProperty(o, k2, desc);
1719
}) : (function(o, m, k, k2) {
1820
if (k2 === undefined) k2 = k;
1921
o[k2] = m[k];

tests/baselines/reference/esModuleInteropImportNamespace.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ foo.default;
1414
"use strict";
1515
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
1616
if (k2 === undefined) k2 = k;
17-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
17+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
18+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
19+
Object.defineProperty(o, k2, desc);
1820
}) : (function(o, m, k, k2) {
1921
if (k2 === undefined) k2 = k;
2022
o[k2] = m[k];

tests/baselines/reference/esModuleInteropNamedDefaultImports.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ exports.Bar = Bar;
3232
"use strict";
3333
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3434
if (k2 === undefined) k2 = k;
35-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
35+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
36+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
37+
Object.defineProperty(o, k2, desc);
3638
}) : (function(o, m, k, k2) {
3739
if (k2 === undefined) k2 = k;
3840
o[k2] = m[k];

tests/baselines/reference/esModuleInteropPrettyErrorRelatedInformation.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ invoke(foo);
1414
"use strict";
1515
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
1616
if (k2 === undefined) k2 = k;
17-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
17+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
18+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
19+
Object.defineProperty(o, k2, desc);
1820
}) : (function(o, m, k, k2) {
1921
if (k2 === undefined) k2 = k;
2022
o[k2] = m[k];

tests/baselines/reference/esModuleInteropUsesExportStarWhenDefaultPlusNames.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ void var2;
77
"use strict";
88
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
99
if (k2 === undefined) k2 = k;
10-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
10+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
11+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
12+
Object.defineProperty(o, k2, desc);
1113
}) : (function(o, m, k, k2) {
1214
if (k2 === undefined) k2 = k;
1315
o[k2] = m[k];

tests/baselines/reference/esModuleInteropWithExportStar(target=es3).js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ export {x as y} from "./fs";
1616
"use strict";
1717
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
1818
if (k2 === undefined) k2 = k;
19-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
19+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
20+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
21+
Object.defineProperty(o, k2, desc);
2022
}) : (function(o, m, k, k2) {
2123
if (k2 === undefined) k2 = k;
2224
o[k2] = m[k];

tests/baselines/reference/esModuleInteropWithExportStar(target=es5).js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ export {x as y} from "./fs";
1616
"use strict";
1717
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
1818
if (k2 === undefined) k2 = k;
19-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
19+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
20+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
21+
Object.defineProperty(o, k2, desc);
2022
}) : (function(o, m, k, k2) {
2123
if (k2 === undefined) k2 = k;
2224
o[k2] = m[k];

tests/baselines/reference/esModuleIntersectionCrash.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ mod.b;
1616
"use strict";
1717
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
1818
if (k2 === undefined) k2 = k;
19-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
19+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
20+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
21+
Object.defineProperty(o, k2, desc);
2022
}) : (function(o, m, k, k2) {
2123
if (k2 === undefined) k2 = k;
2224
o[k2] = m[k];

tests/baselines/reference/exportAsNamespace2(module=amd).js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ define(["require", "exports"], function (require, exports) {
2626
//// [1.js]
2727
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2828
if (k2 === undefined) k2 = k;
29-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
29+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
30+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
31+
Object.defineProperty(o, k2, desc);
3032
}) : (function(o, m, k, k2) {
3133
if (k2 === undefined) k2 = k;
3234
o[k2] = m[k];
@@ -54,7 +56,9 @@ define(["require", "exports", "./0"], function (require, exports, ns) {
5456
//// [2.js]
5557
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5658
if (k2 === undefined) k2 = k;
57-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
59+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
60+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
61+
Object.defineProperty(o, k2, desc);
5862
}) : (function(o, m, k, k2) {
5963
if (k2 === undefined) k2 = k;
6064
o[k2] = m[k];

tests/baselines/reference/exportAsNamespace2(module=commonjs).js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ exports.b = 2;
2525
"use strict";
2626
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2727
if (k2 === undefined) k2 = k;
28-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
28+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
29+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
30+
Object.defineProperty(o, k2, desc);
2931
}) : (function(o, m, k, k2) {
3032
if (k2 === undefined) k2 = k;
3133
o[k2] = m[k];
@@ -51,7 +53,9 @@ ns.b;
5153
"use strict";
5254
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5355
if (k2 === undefined) k2 = k;
54-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
56+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
57+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
58+
Object.defineProperty(o, k2, desc);
5559
}) : (function(o, m, k, k2) {
5660
if (k2 === undefined) k2 = k;
5761
o[k2] = m[k];

tests/baselines/reference/exportAsNamespace2(module=umd).js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ foo.ns.b;
3434
//// [1.js]
3535
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3636
if (k2 === undefined) k2 = k;
37-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
37+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
38+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
39+
Object.defineProperty(o, k2, desc);
3840
}) : (function(o, m, k, k2) {
3941
if (k2 === undefined) k2 = k;
4042
o[k2] = m[k];
@@ -70,7 +72,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
7072
//// [2.js]
7173
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7274
if (k2 === undefined) k2 = k;
73-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
75+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
76+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
77+
Object.defineProperty(o, k2, desc);
7478
}) : (function(o, m, k, k2) {
7579
if (k2 === undefined) k2 = k;
7680
o[k2] = m[k];

tests/baselines/reference/exportAsNamespace3(module=amd).js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ define(["require", "exports"], function (require, exports) {
2929
//// [1.js]
3030
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3131
if (k2 === undefined) k2 = k;
32-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
32+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
33+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
34+
Object.defineProperty(o, k2, desc);
3335
}) : (function(o, m, k, k2) {
3436
if (k2 === undefined) k2 = k;
3537
o[k2] = m[k];
@@ -60,7 +62,9 @@ define(["require", "exports", "./0"], function (require, exports, ns) {
6062
//// [2.js]
6163
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6264
if (k2 === undefined) k2 = k;
63-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
65+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
66+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
67+
Object.defineProperty(o, k2, desc);
6468
}) : (function(o, m, k, k2) {
6569
if (k2 === undefined) k2 = k;
6670
o[k2] = m[k];

tests/baselines/reference/exportAsNamespace3(module=commonjs).js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ exports.b = 2;
2828
"use strict";
2929
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3030
if (k2 === undefined) k2 = k;
31-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
31+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
32+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
33+
Object.defineProperty(o, k2, desc);
3234
}) : (function(o, m, k, k2) {
3335
if (k2 === undefined) k2 = k;
3436
o[k2] = m[k];
@@ -57,7 +59,9 @@ ns.b;
5759
"use strict";
5860
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5961
if (k2 === undefined) k2 = k;
60-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
62+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
63+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
64+
Object.defineProperty(o, k2, desc);
6165
}) : (function(o, m, k, k2) {
6266
if (k2 === undefined) k2 = k;
6367
o[k2] = m[k];

tests/baselines/reference/exportAsNamespace3(module=umd).js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ foo.ns.b;
3737
//// [1.js]
3838
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3939
if (k2 === undefined) k2 = k;
40-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
40+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
41+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
42+
Object.defineProperty(o, k2, desc);
4143
}) : (function(o, m, k, k2) {
4244
if (k2 === undefined) k2 = k;
4345
o[k2] = m[k];
@@ -76,7 +78,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
7678
//// [2.js]
7779
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7880
if (k2 === undefined) k2 = k;
79-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
81+
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
82+
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
83+
Object.defineProperty(o, k2, desc);
8084
}) : (function(o, m, k, k2) {
8185
if (k2 === undefined) k2 = k;
8286
o[k2] = m[k];

0 commit comments

Comments
 (0)