construct.js 813 B

12345678910111213141516171819202122232425262728
  1. var _bindInstanceProperty = require("../core-js/instance/bind");
  2. var _Reflect$construct = require("../core-js/reflect/construct");
  3. var setPrototypeOf = require("./setPrototypeOf");
  4. var isNativeReflectConstruct = require("./isNativeReflectConstruct");
  5. function _construct(Parent, args, Class) {
  6. if (isNativeReflectConstruct()) {
  7. module.exports = _construct = _Reflect$construct;
  8. } else {
  9. module.exports = _construct = function _construct(Parent, args, Class) {
  10. var a = [null];
  11. a.push.apply(a, args);
  12. var Constructor = _bindInstanceProperty(Function).apply(Parent, a);
  13. var instance = new Constructor();
  14. if (Class) setPrototypeOf(instance, Class.prototype);
  15. return instance;
  16. };
  17. }
  18. return _construct.apply(null, arguments);
  19. }
  20. module.exports = _construct;