aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@qt.io>2019-03-07 11:53:56 +0100
committerErik Verbruggen <erik.verbruggen@qt.io>2019-03-22 09:08:05 +0000
commitb7eebec9597b38fed52710bc1dcc166d456a415d (patch)
tree22f983a1ffbf44c0c5d8aa65ca733769b07a5e6d /src/qml/jsruntime
parentc32b109e9dea44c6775c2dbf8f164870c1dc8971 (diff)
V4: Add trace slot for UPlus
Change-Id: I0bb5055024e30c32b82e1555c820ea5ced8923f5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/jsruntime')
-rw-r--r--src/qml/jsruntime/qv4vme_moth.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp
index 3098837e1c..e3cdc4552a 100644
--- a/src/qml/jsruntime/qv4vme_moth.cpp
+++ b/src/qml/jsruntime/qv4vme_moth.cpp
@@ -388,6 +388,18 @@ static inline void traceValue(ReturnedValue acc, Function *f, int slot)
#endif
}
+static inline void traceIntValue(Function *f, int slot)
+{
+#if QT_CONFIG(qml_tracing)
+ quint8 *traceInfo = f->traceInfo(slot);
+ Q_ASSERT(traceInfo);
+ *traceInfo |= quint8(ObservedTraceValues::Integer);
+#else
+ Q_UNUSED(f);
+ Q_UNUSED(slot);
+#endif
+}
+
static inline void traceDoubleValue(Function *f, int slot)
{
#if QT_CONFIG(qml_tracing)
@@ -1285,7 +1297,12 @@ QV4::ReturnedValue VME::interpret(CppStackFrame *frame, ExecutionEngine *engine,
MOTH_END_INSTR(UNot)
MOTH_BEGIN_INSTR(UPlus)
- if (Q_UNLIKELY(!ACC.isNumber())) {
+ if (Q_LIKELY(ACC.isNumber())) {
+ if (ACC.isDouble())
+ traceDoubleValue(function, traceSlot);
+ else
+ traceIntValue(function, traceSlot);
+ } else {
acc = Encode(ACC.toNumberImpl());
CHECK_EXCEPTION;
}