Details
Description
QVariant conversion to QScriptValue unwrap an internal QVariant value. Behavior is correct and documented. In most cases it is nice feature, but problems start when a QVariant contains a QVariant. I believe that QVariant value should be unwrap at most one time.
So this code returns true and it is ok:
return QScriptValue(123) == qScriptValueFromVariant(QVariant(123))
Now, this code returns true but it is wrong:
QVariant tmp1(123);
QVariant tmp2(QMetaType::QVariant, &tmp);
return QScriptValue(123) == qScriptValueFromVariant(tmp2)
qScriptValueFromVariant(tmp2) should return a QScriptValue that contains a QVariant that contains an int(123). So qScriptValueFromVariant(tmp2).isVariant() should be true.