This thread references and identifies the problem with a code exampled attached.
I have noticed that QML behaves differently when these objects are passed to the script as a signal.
A singleShot QTimer that passes the object1 twice to the script. Once declared class and the second as a QObject.
When passed as a class it is casted as a QVariant and I will not have access to any properties or slots.
When passed as a QObject I will have access to properties but is also casted differently then when it is passed using the doSomething() function. (Clicking anywhere in the window)