diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-07-31 15:27:59 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2018-08-01 13:18:02 +0000 |
commit | 81c5febf86339c141fb75bb2c3d166ac00b26f19 (patch) | |
tree | ddb45633d88f7cf6fa7ec5684943c965cc7ff30d /src/qml/jsruntime/qv4propertykey.cpp | |
parent | 1ec824ed2f6b18705ecc4d9565f97ade5319da52 (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.cpp | 26 |
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); +} |