This value was mostly pass-through: we read it and wrote it back, without interpretting it, so it was easy for this bug to sneak through. The one catch we didn't handle is the debug flag is always true in practice, but with ES2015 we now see the incorrect flag triggering incorrect behavior. This was annoying to isolate. Co-authored-by: Jesse Wilson <jwilson@squareup.com>
Zipline Bytecode
This module can read and write the QuickJS objects produced with JS_WriteObject(). This is the
same encoding used by QuickJs.compile().
Limitations
The QuickJS serialized object format is undocumented and subject to change. The structure of the
serialized data implicitly depends on build flags (such as CONFIG_ATOMICS and CONFIG_BIGNUM).
This module supports the exact QuickJS version that builds with this project.
Updating QuickJS
Build with DUMP_READ_OBJECT to see a human-readable interpretation of the encoded data. The
following features are most likely to get out of sync:
-
Atoms are built-in well-known strings. Get the list by defining
DUMP_ATOMS, which is a subset of the lines inquickjs-atom.h. Keep this in sync withAtomSet.BUILT_IN_ATOMS. -
Flags in
JsFunctionBytecode,JsVarDef, andJsClosureVarmust be kept in sync.