aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4isel_p.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@theqtcompany.com>2015-06-22 07:46:32 +0200
committerSimon Hausmann <simon.hausmann@theqtcompany.com>2015-08-10 01:22:05 +0000
commitf21e8c641af6b2d10f0d7e7e0fc6a755dab3673c (patch)
treeb3b430f88fc83f57d0413a7723ee35aa715f795c /src/qml/compiler/qv4isel_p.cpp
parentb2889568170b20ca8f870a7f4a1a1c3ac9f698c5 (diff)
Access context properties through the qml context
And get rid of another temp in the IR. Change-Id: I039393e020e5141f1986aee276246c30fd8057f3 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Diffstat (limited to 'src/qml/compiler/qv4isel_p.cpp')
-rw-r--r--src/qml/compiler/qv4isel_p.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/qml/compiler/qv4isel_p.cpp b/src/qml/compiler/qv4isel_p.cpp
index a4a3bc352e..4ed321b006 100644
--- a/src/qml/compiler/qv4isel_p.cpp
+++ b/src/qml/compiler/qv4isel_p.cpp
@@ -95,8 +95,6 @@ void IRDecoder::visitMove(IR::Move *s)
loadQmlContext(s->target);
else if (n->builtin == IR::Name::builtin_qml_id_array)
loadQmlIdArray(s->target);
- else if (n->builtin == IR::Name::builtin_qml_context_object)
- loadQmlContextObject(s->target);
else if (n->builtin == IR::Name::builtin_qml_imported_scripts_object)
loadQmlImportedScripts(s->target);
else if (n->qmlSingleton)
@@ -153,7 +151,7 @@ void IRDecoder::visitMove(IR::Move *s)
captureRequired = false;
}
}
- if (m->kind == IR::Member::MemberOfQmlScopeObject) {
+ if (m->kind == IR::Member::MemberOfQmlScopeObject || m->kind == IR::Member::MemberOfQmlContextObject) {
getQmlContextProperty(m->base, (IR::Member::MemberKind)m->kind, m->property->coreIndex, s->target);
return;
}
@@ -179,7 +177,7 @@ void IRDecoder::visitMove(IR::Move *s)
return;
} else if (Member *member = c->base->asMember()) {
#ifndef V4_BOOTSTRAP
- if (member->kind == IR::Member::MemberOfQmlScopeObject) {
+ if (member->kind == IR::Member::MemberOfQmlScopeObject || member->kind == IR::Member::MemberOfQmlContextObject) {
callQmlContextProperty(member->base, (IR::Member::MemberKind)member->kind, member->property->coreIndex, c->args, s->target);
return;
}
@@ -207,7 +205,7 @@ void IRDecoder::visitMove(IR::Move *s)
#ifdef V4_BOOTSTRAP
Q_UNIMPLEMENTED();
#else
- if (m->kind == IR::Member::MemberOfQmlScopeObject) {
+ if (m->kind == IR::Member::MemberOfQmlScopeObject || m->kind == IR::Member::MemberOfQmlContextObject) {
setQmlContextProperty(s->source, m->base, (IR::Member::MemberKind)m->kind, m->property->coreIndex);
return;
}
@@ -253,7 +251,7 @@ void IRDecoder::visitExp(IR::Exp *s)
} else if (Member *member = c->base->asMember()) {
Q_ASSERT(member->base->asTemp() || member->base->asArgLocal());
#ifndef V4_BOOTSTRAP
- if (member->kind == IR::Member::MemberOfQmlScopeObject) {
+ if (member->kind == IR::Member::MemberOfQmlScopeObject || member->kind == IR::Member::MemberOfQmlContextObject) {
callQmlContextProperty(member->base, (IR::Member::MemberKind)member->kind, member->property->coreIndex, c->args, 0);
return;
}