aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jit/qv4isel_masm.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@qt.io>2017-06-16 15:24:28 +0200
committerLars Knoll <lars.knoll@qt.io>2017-06-20 10:03:37 +0000
commit24969e19b18ea68019ae66c99982f04b2d05a9d1 (patch)
treea4939d916d301b86659d82b30e63d8b1f184ff6e /src/qml/jit/qv4isel_masm.cpp
parentb829693623f886975a3e79c2f6804a7564449977 (diff)
Support object literals
Change-Id: I7fc4565044caf23bec239561be4fbc020ccc2468 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/jit/qv4isel_masm.cpp')
-rw-r--r--src/qml/jit/qv4isel_masm.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp
index 7784eb364e..e1974f5776 100644
--- a/src/qml/jit/qv4isel_masm.cpp
+++ b/src/qml/jit/qv4isel_masm.cpp
@@ -339,15 +339,16 @@ void InstructionSelection<JITAssembler>::callBuiltinDefineObjectLiteral(IR::Expr
{
Q_ASSERT(result);
+ QVector<Compiler::JSUnitGenerator::MemberInfo> members;
int argc = 0;
- const int classId = registerJSClass(keyValuePairCount, keyValuePairs);
-
IR::ExprList *it = keyValuePairs;
for (int i = 0; i < keyValuePairCount; ++i, it = it->next) {
+ QString key = *it->expr->asName()->id;
it = it->next;
bool isData = it->expr->asConst()->value;
+ members.append({ key, !isData });
it = it->next;
_as->copyValue(_as->stackLayout().argumentAddressForCall(argc++), it->expr, WriteBarrier::NoBarrier);
@@ -358,6 +359,8 @@ void InstructionSelection<JITAssembler>::callBuiltinDefineObjectLiteral(IR::Expr
}
}
+ const int classId = registerJSClass(members);
+
it = arrayEntries;
uint arrayValueCount = 0;
while (it) {