diff -r ef0373b55136 -r 758a864f9613 src/declarative/qml/qdeclarativeexpression.cpp --- a/src/declarative/qml/qdeclarativeexpression.cpp Fri Sep 17 08:34:18 2010 +0300 +++ b/src/declarative/qml/qdeclarativeexpression.cpp Mon Oct 04 01:19:32 2010 +0300 @@ -143,16 +143,12 @@ } else { -#if !defined(Q_OS_SYMBIAN) //XXX Why doesn't this work? if (!dd->cachedPrograms.at(progIdx)) { dd->cachedPrograms[progIdx] = new QScriptProgram(expression, url, line); } expressionFunction = evalInObjectScope(ctxt, me, *dd->cachedPrograms.at(progIdx), &expressionContext); -#else - expressionFunction = evalInObjectScope(ctxt, me, expression, &expressionContext); -#endif expressionFunctionMode = ExplicitContext; expressionFunctionValid = true; @@ -604,6 +600,7 @@ scriptContext->pushScope(ep->globalClass->staticGlobalObject()); QDeclarativeRewrite::RewriteBinding rewriteBinding; + rewriteBinding.setName(name); bool ok = true; const QString code = rewriteBinding(expression, &ok); if (ok)