aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4propertykey.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2018-07-31 15:27:59 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2018-08-01 13:18:02 +0000
commit81c5febf86339c141fb75bb2c3d166ac00b26f19 (patch)
treeddb45633d88f7cf6fa7ec5684943c965cc7ff30d /src/qml/jsruntime/qv4propertykey.cpp
parent1ec824ed2f6b18705ecc4d9565f97ade5319da52 (diff)
Fix naming of methods defined in object or class literals
Change-Id: I01b7774097a447520c85ae6766e6ca1162e921ba Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4propertykey.cpp')
-rw-r--r--src/qml/jsruntime/qv4propertykey.cpp26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/qml/jsruntime/qv4propertykey.cpp b/src/qml/jsruntime/qv4propertykey.cpp
index e5e96bedb8..12a3653034 100644
--- a/src/qml/jsruntime/qv4propertykey.cpp
+++ b/src/qml/jsruntime/qv4propertykey.cpp
@@ -41,6 +41,7 @@
#include <QtCore/qstring.h>
#include <qv4string_p.h>
+#include <qv4engine_p.h>
QV4::Heap::StringOrSymbol *QV4::PropertyKey::toStringOrSymbol(QV4::ExecutionEngine *e)
{
@@ -63,8 +64,27 @@ QString QV4::PropertyKey::toQString() const
{
if (isArrayIndex())
return QString::number(asArrayIndex());
- Heap::Base *b = asStringOrSymbol();
- Q_ASSERT(b->internalClass->vtable->isStringOrSymbol);
- Heap::StringOrSymbol *s = static_cast<Heap::StringOrSymbol *>(b);
+ Heap::StringOrSymbol *s = asStringOrSymbol();
+ Q_ASSERT(s->internalClass->vtable->isStringOrSymbol);
return s->toQString();
}
+
+QV4::Heap::String *QV4::PropertyKey::asFunctionName(ExecutionEngine *engine, FunctionNamePrefix prefix) const
+{
+ QString n;
+ if (prefix == Getter)
+ n = QStringLiteral("get ");
+ else if (prefix == Setter)
+ n = QStringLiteral("set ");
+ if (isArrayIndex())
+ n += QString::number(asArrayIndex());
+ else {
+ Heap::StringOrSymbol *s = asStringOrSymbol();
+ QString str = s->toQString();
+ if (s->internalClass->vtable->isString)
+ n += s->toQString();
+ else if (str.length() > 1)
+ n += QChar::fromLatin1('[') + str.midRef(1) + QChar::fromLatin1(']');
+ }
+ return engine->newString(n);
+}