diff options
author | Semih Yavuz <semih.yavuz@qt.io> | 2023-05-04 14:43:25 +0200 |
---|---|---|
committer | Semih Yavuz <semih.yavuz@qt.io> | 2023-05-05 19:56:42 +0200 |
commit | feca8417f610f8f64193292379eb9e0b9423936f (patch) | |
tree | bcbcd7c61bde4e88db6b931365135410a9df3251 /tests/auto | |
parent | d32ccc5f1b7ccb5e2ffe1fcf25417a3131126e1d (diff) | |
download | qtdeclarative-feca8417f610f8f64193292379eb9e0b9423936f.tar.gz |
qmldom: Add more literals
Dom construction fails before this commit if it encounters one of
null expression, true and false literals. Add dom representation for
them.
Change-Id: I2dbb2ebfce83b32426eb5e159fe9e4f0f68c56c3
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/qmldom/domdata/domitem/variableDeclarations.qml | 4 | ||||
-rw-r--r-- | tests/auto/qmldom/domitem/tst_qmldomitem.h | 33 |
2 files changed, 35 insertions, 2 deletions
diff --git a/tests/auto/qmldom/domdata/domitem/variableDeclarations.qml b/tests/auto/qmldom/domdata/domitem/variableDeclarations.qml index 7c5ecd7d4f..330ae35c11 100644 --- a/tests/auto/qmldom/domdata/domitem/variableDeclarations.qml +++ b/tests/auto/qmldom/domdata/domitem/variableDeclarations.qml @@ -10,6 +10,10 @@ Item { const a = 3; const b = "patron"; var aa = helloWorld, bb = aa; + + const bool1 = true; + let bool2 = false; + var nullVar = null; return sum; } } diff --git a/tests/auto/qmldom/domitem/tst_qmldomitem.h b/tests/auto/qmldom/domitem/tst_qmldomitem.h index 2d9b6782f0..09f103d7fb 100644 --- a/tests/auto/qmldom/domitem/tst_qmldomitem.h +++ b/tests/auto/qmldom/domitem/tst_qmldomitem.h @@ -956,9 +956,11 @@ private slots: QVERIFY(blockSemanticScope.value()->JSIdentifier(u"b"_s)); QVERIFY(blockSemanticScope.value()->JSIdentifier(u"aa"_s)); QVERIFY(blockSemanticScope.value()->JSIdentifier(u"bb"_s)); - + QVERIFY(blockSemanticScope.value()->JSIdentifier(u"bool1"_s)); + QVERIFY(blockSemanticScope.value()->JSIdentifier(u"bool2"_s)); + QVERIFY(blockSemanticScope.value()->JSIdentifier(u"nullVar"_s)); DomItem statements = block.field(Fields::statements); - QCOMPARE(statements.indexes(), 5); + QCOMPARE(statements.indexes(), 8); { // let sum = 0, helloWorld = "hello" @@ -1024,6 +1026,33 @@ private slots: QCOMPARE(bb.field(Fields::initializer).field(Fields::identifier).value().toString(), "aa"); } + { + // const bool1 = true + DomItem bool1 = statements.index(4).field(Fields::declarations).index(0); + QCOMPARE(bool1.field(Fields::scopeType).value().toInteger(), + ScriptElements::VariableDeclarationEntry::ScopeType::Const); + QCOMPARE(bool1.field(Fields::identifier).value().toString(), "bool1"); + QCOMPARE(bool1.field(Fields::initializer).internalKind(), DomType::ScriptLiteral); + QVERIFY(bool1.field(Fields::initializer).field(Fields::value).value().isTrue()); + } + { + // let bool2 = false + DomItem bool2 = statements.index(5).field(Fields::declarations).index(0); + QCOMPARE(bool2.field(Fields::scopeType).value().toInteger(), + ScriptElements::VariableDeclarationEntry::ScopeType::Let); + QCOMPARE(bool2.field(Fields::identifier).value().toString(), "bool2"); + QCOMPARE(bool2.field(Fields::initializer).internalKind(), DomType::ScriptLiteral); + QVERIFY(bool2.field(Fields::initializer).field(Fields::value).value().isFalse()); + } + { + // var nullVar = null + DomItem nullVar = statements.index(6).field(Fields::declarations).index(0); + QCOMPARE(nullVar.field(Fields::scopeType).value().toInteger(), + ScriptElements::VariableDeclarationEntry::ScopeType::Var); + QCOMPARE(nullVar.field(Fields::identifier).value().toString(), "nullVar"); + QCOMPARE(nullVar.field(Fields::initializer).internalKind(), DomType::ScriptLiteral); + QVERIFY(nullVar.field(Fields::initializer).field(Fields::value).value().isNull()); + } } void ifStatements() |