rem: if ((!this.parentRecord) || (this.isHidden) || 
add: if (!("parentRecord" in this) || (this.isHidden) || 
context: function tovr_calcrow (){    /* if this is the second time in a row that someone asked us, fetch the last     * result from the cache. */    if (this._share.lastIndexOwner == this)        return this._share.lastComputedIndex;    var vrow;        /* if this is an uninserted or hidden node, or... */    if ((!this.parentRecord) || (this.isHidden) ||        /* if parent isn't open, or... */        (!this.parentRecord.isContainerOpen) ||        /* parent isn't visible */        ((vrow = this.parentRecord.calculateVisualRow()) == -1))    {        /* then we're not visible, return -1 */        //dd ("cvr: returning -1");        return -1;    }    /* parent is the root node XXX parent is not visible */    if (vrow == null)        vrow = 0;    else    /* parent is not the root node, add one for the space they take up. */        ++vrow;    /* add in the footprint for all of the earlier siblings */    for (var i = 0; i < this.childIndex; ++i)    {        if (!this.parentRecord.childData[i].isHidden)            vrow += this.parentRecord.childData[i].visualFootprint;    }    /* save this calculation to the cache. */    this._share.lastIndexOwner = this;    this._share.lastComputedIndex = vrow;    //@DEBUG-cvr dd ("cvr: returning " + vrow);    return vrow;}
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/e711edc14f9f9f43c8fc7d007226dcc5ca78ab65/tree-utils.js/clean/extensions/venkman/resources/content/tree-utils.js