aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2019-02-01 14:31:31 +0100
committerLiang Qi <liang.qi@qt.io>2019-02-01 14:50:06 +0100
commit4b0a030cc9b9fa32383a43e2b971f05a536b8e7f (patch)
treeac4738a7ae6ff491c3afa3171b27c9688635e58a
parente09519bad7ff266e466ea2d2d66187fbb13457f9 (diff)
parent5d8d0d7068bc8498ea2a6a4c9bc16e0eeb92836c (diff)
Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts: src/qml/compiler/qv4codegen.cpp Done-With: Erik Verbruggen <erik.verbruggen@qt.io> Change-Id: I3ae3d64317e4f3fccba6605f4c6da15479ca75e0
-rw-r--r--src/imports/settings/plugin.cpp2
-rw-r--r--src/imports/settings/plugins.qmltypes3
-rw-r--r--src/imports/settings/qqmlsettings.cpp12
-rw-r--r--src/imports/settings/qqmlsettings_p.h6
-rw-r--r--src/qml/compiler/qv4codegen.cpp11
-rw-r--r--src/qml/doc/src/cppintegration/definetypes.qdoc2
-rw-r--r--src/quick/handlers/qquicktaphandler.cpp2
-rw-r--r--src/quick/items/qquickevents.cpp2
-rw-r--r--src/quick/items/qquicktextinput.cpp6
-rw-r--r--src/quick/items/qquicktextinput_p_p.h5
-rw-r--r--tests/auto/qml/ecmascripttests/TestExpectations47
-rw-r--r--tests/auto/quick/pointerhandlers/flickableinterop/tst_flickableinterop.cpp10
12 files changed, 78 insertions, 30 deletions
diff --git a/src/imports/settings/plugin.cpp b/src/imports/settings/plugin.cpp
index 3ac0ad4653..eb7d5027a4 100644
--- a/src/imports/settings/plugin.cpp
+++ b/src/imports/settings/plugin.cpp
@@ -55,7 +55,7 @@ public:
{
Q_ASSERT(QByteArray(uri) == QByteArray("Qt.labs.settings"));
qmlRegisterType<QQmlSettings>(uri, 1, 0, "Settings");
- qmlRegisterType<QQmlSettings,1>(uri, 1, 1, "Settings");
+ qmlRegisterModule(uri, 1, 1); // QTBUG-73239
}
};
diff --git a/src/imports/settings/plugins.qmltypes b/src/imports/settings/plugins.qmltypes
index 1d69fcf7e9..3c9685fe10 100644
--- a/src/imports/settings/plugins.qmltypes
+++ b/src/imports/settings/plugins.qmltypes
@@ -20,20 +20,17 @@ Module {
Property { name: "fileName"; revision: 1; type: "string" }
Method {
name: "value"
- revision: 1
type: "QVariant"
Parameter { name: "key"; type: "string" }
Parameter { name: "defaultValue"; type: "QVariant" }
}
Method {
name: "value"
- revision: 1
type: "QVariant"
Parameter { name: "key"; type: "string" }
}
Method {
name: "setValue"
- revision: 1
Parameter { name: "key"; type: "string" }
Parameter { name: "value"; type: "QVariant" }
}
diff --git a/src/imports/settings/qqmlsettings.cpp b/src/imports/settings/qqmlsettings.cpp
index 310ef62d9f..f7a7d8b055 100644
--- a/src/imports/settings/qqmlsettings.cpp
+++ b/src/imports/settings/qqmlsettings.cpp
@@ -433,9 +433,9 @@ void QQmlSettings::setCategory(const QString &category)
This property holds the path to the settings file. If the file doesn't
already exist, it is created.
- \sa QSettings::fileName, QSettings::IniFormat
+ \since Qt 5.12
- \since Qt.labs.settings 1.1
+ \sa QSettings::fileName, QSettings::IniFormat
*/
QString QQmlSettings::fileName() const
{
@@ -460,9 +460,9 @@ void QQmlSettings::setFileName(const QString &fileName)
Returns the value for setting \a key. If the setting doesn't exist,
returns \a defaultValue.
- \sa QSettings::value
+ \since Qt 5.12
- \since Qt.labs.settings 1.1
+ \sa QSettings::value
*/
QVariant QQmlSettings::value(const QString &key, const QVariant &defaultValue) const
{
@@ -476,9 +476,9 @@ QVariant QQmlSettings::value(const QString &key, const QVariant &defaultValue) c
Sets the value of setting key to value. If the key already exists,
the previous value is overwritten.
- \sa QSettings::setValue
+ \since Qt 5.12
- \since Qt.labs.settings 1.1
+ \sa QSettings::setValue
*/
void QQmlSettings::setValue(const QString &key, const QVariant &value)
{
diff --git a/src/imports/settings/qqmlsettings_p.h b/src/imports/settings/qqmlsettings_p.h
index f73e595557..f9122a58f7 100644
--- a/src/imports/settings/qqmlsettings_p.h
+++ b/src/imports/settings/qqmlsettings_p.h
@@ -65,7 +65,7 @@ class QQmlSettings : public QObject, public QQmlParserStatus
Q_OBJECT
Q_INTERFACES(QQmlParserStatus)
Q_PROPERTY(QString category READ category WRITE setCategory FINAL)
- Q_PROPERTY(QString fileName READ fileName WRITE setFileName FINAL REVISION 1)
+ Q_PROPERTY(QString fileName READ fileName WRITE setFileName FINAL)
public:
explicit QQmlSettings(QObject *parent = 0);
@@ -77,8 +77,8 @@ public:
QString fileName() const;
void setFileName(const QString &fileName);
- Q_REVISION(1) Q_INVOKABLE QVariant value(const QString &key, const QVariant &defaultValue = QVariant()) const;
- Q_REVISION(1) Q_INVOKABLE void setValue(const QString &key, const QVariant &value);
+ Q_INVOKABLE QVariant value(const QString &key, const QVariant &defaultValue = QVariant()) const;
+ Q_INVOKABLE void setValue(const QString &key, const QVariant &value);
protected:
void timerEvent(QTimerEvent *event) override;
diff --git a/src/qml/compiler/qv4codegen.cpp b/src/qml/compiler/qv4codegen.cpp
index 7aa848f6e9..a0a2a17b0f 100644
--- a/src/qml/compiler/qv4codegen.cpp
+++ b/src/qml/compiler/qv4codegen.cpp
@@ -3341,7 +3341,6 @@ bool Codegen::visit(ForEachStatement *ast)
BytecodeGenerator::Label in = bytecodeGenerator->newLabel();
BytecodeGenerator::Label end = bytecodeGenerator->newLabel();
- BytecodeGenerator::Label done = bytecodeGenerator->newLabel();
{
auto cleanup = [ast, iterator, iteratorDone, this]() {
@@ -3360,7 +3359,7 @@ bool Codegen::visit(ForEachStatement *ast)
next.value = lhsValue.stackSlot();
next.done = iteratorDone.stackSlot();
bytecodeGenerator->addInstruction(next);
- bytecodeGenerator->addTracingJumpInstruction(Instruction::JumpTrue()).link(done);
+ bytecodeGenerator->addTracingJumpInstruction(Instruction::JumpTrue()).link(end);
// each iteration gets it's own context, as per spec
{
@@ -3401,11 +3400,10 @@ bool Codegen::visit(ForEachStatement *ast)
error:
end.link();
- // ~ControlFlowLoop will be called here, which will generate unwind code when needed
+ // all execution paths need to end up here (normal loop exit, break, and exceptions) in
+ // order to reset the unwind handler, and to close the iterator in calse of an for-of loop.
}
- done.link();
-
return false;
}
@@ -3664,15 +3662,12 @@ void Codegen::handleTryCatch(TryStatement *ast)
{
Q_ASSERT(ast);
RegisterScope scope(this);
- BytecodeGenerator::Label noException = bytecodeGenerator->newLabel();
{
ControlFlowCatch catchFlow(this, ast->catchExpression);
RegisterScope scope(this);
TailCallBlocker blockTailCalls(this); // IMPORTANT: destruction will unblock tail calls before catch is generated
statement(ast->statement);
- bytecodeGenerator->jump().link(noException);
}
- noException.link();
}
void Codegen::handleTryFinally(TryStatement *ast)
diff --git a/src/qml/doc/src/cppintegration/definetypes.qdoc b/src/qml/doc/src/cppintegration/definetypes.qdoc
index 7f3ff416a1..0cce1895cb 100644
--- a/src/qml/doc/src/cppintegration/definetypes.qdoc
+++ b/src/qml/doc/src/cppintegration/definetypes.qdoc
@@ -691,7 +691,7 @@ public:
QQmlListProperty<Message> messages();
private:
- QList<Message *> messages;
+ QList<Message *> m_messages;
};
\endcode
diff --git a/src/quick/handlers/qquicktaphandler.cpp b/src/quick/handlers/qquicktaphandler.cpp
index 475942b7ac..b4b6bd574e 100644
--- a/src/quick/handlers/qquicktaphandler.cpp
+++ b/src/quick/handlers/qquicktaphandler.cpp
@@ -130,7 +130,7 @@ bool QQuickTapHandler::wantsEventPoint(QQuickEventPoint *point)
case QQuickEventPoint::Updated:
switch (m_gesturePolicy) {
case DragThreshold:
- ret = !overThreshold;
+ ret = !overThreshold && parentContains(point);
break;
case WithinBounds:
ret = parentContains(point);
diff --git a/src/quick/items/qquickevents.cpp b/src/quick/items/qquickevents.cpp
index 31c56b7cb7..2eaab164a0 100644
--- a/src/quick/items/qquickevents.cpp
+++ b/src/quick/items/qquickevents.cpp
@@ -851,7 +851,7 @@ void QQuickEventPoint::setGrabberItem(QQuickItem *grabber)
if (oldGrabberHandler && !oldGrabberHandler->approveGrabTransition(this, grabber))
return;
if (Q_UNLIKELY(lcPointerGrab().isDebugEnabled())) {
- qCDebug(lcPointerGrab) << pointDeviceName(this) << "point" << hex << m_pointId << pointStateString(this)
+ qCDebug(lcPointerGrab) << pointDeviceName(this) << "point" << hex << m_pointId << pointStateString(this) << "@" << m_scenePos
<< ": grab" << m_exclusiveGrabber << "->" << grabber;
}
QQuickItem *oldGrabberItem = grabberItem();
diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp
index a52cd81ef3..5f6fd8f50f 100644
--- a/src/quick/items/qquicktextinput.cpp
+++ b/src/quick/items/qquicktextinput.cpp
@@ -1242,6 +1242,12 @@ void QQuickTextInput::setEchoMode(QQuickTextInput::EchoMode echo)
d->updateDisplayText();
updateCursorRectangle();
+ // If this control is used for password input, we want to minimize
+ // the possibility of string reallocation not to leak (parts of)
+ // the password.
+ if (d->m_echoMode != QQuickTextInput::Normal)
+ d->m_text.reserve(30);
+
emit echoModeChanged(echoMode());
}
diff --git a/src/quick/items/qquicktextinput_p_p.h b/src/quick/items/qquicktextinput_p_p.h
index a2e2f0f66d..7965f3d3f4 100644
--- a/src/quick/items/qquicktextinput_p_p.h
+++ b/src/quick/items/qquicktextinput_p_p.h
@@ -162,6 +162,11 @@ public:
~QQuickTextInputPrivate()
{
+ // If this control is used for password input, we don't want the
+ // password data to stay in the process memory, therefore we need
+ // to zero it out
+ if (m_echoMode != QQuickTextInput::Normal)
+ m_text.fill(0);
}
void init();
diff --git a/tests/auto/qml/ecmascripttests/TestExpectations b/tests/auto/qml/ecmascripttests/TestExpectations
index ed5060a77d..cf7bf3d8ba 100644
--- a/tests/auto/qml/ecmascripttests/TestExpectations
+++ b/tests/auto/qml/ecmascripttests/TestExpectations
@@ -38,14 +38,21 @@ built-ins/Array/prototype/concat/S15.4.4.4_A3_T1.js fails
built-ins/Array/prototype/concat/S15.4.4.4_A3_T2.js fails
built-ins/Array/prototype/concat/S15.4.4.4_A3_T3.js fails
built-ins/Array/prototype/concat/create-ctor-non-object.js fails
+built-ins/Array/prototype/concat/create-ctor-poisoned.js fails
built-ins/Array/prototype/concat/create-proxy.js fails
+built-ins/Array/prototype/concat/create-species-abrupt.js fails
built-ins/Array/prototype/concat/create-species-non-ctor.js fails
+built-ins/Array/prototype/concat/create-species-poisoned.js fails
built-ins/Array/prototype/concat/create-species.js fails
built-ins/Array/prototype/concat/is-concat-spreadable-val-falsey.js fails
+built-ins/Array/prototype/copyWithin/return-abrupt-from-has-start.js fails
built-ins/Array/prototype/every/15.4.4.16-3-29.js fails
built-ins/Array/prototype/filter/create-ctor-non-object.js fails
+built-ins/Array/prototype/filter/create-ctor-poisoned.js fails
built-ins/Array/prototype/filter/create-proxy.js fails
+built-ins/Array/prototype/filter/create-species-abrupt.js fails
built-ins/Array/prototype/filter/create-species-non-ctor.js fails
+built-ins/Array/prototype/filter/create-species-poisoned.js fails
built-ins/Array/prototype/filter/create-species.js fails
built-ins/Array/prototype/includes/length-boundaries.js fails
built-ins/Array/prototype/indexOf/15.4.4.14-3-28.js fails
@@ -53,8 +60,11 @@ built-ins/Array/prototype/indexOf/15.4.4.14-3-29.js fails
built-ins/Array/prototype/join/S15.4.4.5_A4_T3.js fails
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-28.js fails
built-ins/Array/prototype/map/create-ctor-non-object.js fails
+built-ins/Array/prototype/map/create-ctor-poisoned.js fails
built-ins/Array/prototype/map/create-proxy.js fails
+built-ins/Array/prototype/map/create-species-abrupt.js fails
built-ins/Array/prototype/map/create-species-non-ctor.js fails
+built-ins/Array/prototype/map/create-species-poisoned.js fails
built-ins/Array/prototype/map/create-species.js fails
built-ins/Array/prototype/pop/S15.4.4.6_A2_T2.js fails
built-ins/Array/prototype/pop/S15.4.4.6_A3_T1.js fails
@@ -69,11 +79,14 @@ built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-proxy.js f
built-ins/Array/prototype/slice/S15.4.4.10_A3_T1.js fails
built-ins/Array/prototype/slice/S15.4.4.10_A3_T2.js fails
built-ins/Array/prototype/slice/create-ctor-non-object.js fails
+built-ins/Array/prototype/slice/create-ctor-poisoned.js fails
built-ins/Array/prototype/slice/create-non-array-invalid-len.js fails
built-ins/Array/prototype/slice/create-proxied-array-invalid-len.js fails
built-ins/Array/prototype/slice/create-proxy.js fails
+built-ins/Array/prototype/slice/create-species-abrupt.js fails
built-ins/Array/prototype/slice/create-species-neg-zero.js fails
built-ins/Array/prototype/slice/create-species-non-ctor.js fails
+built-ins/Array/prototype/slice/create-species-poisoned.js fails
built-ins/Array/prototype/slice/create-species.js fails
built-ins/Array/prototype/slice/length-exceeding-integer-limit-proxied-array.js fails
built-ins/Array/prototype/slice/length-exceeding-integer-limit.js fails
@@ -83,10 +96,13 @@ built-ins/Array/prototype/sort/comparefn-nonfunction-call-throws.js fails
built-ins/Array/prototype/splice/S15.4.4.12_A3_T1.js fails
built-ins/Array/prototype/splice/clamps-length-to-integer-limit.js fails
built-ins/Array/prototype/splice/create-ctor-non-object.js fails
+built-ins/Array/prototype/splice/create-ctor-poisoned.js fails
built-ins/Array/prototype/splice/create-proxy.js fails
+built-ins/Array/prototype/splice/create-species-abrupt.js fails
built-ins/Array/prototype/splice/create-species-length-exceeding-integer-limit.js fails
built-ins/Array/prototype/splice/create-species-neg-zero.js fails
built-ins/Array/prototype/splice/create-species-non-ctor.js fails
+built-ins/Array/prototype/splice/create-species-poisoned.js fails
built-ins/Array/prototype/splice/create-species.js fails
built-ins/Array/prototype/splice/length-and-deleteCount-exceeding-integer-limit.js fails
built-ins/Array/prototype/splice/length-exceeding-integer-limit-shrink-array.js fails
@@ -130,6 +146,7 @@ built-ins/Atomics/wake/wake-negative.js fails
built-ins/Atomics/wake/wake-one.js fails
built-ins/Atomics/wake/wake-two.js fails
built-ins/Atomics/wake/wake-zero.js fails
+built-ins/DataView/custom-proto-access-throws.js fails
built-ins/DataView/custom-proto-if-object-is-used.js fails
built-ins/Date/prototype/toDateString/format.js fails
built-ins/Date/prototype/toDateString/invalid-date.js fails
@@ -140,8 +157,10 @@ built-ins/Date/prototype/toUTCString/day-names.js fails
built-ins/Date/prototype/toUTCString/format.js fails
built-ins/Date/prototype/toUTCString/month-names.js fails
built-ins/Function/internals/Construct/base-ctor-revoked-proxy.js fails
+built-ins/Function/prototype/Symbol.hasInstance/value-get-prototype-of-err.js fails
built-ins/Function/prototype/bind/BoundFunction_restricted-properties.js fails
built-ins/Function/prototype/bind/instance-name-chained.js fails
+built-ins/Function/prototype/bind/instance-name-error.js fails
built-ins/Function/prototype/bind/instance-name-non-string.js fails
built-ins/Function/prototype/bind/instance-name.js fails
built-ins/Function/prototype/toString/AsyncFunction.js fails
@@ -156,6 +175,15 @@ built-ins/Function/prototype/toString/async-method-object.js fails
built-ins/Function/prototype/toString/method-computed-property-name.js fails
built-ins/JSON/parse/revived-proxy-revoked.js fails
built-ins/JSON/parse/revived-proxy.js fails
+built-ins/JSON/parse/reviver-array-define-prop-err.js fails
+built-ins/JSON/parse/reviver-array-delete-err.js fails
+built-ins/JSON/parse/reviver-array-length-coerce-err.js fails
+built-ins/JSON/parse/reviver-array-length-get-err.js fails
+built-ins/JSON/parse/reviver-call-err.js fails
+built-ins/JSON/parse/reviver-get-name-err.js fails
+built-ins/JSON/parse/reviver-object-define-prop-err.js fails
+built-ins/JSON/parse/reviver-object-delete-err.js fails
+built-ins/JSON/parse/reviver-object-own-keys-err.js fails
built-ins/JSON/stringify/replacer-proxy-revoked.js fails
built-ins/JSON/stringify/replacer-proxy.js fails
built-ins/JSON/stringify/value-proxy.js fails
@@ -179,6 +207,7 @@ built-ins/Object/values/observable-operations.js fails
built-ins/Promise/prototype/catch/this-value-obj-coercible.js fails
built-ins/Promise/prototype/then/capability-executor-not-callable.js fails
built-ins/Promise/prototype/then/ctor-custom.js fails
+built-ins/Promise/prototype/then/ctor-throws.js fails
built-ins/Promise/race/ctx-ctor.js fails
built-ins/Proxy/ownKeys/return-duplicate-entries-throws.js fails
built-ins/Proxy/ownKeys/return-duplicate-symbol-entries-throws.js fails
@@ -190,6 +219,7 @@ built-ins/RegExp/prototype/exec/failure-lastindex-access.js fails
built-ins/RegExp/prototype/exec/success-lastindex-access.js fails
built-ins/RegExp/prototype/source/value-line-terminator.js fails
built-ins/RegExp/prototype/test/S15.10.6.3_A1_T22.js fails
+built-ins/RegExp/u180e.js fails
built-ins/RegExp/unicode_restricted_brackets.js fails
built-ins/RegExp/unicode_restricted_character_class_escape.js fails
built-ins/RegExp/unicode_restricted_identity_escape.js fails
@@ -198,7 +228,6 @@ built-ins/RegExp/unicode_restricted_identity_escape_c.js fails
built-ins/RegExp/unicode_restricted_incomple_quantifier.js fails
built-ins/RegExp/unicode_restricted_octal_escape.js fails
built-ins/RegExp/unicode_restricted_quantifiable_assertion.js fails
-built-ins/RegExp/u180e.js fails
built-ins/Set/prototype/forEach/iterates-values-revisits-after-delete-re-add.js fails
built-ins/SharedArrayBuffer/data-allocation-after-object-creation.js fails
built-ins/SharedArrayBuffer/prototype-from-newtarget.js fails
@@ -207,12 +236,15 @@ built-ins/String/prototype/includes/return-abrupt-from-searchstring-regexp-test.
built-ins/String/prototype/indexOf/position-tointeger-toprimitive.js fails
built-ins/String/prototype/indexOf/position-tointeger.js fails
built-ins/String/prototype/indexOf/searchstring-tostring-toprimitive.js fails
+built-ins/String/prototype/replace/cstm-replace-get-err.js fails
built-ins/String/prototype/replace/cstm-replace-invocation.js fails
built-ins/String/prototype/replace/this-value-not-obj-coercible.js fails
+built-ins/String/prototype/search/cstm-search-get-err.js fails
built-ins/String/prototype/search/cstm-search-invocation.js fails
built-ins/String/prototype/search/invoke-builtin-search-searcher-undef.js fails
built-ins/String/prototype/search/invoke-builtin-search.js fails
built-ins/String/prototype/slice/this-value-not-obj-coercible.js fails
+built-ins/String/prototype/split/cstm-split-get-err.js fails
built-ins/String/prototype/split/cstm-split-invocation.js fails
built-ins/String/prototype/startsWith/return-abrupt-from-searchstring-regexp-test.js fails
built-ins/String/prototype/toLocaleLowerCase/Final_Sigma_U180E.js fails
@@ -246,14 +278,22 @@ built-ins/TypedArray/prototype/sort/sorted-values-nan.js fails
built-ins/TypedArray/prototype/sort/sorted-values.js fails
built-ins/TypedArrays/ctors/buffer-arg/defined-negative-length.js fails
built-ins/TypedArrays/ctors/object-arg/as-generator-iterable-returns.js fails
+built-ins/TypedArrays/ctors/object-arg/iterating-throws.js fails
built-ins/TypedArrays/ctors/object-arg/iterator-not-callable-throws.js fails
+built-ins/TypedArrays/ctors/object-arg/iterator-throws.js fails
built-ins/TypedArrays/ctors/typedarray-arg/detached-when-species-retrieved-different-type.js fails
built-ins/TypedArrays/ctors/typedarray-arg/detached-when-species-retrieved-same-type.js fails
+built-ins/TypedArrays/ctors/typedarray-arg/other-ctor-buffer-ctor-access-throws.js fails
built-ins/TypedArrays/ctors/typedarray-arg/other-ctor-buffer-ctor-custom-species.js fails
built-ins/TypedArrays/ctors/typedarray-arg/other-ctor-buffer-ctor-not-object-throws.js fails
+built-ins/TypedArrays/ctors/typedarray-arg/other-ctor-buffer-ctor-species-access-throws.js fails
built-ins/TypedArrays/ctors/typedarray-arg/other-ctor-buffer-ctor-species-not-ctor-throws.js fails
+built-ins/TypedArrays/ctors/typedarray-arg/other-ctor-buffer-ctor-species-prototype-throws.js fails
+built-ins/TypedArrays/ctors/typedarray-arg/same-ctor-buffer-ctor-access-throws.js fails
built-ins/TypedArrays/ctors/typedarray-arg/same-ctor-buffer-ctor-species-custom.js fails
built-ins/TypedArrays/ctors/typedarray-arg/same-ctor-buffer-ctor-species-not-ctor.js fails
+built-ins/TypedArrays/ctors/typedarray-arg/same-ctor-buffer-ctor-species-prototype-throws.js fails
+built-ins/TypedArrays/ctors/typedarray-arg/same-ctor-buffer-ctor-species-throws.js fails
built-ins/TypedArrays/ctors/typedarray-arg/same-ctor-buffer-ctor-value-not-obj-throws.js fails
built-ins/TypedArrays/from/arylk-get-length-error.js fails
built-ins/TypedArrays/from/arylk-to-length-error.js fails
@@ -282,7 +322,7 @@ built-ins/TypedArrays/internals/Get/key-is-not-integer.js fails
built-ins/TypedArrays/internals/Get/key-is-not-minus-zero.js fails
built-ins/TypedArrays/internals/Get/key-is-out-of-bounds.js fails
built-ins/TypedArrays/internals/Set/detached-buffer.js fails
-built-ins/TypedArrays/internals/Set/tonumber-value-throws.js strictFails
+built-ins/TypedArrays/internals/Set/tonumber-value-throws.js fails
built-ins/global/global-object.js fails
built-ins/global/property-descriptor.js fails
built-ins/isFinite/toprimitive-not-callable-throws.js fails
@@ -290,8 +330,8 @@ built-ins/isNaN/toprimitive-not-callable-throws.js fails
language/computed-property-names/class/static/method-number.js fails
language/computed-property-names/class/static/method-string.js fails
language/computed-property-names/class/static/method-symbol.js fails
-language/eval-code/direct/new.target.js fails
language/eval-code/direct/new.target-arrow.js fails
+language/eval-code/direct/new.target.js fails
language/eval-code/direct/non-definable-function-with-function.js sloppyFails
language/eval-code/direct/non-definable-function-with-variable.js sloppyFails
language/eval-code/direct/non-definable-global-function.js sloppyFails
@@ -316,6 +356,7 @@ language/eval-code/indirect/non-definable-function-with-function.js sloppyFails
language/eval-code/indirect/non-definable-function-with-variable.js sloppyFails
language/eval-code/indirect/non-definable-global-function.js fails
language/eval-code/indirect/non-definable-global-generator.js fails
+language/eval-code/indirect/non-definable-global-var.js strictFails
language/eval-code/indirect/super-call.js fails
language/eval-code/indirect/super-prop.js fails
language/eval-code/indirect/this-value-func.js strictFails
diff --git a/tests/auto/quick/pointerhandlers/flickableinterop/tst_flickableinterop.cpp b/tests/auto/quick/pointerhandlers/flickableinterop/tst_flickableinterop.cpp
index e73588bdef..cf2ac4a830 100644
--- a/tests/auto/quick/pointerhandlers/flickableinterop/tst_flickableinterop.cpp
+++ b/tests/auto/quick/pointerhandlers/flickableinterop/tst_flickableinterop.cpp
@@ -301,7 +301,7 @@ void tst_FlickableInterop::touchDragSlider()
// Drag the slider in the allowed (vertical) direction
tappedSpy.clear();
- QPoint p1 = knob->mapToScene(knob->clipRect().center()).toPoint();
+ QPoint p1 = knob->mapToScene(knob->clipRect().center()).toPoint() - QPoint(0, 8);
QTest::touchEvent(window, touchDevice).press(1, p1, window);
QQuickTouchUtils::flush(window);
QTRY_VERIFY(slider->property("pressed").toBool());
@@ -343,12 +343,12 @@ void tst_FlickableInterop::mouseDragSlider_data()
QTest::addColumn<bool>("expectedDragHandlerActive");
QTest::addColumn<bool>("expectedFlickableMoving");
- QTest::newRow("drag down on knob of knobSlider") << "knobSlider" << QPoint(0, 0) << QPoint(0, 1) << true << true << false;
+ QTest::newRow("drag down on knob of knobSlider") << "knobSlider" << QPoint(0, -8) << QPoint(0, 1) << true << true << false;
QTest::newRow("drag sideways on knob of knobSlider") << "knobSlider" << QPoint(0, 0) << QPoint(1, 0) << true << false << true;
QTest::newRow("drag down on groove of knobSlider") << "knobSlider" << QPoint(0, 20) << QPoint(0, 1) << false << false << true;
QTest::newRow("drag sideways on groove of knobSlider") << "knobSlider" << QPoint(0, 20) << QPoint(1, 0) << false << false << true;
- QTest::newRow("drag down on knob of grooveSlider") << "grooveSlider" << QPoint(0, 0) << QPoint(0, 1) << true << true << false;
+ QTest::newRow("drag down on knob of grooveSlider") << "grooveSlider" << QPoint(0, -8) << QPoint(0, 1) << true << true << false;
QTest::newRow("drag sideways on knob of grooveSlider") << "grooveSlider" << QPoint(0, 0) << QPoint(1, 0) << true << false << true;
QTest::newRow("drag down on groove of grooveSlider") << "grooveSlider" << QPoint(0, 20) << QPoint(0, 1) << false << true << false;
QTest::newRow("drag sideways on groove of grooveSlider") << "grooveSlider" << QPoint(0, 20) << QPoint(1, 0) << false << false << true;
@@ -391,6 +391,10 @@ void tst_FlickableInterop::mouseDragSlider()
QCOMPARE(slider->property("value").toInt(), 49);
p1 += dragDirection; // one more pixel
QTest::mouseMove(window, p1);
+ // After moving by the drag threshold, the point should still be inside the knob.
+ // However, QQuickTapHandler::wantsEventPoint() returns false because the drag threshold is exceeded.
+ // Therefore QQuickTapHandler::setPressed(false, true, point) is called: the active state is canceled.
+ QCOMPARE(slider->property("pressed").toBool(), false);
QCOMPARE(drag->active(), expectedDragHandlerActive);
// drag farther, to make sure the knob gets adjusted significantly
p1 += QPoint(10 * dragDirection.x(), 10 * dragDirection.y());