wrapNativeSuper.js 1.3 KB

1234567891011121314151617181920212223242526272829
  1. var _Map = require("core-js-pure/features/map/index.js");
  2. var _Object$create = require("core-js-pure/features/object/create.js");
  3. var getPrototypeOf = require("./getPrototypeOf.js");
  4. var setPrototypeOf = require("./setPrototypeOf.js");
  5. var isNativeFunction = require("./isNativeFunction.js");
  6. var construct = require("./construct.js");
  7. function _wrapNativeSuper(t) {
  8. var r = "function" == typeof _Map ? new _Map() : void 0;
  9. return (module.exports = _wrapNativeSuper = function _wrapNativeSuper(t) {
  10. if (null === t || !isNativeFunction(t)) return t;
  11. if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");
  12. if (void 0 !== r) {
  13. if (r.has(t)) return r.get(t);
  14. r.set(t, Wrapper);
  15. }
  16. function Wrapper() {
  17. return construct(t, arguments, getPrototypeOf(this).constructor);
  18. }
  19. return Wrapper.prototype = _Object$create(t.prototype, {
  20. constructor: {
  21. value: Wrapper,
  22. enumerable: !1,
  23. writable: !0,
  24. configurable: !0
  25. }
  26. }), setPrototypeOf(Wrapper, t);
  27. }, module.exports.__esModule = true, module.exports["default"] = module.exports), _wrapNativeSuper(t);
  28. }
  29. module.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports["default"] = module.exports;