diff options
author | Simon Hausmann <simon.hausmann@theqtcompany.com> | 2015-05-04 10:20:20 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@theqtcompany.com> | 2015-05-04 10:20:49 +0200 |
commit | 1648c166dbb541bbe663f3d6e5ad2a39d0735aea (patch) | |
tree | 099a31921aa2f9ab605fb1d8c3ffcaa030f75793 | |
parent | 6c1d99c2490e1af5c42d03cf10e8fe4d2e30c025 (diff) | |
parent | 2fdb6eba0a58b629db32f9eefec2f26df08d3d2e (diff) |
Merge remote-tracking branch 'origin/5.4' into 5.5
Change-Id: Ie8ea118ed0a1a9a1c3d81e1e34d85c03c695c9a4
-rw-r--r-- | src/qml/compiler/qv4codegen.cpp | 2 | ||||
-rw-r--r-- | src/quick/items/qquickscreen.cpp | 27 | ||||
-rw-r--r-- | tests/auto/qml/qjsengine/tst_qjsengine.cpp | 21 |
3 files changed, 31 insertions, 19 deletions
diff --git a/src/qml/compiler/qv4codegen.cpp b/src/qml/compiler/qv4codegen.cpp index 02274ca793..9168889c8c 100644 --- a/src/qml/compiler/qv4codegen.cpp +++ b/src/qml/compiler/qv4codegen.cpp @@ -538,7 +538,7 @@ IR::Expr *Codegen::subscript(IR::Expr *base, IR::Expr *index) IR::Expr *Codegen::argument(IR::Expr *expr) { - if (expr && !expr->asTemp() && !expr->asArgLocal()) { + if (expr && !expr->asTemp()) { const unsigned t = _block->newTemp(); move(_block->TEMP(t), expr); expr = _block->TEMP(t); diff --git a/src/quick/items/qquickscreen.cpp b/src/quick/items/qquickscreen.cpp index 5bd6430f2d..3bf7229b33 100644 --- a/src/quick/items/qquickscreen.cpp +++ b/src/quick/items/qquickscreen.cpp @@ -351,24 +351,15 @@ void QQuickScreenAttached::screenChanged(QScreen *screen) emit orientationUpdateMaskChanged(); } - if (!oldScreen || screen->size() != oldScreen->size()) { - emit widthChanged(); - emit heightChanged(); - } - if (!oldScreen || screen->name() != oldScreen->name()) - emit nameChanged(); - if (!oldScreen || screen->orientation() != oldScreen->orientation()) - emit orientationChanged(); - if (!oldScreen || screen->primaryOrientation() != oldScreen->primaryOrientation()) - emit primaryOrientationChanged(); - if (!oldScreen || screen->availableVirtualGeometry() != oldScreen->availableVirtualGeometry()) - emit desktopGeometryChanged(); - if (!oldScreen || screen->logicalDotsPerInch() != oldScreen->logicalDotsPerInch()) - emit logicalPixelDensityChanged(); - if (!oldScreen || screen->physicalDotsPerInch() != oldScreen->physicalDotsPerInch()) - emit pixelDensityChanged(); - if (!oldScreen || screen->devicePixelRatio() != oldScreen->devicePixelRatio()) - emit devicePixelRatioChanged(); + emit widthChanged(); + emit heightChanged(); + emit nameChanged(); + emit orientationChanged(); + emit primaryOrientationChanged(); + emit desktopGeometryChanged(); + emit logicalPixelDensityChanged(); + emit pixelDensityChanged(); + emit devicePixelRatioChanged(); connect(screen, SIGNAL(geometryChanged(QRect)), this, SIGNAL(widthChanged())); diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp index 61816b6cc0..5a9d6d20eb 100644 --- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp +++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp @@ -178,6 +178,8 @@ private slots: void intConversion_QTBUG43309(); void toFixed(); + void argumentEvaluationOrder(); + signals: void testSignal(); }; @@ -3665,6 +3667,25 @@ void tst_QJSEngine::toFixed() QCOMPARE(result.toString(), QStringLiteral("12.1")); } +void tst_QJSEngine::argumentEvaluationOrder() +{ + QJSEngine engine; + QJSValue ok = engine.evaluate( + "function record(arg1, arg2) {\n" + " parameters = [arg1, arg2]\n" + "}\n" + "function test() {\n" + " var i = 2;\n" + " record(i, i += 2);\n" + "}\n" + "test()\n" + "parameters[0] == 2 && parameters[1] == 4"); + qDebug() << ok.toString(); + QVERIFY(ok.isBool()); + QVERIFY(ok.toBool()); + +} + QTEST_MAIN(tst_QJSEngine) #include "tst_qjsengine.moc" |