[Interest] QJSEngine won't evaluate octal literal

Fabrice Mousset | GEOCEPT GmbH fabrice.mousset at geocept.com
Tue Aug 3 09:06:48 CEST 2021


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-bounces at qt-project.org> Im Auftrag von Hamish
> Moffatt via Interest
> Gesendet: Dienstag, 3. August 2021 08:36
> An: Qt Interest <interest at 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 at qt-project.org
> https://lists.qt-project.org/listinfo/interest


More information about the Interest mailing list