Fix degenerate unsigned (enum) comparisons (357016, r=igor).

This commit is contained in:
brendan%mozilla.org 2007-07-05 23:25:27 +00:00
Родитель 3dec4fa540
Коммит 5f235ddce2
1 изменённых файлов: 4 добавлений и 4 удалений

Просмотреть файл

@ -1790,11 +1790,11 @@ EmitBigIndexPrefix(JSContext *cx, JSCodeGenerator *cg, jsatomid atomIndex)
atomIndex >>= 16;
if (atomIndex <= JSOP_ATOMBASE3 - JSOP_ATOMBASE1 + 1) {
if (js_Emit1(cx, cg, (JSOp)(JSOP_ATOMBASE1 + atomIndex - 1)) < 0)
return (JSOp)-1;
return JSOP_FALSE;
return JSOP_RESETBASE0;
}
if (js_Emit2(cx, cg, JSOP_ATOMBASE, (JSOp)atomIndex) < 0)
return (JSOp)-1;
return JSOP_FALSE;
return JSOP_RESETBASE;
}
@ -1814,7 +1814,7 @@ EmitAtomIndexOp(JSContext *cx, JSOp op, jsatomid atomIndex, JSCodeGenerator *cg)
JSOp bigSuffix;
bigSuffix = EmitBigIndexPrefix(cx, cg, atomIndex);
if (bigSuffix < 0)
if (bigSuffix == JSOP_FALSE)
return JS_FALSE;
EMIT_UINT16_IMM_OP(op, atomIndex);
return bigSuffix == JSOP_NOP || js_Emit1(cx, cg, bigSuffix) >= 0;
@ -1863,7 +1863,7 @@ EmitIndexConstOp(JSContext *cx, JSOp op, uintN slot, jsatomid atomIndex,
jsbytecode *pc;
bigSuffix = EmitBigIndexPrefix(cx, cg, atomIndex);
if (bigSuffix < 0)
if (bigSuffix == JSOP_FALSE)
return JS_FALSE;
/* Emit [op, slot, atomIndex]. */