author | Benjamin Bouvier <benj@benj.me> |
Thu, 26 Mar 2015 12:59:26 +0100 | |
changeset 236051 | 46e3f17440a755eef4feb276f779d4d11f771f96 |
parent 236050 | 8c45833b771aff8f8338e423af21ab03420799da |
child 236052 | 366c8ef076488ed6fe2f158d4a65d47bb7013153 |
push id | 57583 |
push user | benj@benj.me |
push date | Fri, 27 Mar 2015 12:17:27 +0000 |
treeherder | mozilla-inbound@46e3f17440a7 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | shu |
bugs | 1147662 |
milestone | 39.0a1 |
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
|
js/src/jit-test/tests/ion/lexical-check-4.js | file | annotate | diff | comparison | revisions | |
js/src/jit/MIR.h | file | annotate | diff | comparison | revisions |
new file mode 100644 --- /dev/null +++ b/js/src/jit-test/tests/ion/lexical-check-4.js @@ -0,0 +1,15 @@ +var caught = false; +try { + (function() { + let x = (function f(y) { + if (y == 0) { + x + return + } + return f(y - 1) + })(3) + })() +} catch(e) { + caught = true; +} +assertEq(caught, true);
--- a/js/src/jit/MIR.h +++ b/js/src/jit/MIR.h @@ -7048,16 +7048,17 @@ class MLexicalCheck public BoxPolicy<0>::Data { explicit MLexicalCheck(MDefinition *input) : MUnaryInstruction(input) { setResultType(MIRType_Value); setResultTypeSet(input->resultTypeSet()); setMovable(); + setGuard(); } public: INSTRUCTION_HEADER(LexicalCheck) static MLexicalCheck *New(TempAllocator &alloc, MDefinition *input) { return new(alloc) MLexicalCheck(input); }