I don't know why (perhaps the "strict mode" is always active with Qt?), but you 
to use 0o11 to force octal encoding to avoid confusion with binary encoding 
(0b11).

QJSEngine eng;
auto jsv = eng.evaluate("(function(){return 0o11;})()");
qDebug() << jsv.isError() << jsv.toString() << jsv.toVariant();

Regards

Fabrice Mousset

> -----Ursprüngliche Nachricht-----
> Von: Interest <interest-boun...@qt-project.org> Im Auftrag von Hamish
> Moffatt via Interest
> Gesendet: Dienstag, 3. August 2021 08:36
> An: Qt Interest <interest@qt-project.org>
> Betreff: [Interest] QJSEngine won't evaluate octal literal
> 
> I have the following test code to evaluate an octal literal which I'm running 
> on
> Qt 5.12 and 5.15;
> 
>              QJSEngine eng;
>              auto jsv = eng.evaluate("(function(){return 011;})()");
>              qDebug() << jsv.isError() << jsv.toString() << jsv.toVariant();
> 
> This outputs:
> 
> true "SyntaxError: Expected token `;'" QVariant(QVariantMap, QMap())
> 
> 
> It works if I use hex literals, and the octal code works in node.js. Why 
> doesn't
> it work in QJSEngine?
> 
> 
> Hamish
> 
> _______________________________________________
> Interest mailing list
> Interest@qt-project.org
> https://lists.qt-project.org/listinfo/interest
_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to