simple-squiggle

A restricted subset of Squiggle
Log | Files | Refs | README

createSuper.js (682B)


      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 
     10     if (hasNativeReflectConstruct) {
     11       var NewTarget = getPrototypeOf(this).constructor;
     12       result = Reflect.construct(Super, arguments, NewTarget);
     13     } else {
     14       result = Super.apply(this, arguments);
     15     }
     16 
     17     return possibleConstructorReturn(this, result);
     18   };
     19 }