Backed out changeset 1724a6c07316 (Bug 1073576) because of bad patch
authorTom Schuster <evilpies@gmail.com>
Sun, 05 Oct 2014 15:33:20 +0200
changeset 232109 a80a2d8bbd47ba91063cacd50c0ed20e1c2c603a
parent 232108 1724a6c073166de899ba7ce6cf97fa3c93fa8af0
child 232110 e5d631abcd562d12ec5112d81bf2d28d1599e8f5
child 232111 7b045852dd44a3f9ba8cf590a0daf055fb3ed7de
push id4187
push userbhearsum@mozilla.com
push dateFri, 28 Nov 2014 15:29:12 +0000
treeherdermozilla-beta@f23cc6a30c11 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1073576
milestone35.0a1
backs out1724a6c073166de899ba7ce6cf97fa3c93fa8af0
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out changeset 1724a6c07316 (Bug 1073576) because of bad patch
js/src/jit-test/tests/basic/strict-compare-same-operands.js
js/src/jit/MIR.cpp
js/src/jit/MIR.h
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/strict-compare-same-operands.js
+++ /dev/null
@@ -1,47 +0,0 @@
-function f(l) {
-    var a = NaN;
-    var b = 13;
-    var c = "test";
-    var d = undefined;
-    var e = null;
-    var f = 15.7;
-    var g = Math.fround(189777.111);
-    var h = "ABC";
-    var i = String.fromCharCode(65, 65, 65);
-    var j = {};
-    var k = Math.fround("".charCodeAt(15));
-
-    // Special case rigt here:
-    assertEq(a === a, false);
-    assertEq(a !== a, true);
-    assertEq(k === k, false);
-    assertEq(k !== k, true);
-    assertEq(l === l, false);
-    assertEq(l !== l, true);
-
-    assertEq(b === b, true);
-    assertEq(b !== b, false);
-    assertEq(c === c, true);
-    assertEq(c !== c, false);
-    assertEq(d === d, true);
-    assertEq(d !== d, false);
-    assertEq(e === e, true);
-    assertEq(e !== e, false);
-    assertEq(f === f, true);
-    assertEq(f !== f, false);
-    assertEq(g === g, true);
-    assertEq(g !== g, false);
-    assertEq(h === h, true);
-    assertEq(h !== h, false);
-    assertEq(i === i, true);
-    assertEq(i !== i, false);
-    assertEq(j === j, true);
-    assertEq(j !== j, false);
-}
-
-function test() {
-    for (var i = 0; i < 100; i++)
-        f("".charCodeAt(15));
-}
-
-test();
--- a/js/src/jit/MIR.cpp
+++ b/js/src/jit/MIR.cpp
@@ -2833,52 +2833,16 @@ MClampToUint8::foldsTo(TempAllocator &al
         if (v.isInt32()) {
             int32_t clamped = ClampIntForUint8Array(v.toInt32());
             return MConstant::New(alloc, Int32Value(clamped));
         }
     }
     return this;
 }
 
- bool
-MCompare::tryFoldEqualOperands(bool *result)
-{
-    if (lhs() != rhs())
-        return false;
-
-    // Intuitively somebody would think that if lhs == rhs,
-    // then we can just return true. (Or false for !==)
-    // However NaN !== NaN is true! So we spend some time trying
-    // to eliminate this case.
-
-    if (jsop() != JSOP_STRICTEQ && jsop() != JSOP_STRICTNE)
-        return false;
-
-    if (compareType_ == Compare_Unknown)
-        return false;
-
-    MOZ_ASSERT(compareType_ == Compare_Undefined || compareType_ == Compare_Null ||
-               compareType_ == Compare_Boolean || compareType_ == Compare_Int32 ||
-               compareType_ == Compare_Int32MaybeCoerceBoth ||
-               compareType_ == Compare_Int32MaybeCoerceLHS ||
-               compareType_ == Compare_Int32MaybeCoerceRHS || compareType_ == Compare_UInt32 ||
-               compareType_ == Compare_Double || compareType_ == Compare_DoubleMaybeCoerceLHS ||
-               compareType_ == Compare_DoubleMaybeCoerceRHS || compareType_ == Compare_Float32 ||
-               compareType_ == Compare_String || compareType_ == Compare_StrictString ||
-               compareType_ == Compare_Object || compareType_ == Compare_Value);
-
-    if (isDoubleComparison() || isFloat32Comparison()) {
-        if (!operandsAreNeverNaN())
-            return false;
-    }
-
-    *result = (jsop() == JSOP_STRICTEQ);
-    return true;
-}
-
 bool
 MCompare::tryFold(bool *result)
 {
     JSOp op = jsop();
 
     if (compareType_ == Compare_Null || compareType_ == Compare_Undefined) {
         MOZ_ASSERT(op == JSOP_EQ || op == JSOP_STRICTEQ ||
                    op == JSOP_NE || op == JSOP_STRICTNE);
--- a/js/src/jit/MIR.h
+++ b/js/src/jit/MIR.h
@@ -3468,18 +3468,16 @@ class MCompare
         // Both sides of the compare can be Float32
         return compareType_ == Compare_Float32;
     }
 # endif
 
     ALLOW_CLONE(MCompare)
 
   protected:
-    bool tryFoldEqualOperands(bool *result);
-
     bool congruentTo(const MDefinition *ins) const {
         if (!binaryCongruentTo(ins))
             return false;
         return compareType() == ins->toCompare()->compareType() &&
                jsop() == ins->toCompare()->jsop();
     }
 };