if (AllocSrcNote(cx, cg) < 0)
if (js_NewSrcNote(cx, cg, SRC_NULL) < 0)
js_NewSrcNote(JSContext *cx, JSCodeGenerator *cg, JSSrcNoteType type){    intN index, n;    jssrcnote *sn;    ptrdiff_t offset, delta, xdelta;    /*     * Claim a note slot in cg->notes by growing it if necessary and then     * incrementing cg->noteCount.     */    index = AllocSrcNote(cx, cg);    sn = &cg->notes[index];    /*     * Compute delta from the last annotated bytecode's offset.  If it's too     * big to fit in sn, allocate one or more xdelta notes and reset sn.     */    offset = CG_OFFSET(cg);    delta = offset - cg->lastNoteOffset;    cg->lastNoteOffset = offset;    if (delta >= SN_DELTA_LIMIT) {	do {	    xdelta = JS_MIN(delta, SN_XDELTA_MASK);	    SN_MAKE_XDELTA(sn, xdelta);	    delta -= xdelta;	    index = AllocSrcNote(cx, cg);	    if (index < 0)		return -1;	    sn = &cg->notes[index];	} while (delta >= SN_DELTA_LIMIT);    }    /*     * Initialize type and delta, then allocate the minimum number of notes     * needed for type's arity.  Usually, we won't need more, but if an offset     * does take two bytes, js_SetSrcNoteOffset will grow cg->notes.     */    SN_MAKE_NOTE(sn, type, delta);    for (n = (intN)js_SrcNoteArity[type]; n > 0; n--) {	if (AllocSrcNote(cx, cg) < 0)	    return -1;    }    return index;}