aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@theqtcompany.com>2015-10-02 11:00:36 +0200
committerChristian Kandeler <christian.kandeler@theqtcompany.com>2015-10-02 12:58:07 +0000
commit9087e2667e20a391acd9caa34293e913cee19080 (patch)
tree16d5ed0123611fc190f576e6fbb6e215fab3127a
parent90c4ca7070273929c87e481f18015a226124b3db (diff)
Add missing check for evaluation error.
Change-Id: I83b53ec2d37a2e5b499b1cd81b1cd2fb3e593750 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
-rw-r--r--src/lib/corelib/language/evaluatorscriptclass.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/lib/corelib/language/evaluatorscriptclass.cpp b/src/lib/corelib/language/evaluatorscriptclass.cpp
index ab3928f7e..9ebd2e077 100644
--- a/src/lib/corelib/language/evaluatorscriptclass.cpp
+++ b/src/lib/corelib/language/evaluatorscriptclass.cpp
@@ -212,9 +212,14 @@ private:
}
setupConvenienceProperty(QLatin1String("base"), &extraScope, baseValue);
}
- if (value->sourceUsesOuter() && outerItem)
- setupConvenienceProperty(QLatin1String("outer"), &extraScope,
- data->evaluator->property(outerItem, *propertyName));
+ if (value->sourceUsesOuter() && outerItem) {
+ const QScriptValue v = data->evaluator->property(outerItem, *propertyName);
+ if (engine->hasErrorOrException(v)) {
+ *result = engine->lastErrorValue(v);
+ return;
+ }
+ setupConvenienceProperty(QLatin1String("outer"), &extraScope, v);
+ }
if (value->sourceUsesOriginal()) {
const Item *item = itemOfProperty;
while (item->isModuleInstance())