createSuper.js 702 B

123456789101112131415161718192021222324
  1. var getPrototypeOf = require("./getPrototypeOf");
  2. var isNativeReflectConstruct = require("./isNativeReflectConstruct");
  3. var possibleConstructorReturn = require("./possibleConstructorReturn");
  4. 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. }
  18. module.exports = _createSuper;