Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
I am astonished at the omission of ChakraCore, open sourced by Microsoft but sadly abandoned by them after they switched Edge to Chromium: https://github.com/chakra-core/ChakraCore. But it looks like it’s still chugging along as a community effort rather than being completely abandoned.
I have used a few js engines in the past (nashorn, rhino, otto) and all had problems with missing edge cases in the APIs or really weird quirks in the interop with the host environment.
https://github.com/tc39/test262 is the ecma test suite.
rhino for example has extensive gaps:
https://github.com/mozilla/rhino/blob/master/testsrc/test262...
It is really frustrating that in the end, there aren't really that many actually compliant implementations. Especially implementing the exact regex behaviour.
Interesting to see a JS implementation written in JS:
https://github.com/engine262/engine262/
(The readme explains what the point of it is.)
I made a toy ECMAScript interpreter a couple of years ago: https://github.com/mras0/mjs
Not really notable, expect perhaps being the only one on the list with an ES1 mode? :) (Can't promise it's accurate though, as it was hard to find examples).
Otherwise pretty boring (C++, hand-written parser, AST interpreter, ES1/ES3/ES5.1 support minus some regexp/timezone/locale stuff).
Ok sweet I see now. They used JavaScriptCore until 2011 or so, switched to V8 until 2013, and have been using their own implementation, q4, since then. The source code seems to be here: https://github.com/qt/qtdeclarative/tree/dev/src/qml/jsrunti....
Thanks! Will add and be live shortly.