diff --git a/js/src/jit-test/tests/jaeger/bug655810.js b/js/src/jit-test/tests/jaeger/bug655810.js new file mode 100644 index 00000000000..e31d56234c3 --- /dev/null +++ b/js/src/jit-test/tests/jaeger/bug655810.js @@ -0,0 +1,6 @@ +function f(arr) { + var x = arr[0]; + if (typeof x) {}; + Math.abs(x); +} +f([1.2]); diff --git a/js/src/methodjit/MachineRegs.h b/js/src/methodjit/MachineRegs.h index 9aaddf66c3c..f1064debf39 100644 --- a/js/src/methodjit/MachineRegs.h +++ b/js/src/methodjit/MachineRegs.h @@ -434,10 +434,9 @@ struct Registers { AnyRegisterID peekReg(uint32 mask) { JS_ASSERT(!empty(mask)); - int ireg; + unsigned ireg; JS_FLOOR_LOG2(ireg, freeMask & mask); - RegisterID reg = (RegisterID)ireg; - return reg; + return AnyRegisterID::fromRaw(ireg); } AnyRegisterID peekReg() {