aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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())