| var setPrototypeOf = require("./setPrototypeOf"); |
| |
| var isNativeReflectConstruct = require("./isNativeReflectConstruct"); |
| |
| function _construct(Parent, args, Class) { |
| if (isNativeReflectConstruct()) { |
| module.exports = _construct = Reflect.construct; |
| } else { |
| module.exports = _construct = function _construct(Parent, args, Class) { |
| var a = [null]; |
| a.push.apply(a, args); |
| var Constructor = Function.bind.apply(Parent, a); |
| var instance = new Constructor(); |
| if (Class) setPrototypeOf(instance, Class.prototype); |
| return instance; |
| }; |
| } |
| |
| return _construct.apply(null, arguments); |
| } |
| |
| module.exports = _construct; |