Lower `@returnAddress` to a constant 0 in Emscripten release builds

Emscripten currently implements `emscripten_return_address()` by calling
out into JavaScript and parsing a stack trace, which introduces
significant overhead that we would prefer to avoid in release builds.

This is especially problematic for allocators because the generic parts
of `std.mem.Allocator` make frequent use of `@returnAddress`, even
though very few allocator implementations even observe the return
address, which makes allocators nigh unusable for performance-critical
applications like games if the compiler is unable to devirtualize the
allocator calls.
f45f9649e3Carl Åstholm committed on 3/23/2025, 9:13:19 PM· committed by Andrew Kelleyparent9f235a1
3 files changedLine totals unavailable