* Called only from OptimizeSpanDeps and js_FinishTakingSrcNotes to add to * main script note deltas, and only by a small positive amount.
* Called only from OptimizeSpanDeps to add to main script note deltas, * and only by a small positive amount.
js_AddToSrcNoteDelta(JSContext *cx, JSCodeGenerator *cg, jssrcnote *sn,                     ptrdiff_t delta){    ptrdiff_t base, limit, newdelta, diff;    intN index;    /*     * Called only from OptimizeSpanDeps and js_FinishTakingSrcNotes to add to     * main script note deltas, and only by a small positive amount.     */    JS_ASSERT(cg->current == &cg->main);    JS_ASSERT((unsigned) delta < (unsigned) SN_XDELTA_LIMIT);    base = SN_DELTA(sn);    limit = SN_IS_XDELTA(sn) ? SN_XDELTA_LIMIT : SN_DELTA_LIMIT;    newdelta = base + delta;    if (newdelta < limit) {        SN_SET_DELTA(sn, newdelta);    } else {        index = sn - cg->main.notes;        if ((cg->main.noteCount & cg->main.noteMask) == 0) {            if (!GrowSrcNotes(cx, cg))                return NULL;            sn = cg->main.notes + index;        }        diff = cg->main.noteCount - index;        cg->main.noteCount++;        memmove(sn + 1, sn, SRCNOTE_SIZE(diff));        SN_MAKE_XDELTA(sn, delta);        sn++;    }    return sn;}