You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

24 lines
682 B

  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 () {
  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;