Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
5.15.0
Description
class MyClass: QObject { Q_OBJECT public: Q_INVOKABLE void testEmpty(QString s) { Q_ASSERT(!s.isNull()); } Q_INVOKABLE void testUndefined(QString s) { Q_ASSERT(is.isNull()); } };
In JS:
var obj = new MyClass(); obj.testEmpty(""); obj.testUndefined(undefined);
Expected:
- "" is converted to an empty, but non-null QString object
- undefined is converted to empty AND null QString object
Observed:
- QString is null in both cases
The QString documentation says explicitly:
QString().isNull(); // returns true QString("").isNull(); // returns false QString("abc").isNull(); // returns false
Therefore the current conversion behavior is not intuitive.