createSuper.js 682 B

12345678910111213141516171819
  1. import getPrototypeOf from "./getPrototypeOf.js";
  2. import isNativeReflectConstruct from "./isNativeReflectConstruct.js";
  3. import possibleConstructorReturn from "./possibleConstructorReturn.js";
  4. export default function _createSuper(Derived) {
  5. var hasNativeReflectConstruct = isNativeReflectConstruct();
  6. return function _createSuperInternal() {
  7. var Super = getPrototypeOf(Derived),
  8. result;
  9. if (hasNativeReflectConstruct) {
  10. var NewTarget = getPrototypeOf(this).constructor;
  11. result = Reflect.construct(Super, arguments, NewTarget);
  12. } else {
  13. result = Super.apply(this, arguments);
  14. }
  15. return possibleConstructorReturn(this, result);
  16. };
  17. }