diff --git a/js/src/jit-test/tests/ion/bug914341.js b/js/src/jit-test/tests/ion/bug914341.js new file mode 100644 index 000000000000..2f0bb3174d09 --- /dev/null +++ b/js/src/jit-test/tests/ion/bug914341.js @@ -0,0 +1,5 @@ +function f() { + assertEq(typeof eval("this"), "object"); +} +for (var i=0; i<5; i++) + f(); diff --git a/js/src/jit/BaselineCompiler.cpp b/js/src/jit/BaselineCompiler.cpp index 2472443850b5..58d89e756204 100644 --- a/js/src/jit/BaselineCompiler.cpp +++ b/js/src/jit/BaselineCompiler.cpp @@ -969,7 +969,7 @@ BaselineCompiler::emit_JSOP_THIS() frame.pushThis(); // In strict mode function or self-hosted function, |this| is left alone. - if (!function() || function()->strict() || function()->isSelfHostedBuiltin()) + if (function() && (function()->strict() || function()->isSelfHostedBuiltin())) return true; Label skipIC;