diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2015-10-27 12:21:00 +0100 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@theqtcompany.com> | 2015-10-27 13:17:33 +0000 |
commit | 9730574818c80b956946dc26458c839915855196 (patch) | |
tree | 2721a5a2b3e4fc19f85f25ff71c4bb7277f54da0 /src/qml/jit/qv4isel_masm.cpp | |
parent | 3832b1e05b80a0f509be17dd3619a2f8bb70074f (diff) |
QML: Fix typeof context property.
This was missing from f21e8c641af6b2d10f0d7e7e0fc6a755dab3673c.
Task-number: QTBUG-48524
Change-Id: I5cc6a979d965a1ef6b7fbc916a7ca9df868b459a
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Diffstat (limited to 'src/qml/jit/qv4isel_masm.cpp')
-rw-r--r-- | src/qml/jit/qv4isel_masm.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp index 9696f59e7c..dad18c8cf2 100644 --- a/src/qml/jit/qv4isel_masm.cpp +++ b/src/qml/jit/qv4isel_masm.cpp @@ -399,6 +399,23 @@ void InstructionSelection::callBuiltinInvalid(IR::Name *func, IR::ExprList *args } } +void InstructionSelection::callBuiltinTypeofQmlContextProperty(IR::Expr *base, + IR::Member::MemberKind kind, + int propertyIndex, IR::Expr *result) +{ + if (kind == IR::Member::MemberOfQmlScopeObject) { + generateFunctionCall(result, Runtime::typeofScopeObjectProperty, Assembler::EngineRegister, + Assembler::PointerToValue(base), + Assembler::TrustedImm32(propertyIndex)); + } else if (kind == IR::Member::MemberOfQmlContextObject) { + generateFunctionCall(result, Runtime::typeofContextObjectProperty, + Assembler::EngineRegister, Assembler::PointerToValue(base), + Assembler::TrustedImm32(propertyIndex)); + } else { + Q_UNREACHABLE(); + } +} + void InstructionSelection::callBuiltinTypeofMember(IR::Expr *base, const QString &name, IR::Expr *result) { |