code: function (iterator, context) {
          // validate parameters
          if (!_.isFunction(iterator)) { return; }
          !context && (context = this);
  
          var parent = this.__parent,
              prev;
  
          // iterate till there is no parent
          while (parent) {
              // call iterator with the parent and previous parent
              iterator.call(context, parent, prev);
  
              // update references
              prev = parent;
              parent = parent.__parent;
          }
      }
docs: Iterates over all parents of the property list
  
  @param {Function} iterator
  @param {Object=} [context]