Wenn man einen JIT-Compiler in ein Rust-Programm einbaut kommt irgendwann der Punkt, andem man etwas wie "unsafe { func_pointer() }" aufruft. Man umgeht also Rusts Speichersicherheit by design. Wenn man dann noch im JIT-Compiler Bugs hat, dann bringt einem auch nichts, dass Javascript der Spezifikation nach eigentlich auch speichersicher ist.
Gut, könnte man jetzt sagen, bei Compiler-Bugs hilft halt eine speichersichere Sprache generell nichts. Aber der Unterschied zwischen JS im Browser und anderen Sprachen ist, dass bei anderen Sprachen höchstens die Daten untrusted sind, während bei JS beides, Code und Daten, untrusted sind. Compiler-Bugs lassen sich also viel leichter ausnutzen. Vielleicht sollten wir uns davon verabschieden, untrusted Code in einen Compiler zu stecken, stattdessen ihn in der vergleichsweise sicheren Runtime lassen, in der er ursprünglich eh läuft und endlich die Performance-Flaws im Sprachdesign von Javascript fixen (angefangen bei dynamic typing, es benutzt eh fast jeder Typescript). Oder noch besser WASM endlich mal first class machen.