aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmlecmascript
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qml/qqmlecmascript')
-rw-r--r--tests/auto/qml/qqmlecmascript/data/stringify_qtbug_50592.qml12
-rw-r--r--tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp22
2 files changed, 29 insertions, 5 deletions
diff --git a/tests/auto/qml/qqmlecmascript/data/stringify_qtbug_50592.qml b/tests/auto/qml/qqmlecmascript/data/stringify_qtbug_50592.qml
new file mode 100644
index 0000000000..e739b85ef8
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/stringify_qtbug_50592.qml
@@ -0,0 +1,12 @@
+import QtQuick 2.0
+
+Item {
+ Image {
+ id: img
+ source: "http://example.org/some_nonexistant_image.png"
+ visible: false
+ }
+
+ property string source: JSON.stringify(img.source)
+}
+
diff --git a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
index c734a0a011..be04ec2bf3 100644
--- a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
+++ b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
@@ -330,6 +330,7 @@ private slots:
void qtbug_52340();
void qtbug_54589();
void qtbug_54687();
+ void stringify_qtbug_50592();
private:
// static void propertyVarWeakRefCallback(v8::Persistent<v8::Value> object, void* parameter);
@@ -7258,14 +7259,16 @@ namespace QV4 {
namespace Heap {
struct WeakReferenceSentinel : public Object {
- WeakReferenceSentinel(WeakValue *weakRef, bool *resultPtr)
- : weakRef(weakRef)
- , resultPtr(resultPtr) {
-
+ void init(WeakValue *weakRef, bool *resultPtr)
+ {
+ Object::init();
+ this->weakRef = weakRef;
+ this->resultPtr = resultPtr;
}
- ~WeakReferenceSentinel() {
+ void destroy() {
*resultPtr = weakRef->isNullOrUndefined();
+ Object::destroy();
}
WeakValue *weakRef;
@@ -8101,6 +8104,15 @@ void tst_qqmlecmascript::qtbug_54687()
engine.evaluate("12\n----12");
}
+void tst_qqmlecmascript::stringify_qtbug_50592()
+{
+ QQmlComponent component(&engine, testFileUrl("stringify_qtbug_50592.qml"));
+
+ QScopedPointer<QObject> obj(component.create());
+ QVERIFY(obj != 0);
+ QCOMPARE(obj->property("source").toString(), QString::fromLatin1("http://example.org/some_nonexistant_image.png"));
+}
+
QTEST_MAIN(tst_qqmlecmascript)
#include "tst_qqmlecmascript.moc"