code: function addSuper(target, super_)
  {
    // add reference to the super class
    Object.defineProperty(target, 'super_', {
      value       : super_,
      writable    : true,
      enumerable  : false,
      configurable: true
    });
    // add instance reference to the superclass
    Object.defineProperty(target.prototype, 'super_', {
      value       : super_,
      writable    : true,
      enumerable  : false,
      configurable: true
    });
  
    // add super_ function as `__proto__`
    // of the target function
    // and chain their prototypes as well
    chain(target, super_);
    chain(target.prototype, super_.prototype);
  
    return target;
  }
docs: Adds reference to the superclass
  and it's prototype as a `__proto__`.
  
  @private
  @param   {function} target - Function (class) to update
  @param   {function} super_ - Superclass to be a donor
  @returns {function} – augmented target function