Bun runs in the tab and there is no Bun in it, so the interesting part is what refuses
Bun is a single native binary written in Zig around JavaScriptCore. There is no
wasm32 build of it, there is not going to be one soon, and a browser tab
cannot execute a Mach-O or ELF file regardless.
So bun index.ts in a page is not Bun. It is Bun's API, implemented on top of
the Node runtime these posts keep describing,
and the honest version of that sentence is the whole subject here. A
compatibility shim is only useful if you can tell, from inside it, which parts
are real. Most of this post is about the parts that are not, and how they say
so.