aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qml/compiler/qv4compilercontrolflow_p.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/qml/compiler/qv4compilercontrolflow_p.h b/src/qml/compiler/qv4compilercontrolflow_p.h
index ac6c47c0b7..ba0c4751c9 100644
--- a/src/qml/compiler/qv4compilercontrolflow_p.h
+++ b/src/qml/compiler/qv4compilercontrolflow_p.h
@@ -310,7 +310,10 @@ struct ControlFlowCatch : public ControlFlowUnwind
}
virtual Handler getHandler(HandlerType type, const QString &label = QString()) {
- Handler h = ControlFlowUnwind::getHandler(type, label);
+ Handler h = getParentHandler(type, label);
+ if (h.type == Invalid)
+ return h;
+ h = ControlFlowUnwind::getHandler(type, label);
if (insideCatch)
// if we're inside the catch block, we need to jump to the pop scope
// instruction at the end of the catch block, not the unwind handler