Retr0id 2 days ago

Modern javascript engines (namely V8) avoid RWX, although last time I checked there's been a backslide as part of WASM implementation.

CPython also no longer appears to create RWX mappings even for ctypes, although you can of course still mmap them manually.

  • egberts1 2 days ago

    Wow. So V8 actually back to optimizing the entire bytecode region in one fell swoop?

    I had thought that such V8 optimization were still occuring (as of Chrome Blink81/SparkPlug) during JavaScript execution of untouched bytecode as a form of overhead reduction of its startup.

    https://egbert.net/blog/articles/javascript-jit-engines-time...

    • Retr0id 2 days ago

      I don't know what V8 actually does, but one possible strategy is to have a pair of RW and RX mappings to the same physical pages (or just keep flipping permissions between the two)