createSuper.js 592 B

123456789101112131415161718
  1. import getPrototypeOf from "./getPrototypeOf";
  2. import isNativeReflectConstruct from "./isNativeReflectConstruct";
  3. import possibleConstructorReturn from "./possibleConstructorReturn";
  4. export default 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. }