diff options
author | janekptacijarabaci <janekptacijarabaci@seznam.cz> | 2018-03-25 16:22:38 +0200 |
---|---|---|
committer | janekptacijarabaci <janekptacijarabaci@seznam.cz> | 2018-03-25 16:22:38 +0200 |
commit | b311e8fa718e2a32805c25847781cc8a6a0541bd (patch) | |
tree | 458018bc532e6a56878c901424cdf2ddc5595694 /js/src/jit/BaselineBailouts.cpp | |
parent | 2818e8dedb4a9a6cf40688ad42bf2be05e2f26d2 (diff) | |
download | UXP-b311e8fa718e2a32805c25847781cc8a6a0541bd.tar UXP-b311e8fa718e2a32805c25847781cc8a6a0541bd.tar.gz UXP-b311e8fa718e2a32805c25847781cc8a6a0541bd.tar.lz UXP-b311e8fa718e2a32805c25847781cc8a6a0541bd.tar.xz UXP-b311e8fa718e2a32805c25847781cc8a6a0541bd.zip |
Bug 1342553, Bug 1343072, Bug 1344753 (details in the description)
Bug 1342553 - Part 0.1: Use try-catch for IteratorClose in for-of
Bug 1343072 - Update HasLiveStackValueAtDepth to follow the change in
JSTRY_FOR_OF
Bug 1344753 - Update for-of stack depth in
ControlFlowGenerator::processWhileOrForInLoop
Issue #74
Diffstat (limited to 'js/src/jit/BaselineBailouts.cpp')
-rw-r--r-- | js/src/jit/BaselineBailouts.cpp | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/js/src/jit/BaselineBailouts.cpp b/js/src/jit/BaselineBailouts.cpp index 161e1aa4c..3ab722b3d 100644 --- a/js/src/jit/BaselineBailouts.cpp +++ b/js/src/jit/BaselineBailouts.cpp @@ -509,16 +509,10 @@ HasLiveStackValueAtDepth(JSScript* script, jsbytecode* pc, uint32_t stackDepth) break; case JSTRY_FOR_OF: - // For-of loops have both the iterator and the result object on - // stack. The iterator is below the result object. - if (stackDepth == tn->stackDepth - 1) - return true; - break; - - case JSTRY_ITERCLOSE: - // Code that need to call IteratorClose have the iterator on the - // stack. - if (stackDepth == tn->stackDepth) + // For-of loops have the iterator, the result object, and the value + // of the result object on stack. The iterator is below the result + // object and the value. + if (stackDepth == tn->stackDepth - 2) return true; break; |