This is a regression from the compiler change. We can and should try to
use the binding as it was compiled in the loader thread for things like
PropertyChanges {
target: foo
width: someExpresion + to + calculate * width;
}
It is already ensured that these expressions are compiled without type
optimizations.
Change-Id: Ib855d8a848fcab2524df008727eab436ac98514e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
setScopeObject(obj ? obj : scriptPrivate->scope);
if (runtimeFunction) {
- v4function = QV4::QmlBindingWrapper::createQmlCallableForFunction(ctxtdata, scopeObject(), runtimeFunction);
+ v4function = QV4::QmlBindingWrapper::createQmlCallableForFunction(engine->v4engine(), ctxtdata, scopeObject(), runtimeFunction);
} else {
QString code = scriptPrivate->script;
v4function = qmlBinding(context(), scopeObject(), code, url, scriptPrivate->lineNumber);
QQmlBinding::Identifier id = QQmlBinding::Invalid;
switch (binding->type) {
case QV4::CompiledData::Binding::Type_Script:
- // ### pre-compile binding
+ id = bindingIdentifier(binding);
+ // Fall through as we also need the expression string.
+ // Signal handlers still need to be constructed by string ;(
case QV4::CompiledData::Binding::Type_String:
var = binding->valueAsString(&qmlUnit->header);
break;