diff --git a/src/jsvar.c b/src/jsvar.c index e4099804b..accb1048f 100644 --- a/src/jsvar.c +++ b/src/jsvar.c @@ -3425,7 +3425,7 @@ JsVar *jsvMathsOp(JsVar *a, JsVar *b, int op) { case '%': return db ? jsvNewFromInteger(da%db) : jsvNewFromFloat(NAN); case LEX_LSHIFT: return jsvNewFromInteger(da << db); case LEX_RSHIFT: return jsvNewFromInteger(da >> db); - case LEX_RSHIFTUNSIGNED: return jsvNewFromInteger((JsVarInt)(((JsVarIntUnsigned)da) >> db)); + case LEX_RSHIFTUNSIGNED: return jsvNewFromLongInteger(((JsVarIntUnsigned)da) >> db); case LEX_EQUAL: return jsvNewFromBool(da==db && jsvIsNull(a)==jsvIsNull(b)); case LEX_NEQUAL: return jsvNewFromBool(da!=db || jsvIsNull(a)!=jsvIsNull(b)); case '<': return jsvNewFromBool(da>3); var c = ((-1&0xFFFFFFFF) >>> 16); -result = a==8 && b==2 && c == 0xFFFF; +var d = -7 >>> 0; + +result = a==8 && b==2 && c == 0xFFFF && d == 0xFFFFFFF9;