Closed
Description
__createBinding
, which is used in __exportStar
, uses accessor descriptors to get exported modules. In our product, we see a 10x performance degradation referencing exported enums this way compared to using a direct access object. We've verified that by refactoring our enum exports to be explicitly defined and not *
, this issue is not seen.
Likewise, this issue is not seen in v1.14.0 when __createBinding
looks like
__createBinding = function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
};
current implementation:
__createBinding = Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
});
JSBench:
https://jsbench.me/yokwmk1mau/1
Metadata
Metadata
Assignees
Labels
No labels