aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4value.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2018-05-30 14:55:34 +0200
committerLars Knoll <lars.knoll@qt.io>2018-06-04 13:02:28 +0000
commit502678a183e68a837a5b2ddee2978a3be5e9e008 (patch)
treeacfd88d08ce3c9f3dc1f6867d136e0dcd14fdee0 /src/qml/jsruntime/qv4value.cpp
parent9a0a074452c6534f25a878047398eea77a8c7e0e (diff)
Implement ToPropertyKey() from the ES7 spec
and use it where required. Change-Id: I309ca61e0360b26428fc2ea5a2eea47c8e0632a0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4value.cpp')
-rw-r--r--src/qml/jsruntime/qv4value.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/qml/jsruntime/qv4value.cpp b/src/qml/jsruntime/qv4value.cpp
index be406db325..9febd41a00 100644
--- a/src/qml/jsruntime/qv4value.cpp
+++ b/src/qml/jsruntime/qv4value.cpp
@@ -228,6 +228,17 @@ QString Value::toQString() const
}
} // switch
}
+
+Heap::StringOrSymbol *Value::toPropertyKey(ExecutionEngine *e) const
+{
+ Scope scope(e);
+ ScopedValue v(scope, RuntimeHelpers::toPrimitive(*this, STRING_HINT));
+ if (!v->isStringOrSymbol())
+ v = v->toString(e);
+ if (e->hasException)
+ return nullptr;
+ return static_cast<Heap::StringOrSymbol *>(v->m());
+}
#endif // V4_BOOTSTRAP
bool Value::sameValue(Value other) const {