chache/@babel/runtime/helpers/wrapNativeSuper.js
2024-01-16 22:53:42 +08:00

38 lines
1.1 KiB
JavaScript

var getPrototypeOf = require("./getPrototypeOf"),
setPrototypeOf = require("./setPrototypeOf"),
isNativeFunction = require("./isNativeFunction"),
construct = require("./construct");
function _wrapNativeSuper(t) {
var e = "function" == typeof Map ? new Map() : void 0;
return (
(module.exports = _wrapNativeSuper =
function (t) {
if (null === t || !isNativeFunction(t)) return t;
if ("function" != typeof t)
throw new TypeError(
"Super expression must either be null or a function"
);
if (void 0 !== e) {
if (e.has(t)) return e.get(t);
e.set(t, r);
}
function r() {
return construct(t, arguments, getPrototypeOf(this).constructor);
}
return (
(r.prototype = Object.create(t.prototype, {
constructor: {
value: r,
enumerable: !1,
writable: !0,
configurable: !0,
},
})),
setPrototypeOf(r, t)
);
}),
_wrapNativeSuper(t)
);
}
module.exports = _wrapNativeSuper;