Skip to content

Commit

Permalink
optimize __createBinding
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
elibarzilay committed Dec 2, 2021
1 parent c792a66 commit 0dc4b00
Show file tree
Hide file tree
Showing 155 changed files with 705 additions and 235 deletions.
4 changes: 3 additions & 1 deletion src/compiler/factory/emitHelpers.ts
Expand Up @@ -783,7 +783,9 @@ namespace ts {
text: `
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
8 changes: 6 additions & 2 deletions tests/baselines/reference/ambientShorthand_reExport.js
Expand Up @@ -20,7 +20,9 @@ x($);
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand All @@ -33,7 +35,9 @@ __createBinding(exports, jquery_1, "x");
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
4 changes: 3 additions & 1 deletion tests/baselines/reference/constEnumPreserveEmitReexport.js
Expand Up @@ -30,7 +30,9 @@ exports["default"] = ConstEnum_1.MyConstEnum;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
4 changes: 3 additions & 1 deletion tests/baselines/reference/declarationEmitAliasExportStar.js
Expand Up @@ -16,7 +16,9 @@ exports.__esModule = true;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
Expand Up @@ -59,7 +59,9 @@ exports.obj = {
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
Expand Up @@ -53,7 +53,9 @@ exports.ADMIN = pkg2_1.MetadataAccessor.create('1');
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
Expand Up @@ -56,7 +56,9 @@ exports.ADMIN = pkg2_1.MetadataAccessor.create('1');
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
Expand Up @@ -53,7 +53,9 @@ exports.ADMIN = pkg2_1.MetadataAccessor.create('1');
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
Expand Up @@ -27,7 +27,9 @@ exports.__foo = __foo;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
4 changes: 3 additions & 1 deletion tests/baselines/reference/es6ExportAllInEs5.js
Expand Up @@ -34,7 +34,9 @@ exports.x = 10;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
4 changes: 3 additions & 1 deletion tests/baselines/reference/es6ExportEqualsInterop.js
Expand Up @@ -211,7 +211,9 @@ export * from "class-module";
/// <reference path="modules.d.ts"/>
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
4 changes: 3 additions & 1 deletion tests/baselines/reference/esModuleInterop.js
Expand Up @@ -22,7 +22,9 @@ fs;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
4 changes: 3 additions & 1 deletion tests/baselines/reference/esModuleInteropImportCall.js
Expand Up @@ -13,7 +13,9 @@ import("./foo").then(f => {
//// [index.js]
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
4 changes: 3 additions & 1 deletion tests/baselines/reference/esModuleInteropImportNamespace.js
Expand Up @@ -14,7 +14,9 @@ foo.default;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
Expand Up @@ -32,7 +32,9 @@ exports.Bar = Bar;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
Expand Up @@ -14,7 +14,9 @@ invoke(foo);
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
Expand Up @@ -7,7 +7,9 @@ void var2;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
Expand Up @@ -16,7 +16,9 @@ export {x as y} from "./fs";
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
Expand Up @@ -16,7 +16,9 @@ export {x as y} from "./fs";
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
4 changes: 3 additions & 1 deletion tests/baselines/reference/esModuleIntersectionCrash.js
Expand Up @@ -16,7 +16,9 @@ mod.b;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
8 changes: 6 additions & 2 deletions tests/baselines/reference/exportAsNamespace2(module=amd).js
Expand Up @@ -26,7 +26,9 @@ define(["require", "exports"], function (require, exports) {
//// [1.js]
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down Expand Up @@ -54,7 +56,9 @@ define(["require", "exports", "./0"], function (require, exports, ns) {
//// [2.js]
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
Expand Up @@ -25,7 +25,9 @@ exports.b = 2;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand All @@ -51,7 +53,9 @@ ns.b;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
8 changes: 6 additions & 2 deletions tests/baselines/reference/exportAsNamespace2(module=umd).js
Expand Up @@ -34,7 +34,9 @@ foo.ns.b;
//// [1.js]
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down Expand Up @@ -70,7 +72,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
//// [2.js]
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
8 changes: 6 additions & 2 deletions tests/baselines/reference/exportAsNamespace3(module=amd).js
Expand Up @@ -29,7 +29,9 @@ define(["require", "exports"], function (require, exports) {
//// [1.js]
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down Expand Up @@ -60,7 +62,9 @@ define(["require", "exports", "./0"], function (require, exports, ns) {
//// [2.js]
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
Expand Up @@ -28,7 +28,9 @@ exports.b = 2;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down Expand Up @@ -57,7 +59,9 @@ ns.b;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down
8 changes: 6 additions & 2 deletions tests/baselines/reference/exportAsNamespace3(module=umd).js
Expand Up @@ -37,7 +37,9 @@ foo.ns.b;
//// [1.js]
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down Expand Up @@ -76,7 +78,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
//// [2.js]
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var oldDesc = Object.getOwnPropertyDescriptor(m, k);
var desc = ("get" in oldDesc) && !("value" in oldDesc) ? oldDesc : { enumerable: true, get: function() { return m[k]; } };
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
Expand Down

0 comments on commit 0dc4b00

Please sign in to comment.