<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/src/qmlcompiler/qqmljscodegenerator.cpp, branch 6.4.2</title>
<subtitle>Qt Declarative (Quick 2)
</subtitle>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/'/>
<entry>
<title>QmlCompiler: Fix comparison of null and undefined</title>
<updated>2022-11-24T12:07:04+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2022-11-18T10:40:10+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=39aba03d4c4bf80a54dbf5b6735b81854dd99220'/>
<id>39aba03d4c4bf80a54dbf5b6735b81854dd99220</id>
<content type='text'>
Those are not stored. If we compare null to null or undefined to
undefined, we do not have to generate a comparison at all. the result is
statically known.

Fixes: QTBUG-108634
Change-Id: I6a5323c2e0c023838609aec90d7ecc15b885dc08
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit bce216d5c086a5aa8f88d13933eeccebca316359)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Those are not stored. If we compare null to null or undefined to
undefined, we do not have to generate a comparison at all. the result is
statically known.

Fixes: QTBUG-108634
Change-Id: I6a5323c2e0c023838609aec90d7ecc15b885dc08
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit bce216d5c086a5aa8f88d13933eeccebca316359)
</pre>
</div>
</content>
</entry>
<entry>
<title>QmlCompiler: Generate correct code for non-double constants</title>
<updated>2022-11-24T09:45:45+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2022-07-29T14:13:43+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=0fbb39435e04e02ecff4a95983be102d57d29e94'/>
<id>0fbb39435e04e02ecff4a95983be102d57d29e94</id>
<content type='text'>
This can actually not happen because we only use this instruction for
doubles. However, it's clearly intended to be compatible with other
types.

Fixes: QTBUG-108820
Change-Id: I50618913373560eee6be2aeb2a9be387ff8ba753
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit ed3da31fd0248d48d960de566293cd9e8d12b9f4)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This can actually not happen because we only use this instruction for
doubles. However, it's clearly intended to be compatible with other
types.

Fixes: QTBUG-108820
Change-Id: I50618913373560eee6be2aeb2a9be387ff8ba753
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit ed3da31fd0248d48d960de566293cd9e8d12b9f4)
</pre>
</div>
</content>
</entry>
<entry>
<title>Port from qAsConst() to std::as_const()</title>
<updated>2022-11-18T22:52:04+00:00</updated>
<author>
<name>Marc Mutz</name>
<email>marc.mutz@qt.io</email>
</author>
<published>2022-11-11T15:26:04+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=4979e677ebc2c85e09bc67939081f70cf78484d2'/>
<id>4979e677ebc2c85e09bc67939081f70cf78484d2</id>
<content type='text'>
We've been requiring C++17 since Qt 6.0, and our qAsConst use finally
starts to bother us (QTBUG-99313), so time to port away from it
now.

Since qAsConst has exactly the same semantics as std::as_const (down
to rvalue treatment, constexpr'ness and noexcept'ness), there's really
nothing more to it than a global search-and-replace.

This is a 6.4 re-run of the script we ran in dev, in order to avoid
conflicts between the branches when cherry-picking.

Change-Id: I5eca3df3179dfb2b2682c75a479ba9a4259cc703
Reviewed-by: Volker Hilsheimer &lt;volker.hilsheimer@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We've been requiring C++17 since Qt 6.0, and our qAsConst use finally
starts to bother us (QTBUG-99313), so time to port away from it
now.

Since qAsConst has exactly the same semantics as std::as_const (down
to rvalue treatment, constexpr'ness and noexcept'ness), there's really
nothing more to it than a global search-and-replace.

This is a 6.4 re-run of the script we ran in dev, in order to avoid
conflicts between the branches when cherry-picking.

Change-Id: I5eca3df3179dfb2b2682c75a479ba9a4259cc703
Reviewed-by: Volker Hilsheimer &lt;volker.hilsheimer@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Port from container::count() and length() to size() - V5</title>
<updated>2022-11-18T22:52:04+00:00</updated>
<author>
<name>Marc Mutz</name>
<email>marc.mutz@qt.io</email>
</author>
<published>2022-11-11T14:53:00+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=7a501ec6c82c8f8d5997b5d30e667d7820faed1c'/>
<id>7a501ec6c82c8f8d5997b5d30e667d7820faed1c</id>
<content type='text'>
This is a the same semantic patch (qt-port-to-std-compatible-api V5
with config Scope: 'Container') as in dev. I've re-ran it in 6.4 to
avoid cherry-pick conflicts.

Change-Id: I9621dee5ed328b47e78919a34c307105e4311903
Reviewed-by: Volker Hilsheimer &lt;volker.hilsheimer@qt.io&gt;
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a the same semantic patch (qt-port-to-std-compatible-api V5
with config Scope: 'Container') as in dev. I've re-ran it in 6.4 to
avoid cherry-pick conflicts.

