Top 4 JavaScript javascript-engine Projects
-
Furthermore, the new architecture decouples the JavaScript interface from the engine, enabling the use of other JavaScript engines such as Hermes, V8, or Chakra.
-
Fast math optimizations can break code like this by breaking isNaN.
I was porting a C++ project to a certain platform - and that platform enabled a -ffast-math equivalent by default in Release (but not Debug) builds! This broke duktape, a JS engine said project embedded, in some nasty and subtle ways. Instead of storing a number/pointer/??? (8 bytes) + type tag (4? bytes) for each dynamically typed JS value, duktape can bit-pack values into a single 8 byte "double" value by storing object/string handles as NaN values - this isn't an uncommon trick for dynamically typed scripting stuff:
https://github.com/svaarala/duktape/blob/c3722054ea4a4e50f48...
Naturally, the -ffast-math equivalent broke isNaN checks, which caused random object/string handles to be mistakenly reinterpreted as "numbers" - but only in Release builds, for this one particular platform, in one rarely taken branch, so neither QA nor CI caught it, leading to hours of manufacturing a repro case, stepping through an absurd amount of code, and then finally looking at the default build rules and facepalming.
Cursing the platform vendor under my breath, I overrode the defaults to align with the defaults of every other config x platform combination we already had: no fast math. If you want those optimizations, use SSE-friendly NaN-avoiding intrinsics - or, if you must use the compiler flags, ensure you do so consistently across build configs and platforms, perhaps limited to a few TUs or modules if possible. This allows you to have a chance at using your Debug builds to debug the resulting "optimizations".
-
Appwrite
Appwrite - The Open Source Firebase alternative introduces iOS support . Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!
-
Tangentially related: jsvu seems to be the easiest way to install most JS engines on most platforms. This can be useful comparing performance or compatibility across JS runtimes without firing up emulators.
-
For more information on how to use various types, please visit YantraJS Examples
JavaScript javascript-engine related posts
- Exploring React Native’s new architecture
- How web browsers work - executing the Javascript (part 5, with illustrations)💻🌠
- Optimizations Enabled by -ffast-Math
- Jsc: My New Best Friend
- Can C++ and JS be used together?
- Lexikos just released AutoHotkey-jk, a Javascript port for AHK
- Introduction to the most popular language JAVASCRIPT🚀
Index
What are some of the best open-source javascript-engine projects in JavaScript? This list will help you:
Project | Stars | |
---|---|---|
1 | ChakraCore | 8,659 |
2 | Duktape | 5,240 |
3 | jsvu | 1,594 |
4 | YantraJS | 31 |
Are you hiring? Post a new remote job listing for free.