Repository navigation
The shared parsers now use len, charAt, and nextCharPos. The JavaScript prototype keeps its ordinary string operations; ARM uses UTF-8 byte offsets and retains strlen for code-point counts. SOM string lengths and indexing, and $indexOf, use the same native offset convention.
Frequently written ARM VM globals now occupy a separate 4 KiB page, avoiding QEMU code-page write checks during ordinary calls and compilation.
Validated with JavaScript-host checks and native QEMU: T0/JS/SOM factorial, UTF-8 and malformed-input handling, reader switching, and reset.
Try the browser REPL and find direct QEMU commands at https://adamvy.github.io/TURTLES/ . The attached ELF and raw images target QEMU virt-8.2, Cortex-A53, 512 MiB RAM.