diff --git a/js/src/methodjit/MonoIC.cpp b/js/src/methodjit/MonoIC.cpp index 336de5b7a44..032073e8a90 100644 --- a/js/src/methodjit/MonoIC.cpp +++ b/js/src/methodjit/MonoIC.cpp @@ -142,6 +142,7 @@ ic::SetGlobalName(VMFrame &f, uint32 index) JSScopeProperty *sprop = scope->lookup(id); if (!sprop || !sprop->hasDefaultGetterOrIsMethod() || + !sprop->writable() || !SPROP_HAS_VALID_SLOT(sprop, scope)) { JS_UNLOCK_SCOPE(f.cx, scope); diff --git a/js/src/trace-test/tests/jaeger/bug584647.js b/js/src/trace-test/tests/jaeger/bug584647.js new file mode 100644 index 00000000000..7f0e6598481 --- /dev/null +++ b/js/src/trace-test/tests/jaeger/bug584647.js @@ -0,0 +1,2 @@ +(function(){for(j=0;j<3;++j)NaN=42})(); +assertEq(NaN != NaN, true);