Fixed 64-bit LIR type assertion (no bug, rs=dvander).
authorLuke Wagner <lw@mozilla.com>
Thu, 18 Mar 2010 13:46:56 -0700
changeset 40308 8bd2545a48282f4e57c0d7f63444a7bf0df1fc94
parent 40307 3f09b480b148b386067091be2d738145b3174a47
child 40309 550c5bd4fbae52a599a7157f4e0269367a5cd78a
push id1
push userroot
push dateTue, 26 Apr 2011 22:38:44 +0000
treeherdermozilla-beta@bfdb6e623a36 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdvander
milestone1.9.3a3pre
Fixed 64-bit LIR type assertion (no bug, rs=dvander).
js/src/jstracer.cpp
--- a/js/src/jstracer.cpp
+++ b/js/src/jstracer.cpp
@@ -8606,16 +8606,18 @@ TraceRecorder::equalityHelper(jsval l, j
      * only if T is Object, but that must recur again to convert Object to
      * primitive, and ToPrimitive throws if the object cannot be converted to
      * a primitive value (which would terminate recursion).
      */
 
     if (GetPromotedType(l) == GetPromotedType(r)) {
         if (JSVAL_IS_VOID(l) || JSVAL_IS_NULL(l)) {
             cond = true;
+            if (JSVAL_IS_NULL(l))
+                op = LIR_peq;
         } else if (JSVAL_IS_OBJECT(l)) {
             JSClass *clasp = OBJ_GET_CLASS(cx, JSVAL_TO_OBJECT(l));
             if ((clasp->flags & JSCLASS_IS_EXTENDED) && ((JSExtendedClass*) clasp)->equality)
                 RETURN_STOP_A("Can't trace extended class equality operator");
             op = LIR_peq;
             cond = (l == r);
         } else if (JSVAL_IS_SPECIAL(l)) {
             JS_ASSERT(JSVAL_IS_BOOLEAN(l) && JSVAL_IS_BOOLEAN(r));