if (pn->pn_type == TOK_DOT && pn2->pn_type == TOK_NAME) { if (!LookupArgOrVar(cx, &cg->treeContext, pn2)) return JS_FALSE; if (pn2->pn_op == JSOP_ARGUMENTS && pn->pn_atom == cx->runtime->atomState.lengthAtom) { return js_Emit1(cx, cg, JSOP_ARGCNT) >= 0; } }
EmitPropOp(JSContext *cx, JSParseNode *pn, JSOp op, JSCodeGenerator *cg){    JSParseNode *pn2;    JSAtomListElement *ale;    pn2 = pn->pn_expr;    if (pn->pn_type == TOK_DOT && pn2->pn_type == TOK_NAME) {        if (!LookupArgOrVar(cx, &cg->treeContext, pn2))            return JS_FALSE;        if (pn2->pn_op == JSOP_ARGUMENTS &&            pn->pn_atom == cx->runtime->atomState.lengthAtom) {            return js_Emit1(cx, cg, JSOP_ARGCNT) >= 0;        }    }    if (!js_EmitTree(cx, cg, pn2))        return JS_FALSE;    if (js_NewSrcNote2(cx, cg, SRC_PCBASE,                       (ptrdiff_t)(CG_OFFSET(cg) - pn2->pn_offset)) < 0) {        return JS_FALSE;    }    if (!pn->pn_atom) {        JS_ASSERT(op == JSOP_IMPORTALL);        if (js_Emit1(cx, cg, op) < 0)            return JS_FALSE;    } else {        ale = js_IndexAtom(cx, pn->pn_atom, &cg->atomList);        if (!ale)            return JS_FALSE;        EMIT_ATOM_INDEX_OP(op, ALE_INDEX(ale));    }