| var _bindInstanceProperty = require("../core-js/instance/bind"); |
| |
| var _Reflect$construct = require("../core-js/reflect/construct"); |
| |
| var setPrototypeOf = require("./setPrototypeOf"); |
| |
| function isNativeReflectConstruct() { |
| if (typeof Reflect === "undefined" || !_Reflect$construct) return false; |
| if (_Reflect$construct.sham) return false; |
| if (typeof Proxy === "function") return true; |
| |
| try { |
| Date.prototype.toString.call(_Reflect$construct(Date, [], function () {})); |
| return true; |
| } catch (e) { |
| return false; |
| } |
| } |
| |
| 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 = _bindInstanceProperty(Function).apply(Parent, a); |
| |
| var instance = new Constructor(); |
| if (Class) setPrototypeOf(instance, Class.prototype); |
| return instance; |
| }; |
| } |
| |
| return _construct.apply(null, arguments); |
| } |
| |
| module.exports = _construct; |