code: function wrap(func, superFunc) {
      if (!hasSuper(func)) {
        return func;
      }
      // ensure an unwrapped super that calls _super is wrapped with a terminal _super
      if (!superFunc.wrappedFunction && hasSuper(superFunc)) {
        return _wrap(func, _wrap(superFunc, ROOT));
      }
      return _wrap(func, superFunc);
    }
docs: Wraps the passed function so that `this._super` will point to the superFunc
  when the function is invoked. This is the primitive we use to implement
  calls to super.
  
  @private
  @method wrap
  @for Ember
  @param {Function} func The function to call
  @param {Function} superFunc The super function.
  @return {Function} wrapped function.