diff --git a/js/src/jit-test/tests/jaeger/bug649824.js b/js/src/jit-test/tests/jaeger/bug649824.js new file mode 100644 index 00000000000..619641c92e8 --- /dev/null +++ b/js/src/jit-test/tests/jaeger/bug649824.js @@ -0,0 +1,6 @@ +var o = { + w: 2, + x: 3 +}; +var o = 430717; +o.x = 4; diff --git a/js/src/jit-test/tests/jaeger/bug649973.js b/js/src/jit-test/tests/jaeger/bug649973.js new file mode 100644 index 00000000000..89b28822354 --- /dev/null +++ b/js/src/jit-test/tests/jaeger/bug649973.js @@ -0,0 +1,2 @@ +x = 2147483647; +(x+10, false) ? [x % x] : [2 * x]; diff --git a/js/src/methodjit/FastArithmetic.cpp b/js/src/methodjit/FastArithmetic.cpp index 7a669677f4e..71a330af83c 100644 --- a/js/src/methodjit/FastArithmetic.cpp +++ b/js/src/methodjit/FastArithmetic.cpp @@ -1054,6 +1054,7 @@ mjit::Compiler::jsop_mod() if (gotNegZero.isSet()) { stubcc.linkExit(gotNegZero.getJump(), Uses(2)); + stubcc.leave(); OOL_STUBCALL(stubs::NegZeroHelper); stubcc.rejoin(Changes(1)); }