Change-Id: I9621dee5ed328b47e78919a34c307105e4311903
Reviewed-by: Volker Hilsheimer &lt;volker.hilsheimer@qt.io&gt;
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QmlCompiler: Support conversions between QString and QByteArray</title>
<updated>2022-07-25T07:52:06+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2022-07-18T12:16:11+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=e0fb031b2da64517680dc8e4eeaebef7e95a4114'/>
<id>e0fb031b2da64517680dc8e4eeaebef7e95a4114</id>
<content type='text'>
Fixes: QTBUG-104702
Change-Id: I80d3a28e17751d440ec4bea4c7be0d09c935fa19
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 1969a108214b993275aa694116a167449eae7567)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes: QTBUG-104702
Change-Id: I80d3a28e17751d440ec4bea4c7be0d09c935fa19
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 1969a108214b993275aa694116a167449eae7567)
</pre>
</div>
</content>
</entry>
<entry>
<title>QmlCompiler: Implement Math.pow()</title>
<updated>2022-07-21T15:32:57+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2022-07-19T12:00:28+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=23b1f4cb025f4ef9c9785fb99a6511f642a2029c'/>
<id>23b1f4cb025f4ef9c9785fb99a6511f642a2029c</id>
<content type='text'>
Also, add missing positive infinity to test data.

Fixes: QTBUG-104745
Change-Id: I958aca672cca8cc83c540ed3ea75b08e70eb90fd
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit e97f8cabc8d4f14172354a20ddd96a87d5a3c205)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also, add missing positive infinity to test data.

Fixes: QTBUG-104745
Change-Id: I958aca672cca8cc83c540ed3ea75b08e70eb90fd
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit e97f8cabc8d4f14172354a20ddd96a87d5a3c205)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QmlCompiler: Allow wrapping enums into int</title>
<updated>2022-07-08T17:32:10+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2022-07-04T15:00:15+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=00462982f21caeb9d4d6c36baa280f82996ba9b3'/>
<id>00462982f21caeb9d4d6c36baa280f82996ba9b3</id>
<content type='text'>
This is what we do internally in the QML engine.

Fixes: QTBUG-104683
Change-Id: I2f8712cb2cdc56b6c483500627fd8a218edbad81
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 3f3e961a5afe2e62f436f946c521ea4afab76dde)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is what we do internally in the QML engine.

Fixes: QTBUG-104683
Change-Id: I2f8712cb2cdc56b6c483500627fd8a218edbad81
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 3f3e961a5afe2e62f436f946c521ea4afab76dde)
</pre>
</div>
</content>
</entry>
<entry>
<title>QmlCompiler: Clean up state merging code</title>
<updated>2022-07-07T14:12:42+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2022-06-28T20:04:43+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=dfa3289ced521bb8303fb9c4692d6b9731c76a84'/>
<id>dfa3289ced521bb8303fb9c4692d6b9731c76a84</id>
<content type='text'>
Generally, we need to merge all registers when merging different
branches of execution in the type propagator, even those that were
written by the same instruction on all branches. Doing this right
relieves us from the need to special case the arguments (which most of
the time are only "written" once) all over the place.

Task-number: QTBUG-104462
Change-Id: If30f7382c43d1e04ad91c88cfbc217e070de518a
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 3f86e366a12949e9785cef22a7d967df0d28fefe)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Generally, we need to merge all registers when merging different
branches of execution in the type propagator, even those that were
written by the same instruction on all branches. Doing this right
relieves us from the need to special case the arguments (which most of
the time are only "written" once) all over the place.

Task-number: QTBUG-104462
Change-Id: If30f7382c43d1e04ad91c88cfbc217e070de518a
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 3f86e366a12949e9785cef22a7d967df0d28fefe)
</pre>
</div>
</content>
</entry>
<entry>
<title>QmlCompiler: Initialize registers with undefined where necessary</title>
<updated>2022-07-07T14:12:37+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2022-06-30T15:45:07+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=c2ca8f3ab1efcaedc7e48c834a9f8f8af2d7c078'/>
<id>c2ca8f3ab1efcaedc7e48c834a9f8f8af2d7c078</id>
<content type='text'>
If we read the initial state of a register, we need to make sure it
actually exists at that point. Uninitialized variables are implicitly
undefined in JavaScript.

Task-number: QTBUG-104687
Change-Id: Ide4fe429b10ec28dcf267e7d34c6316355b16baa
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit af335a89bd2f8b41c059c1467bac55fdaf4f2dc0)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If we read the initial state of a register, we need to make sure it
actually exists at that point. Uninitialized variables are implicitly
undefined in JavaScript.

Task-number: QTBUG-104687
Change-Id: Ide4fe429b10ec28dcf267e7d34c6316355b16baa
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit af335a89bd2f8b41c059c1467bac55fdaf4f2dc0)
</pre>
</div>
</content>
</entry>
<entry>
<title>QmlCompiler: Don't push type conversions back into the engine</title>
<updated>2022-07-07T14:12:32+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2022-06-29T12:01:22+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=7593cf60a63935c5c93e11b505b267ff2f4d8225'/>
<id>7593cf60a63935c5c93e11b505b267ff2f4d8225</id>
<content type='text'>
In many cases we can generate better code for type conversions.
Furthermore, the engine only does QMetaType::convert(). This misses a
lot of conversions we do in other places.

Change-Id: I1526ec327d189420885f6a7385f6cc1c2c94b19e
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 7d36ec0bd9cd4747dbf33e92b8188fe25c295b88)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In many cases we can generate better code for type conversions.
Furthermore, the engine only does QMetaType::convert(). This misses a
lot of conversions we do in other places.

Change-Id: I1526ec327d189420885f6a7385f6cc1c2c94b19e
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 7d36ec0bd9cd4747dbf33e92b8188fe25c295b88)
</pre>
</div>
</content>
</entry>
</feed>
