Commit dcb00e1e authored by Nicolas B. Pierron's avatar Nicolas B. Pierron
Browse files

Bug 787309 - Fallback on try notes after continuing on a goto. r=luke

parent 8a8dab9f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
try {
    h
} catch (x
if gc()) {} finally {
    this.z.z
}
+21 −0
Original line number Diff line number Diff line
@@ -6437,6 +6437,27 @@ ReconstructPCStack(JSContext *cx, JSScript *script, jsbytecode *target,
                }
                continue;
            }

            if (!script->hasTrynotes())
                continue;

            // If we do not follow a goto we look for another mean to continue
            // at the next PC.
            JSTryNote *tn = script->trynotes()->vector;
            JSTryNote *tnEnd = tn + script->trynotes()->length;
            for (; tn != tnEnd; tn++) {
                jsbytecode *start = script->main() + tn->start;
                jsbytecode *end = start + tn->length;
                if (start < pc && pc <= end && end <= target)
                    break;
            }
            if (tn != tnEnd) {
                pcdepth = tn->stackDepth;
                hpcdepth = unsigned(-1);
                oplen = 0;
                pc = script->main() + tn->start + tn->length;
            }
            continue;
        }

        /*