docs: function extendFn(superClass) {
    var subClassMethods = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  
    var subClass = function subClass() {
      superClass.apply(this, arguments);
    };
  
    var methods = {};
  
    if ((typeof subClassMethods === 'undefined' ? 'undefined' : _typeof(subClassMethods)) === 'object') {
      if (typeof subClassMethods.init === 'function') {
        _log2['default'].warn('Constructor logic via init() is deprecated; please use constructor() instead.');
        subClassMethods.constructor = subClassMethods.init;
      }
      if (subClassMethods.constructor !== Object.prototype.constructor) {
        subClass = subClassMethods.constructor;
      }
      methods = subClassMethods;
    } else if (typeof subClassMethods === 'function') {
      subClass = subClassMethods;
    }
  
    _inherits(subClass, superClass);
  
    // Extend subObj's prototype with functions and other properties from props
    for (var name in methods) {
      if (methods.hasOwnProperty(name)) {
        subClass.prototype[name] = methods[name];
      }
    }
  
    return subClass;
  }