// code is data: find the literal 'A' inside f's compiled words and rewrite it. // on the jit the store lands on translated code, which gets dropped and // retranslated on the next call. fn f() { putc('A'); return 0; } fn litw(v) { return v + v + 1; } // how the vm encodes a literal push fn main() { var p = f; f(); while (*p != litw('A')) p++; *p = litw('B'); f(); *p = litw('C'); f(); putc(10); return 0; }