createSuper.js 621 B

1234567891011121314151617181920212223
  1. var getPrototypeOf = require("./getPrototypeOf");
  2. var isNativeReflectConstruct = require("./isNativeReflectConstruct");
  3. var possibleConstructorReturn = require("./possibleConstructorReturn");
  4. function _createSuper(Derived) {
  5. return function () {
  6. var Super = getPrototypeOf(Derived),
  7. result;
  8. if (isNativeReflectConstruct()) {
  9. var NewTarget = getPrototypeOf(this).constructor;
  10. result = Reflect.construct(Super, arguments, NewTarget);
  11. } else {
  12. result = Super.apply(this, arguments);
  13. }
  14. return possibleConstructorReturn(this, result);
  15. };
  16. }
  17. module.exports = _createSuper;