Since Chrome 148, Math.tanh leaks the host OS at the bit level
Since Chrome 148, Math.tanh reads the host libm and leaks the real OS via trailing bits — a subtle new fingerprinting and spoofing-detection vector.
Starting with Chrome 148, V8 stopped computing Math.tanh with its own bundled fdlibm port and switched to calling the platform's std::tanh, which reads the host libm — glibc on Linux, Apple's libsystem_m on macOS, UCRT on Windows. Because these libraries don't guarantee identical rounding, the same input now returns different trailing bits depending on the real operating system underneath.
The change landed via V8 commit c1486295ae5 in V8 14.8.57 (Chrome 148); Chrome 147 and earlier don't leak this way. Nearly every other Math.* function stays statically linked inside V8 and produces identical output everywhere, so tanh is the sole exception in JavaScript math. CSS trig functions (sin, cos, atan2, etc.), by contrast, have always called the host libm directly, and Web Audio's DynamicsCompressor uses scalar libsystem_m on Mac while its FFT and vector stages run through Accelerate/vDSP.
The implication is concrete for anti-detect and stealth-browser engineering: claiming one OS via User-Agent while your math backend produces another OS's bit pattern is a self-contradicting signal. Closing the gap isn't about adding noise — it requires reproducing the target OS's exact algorithm, including minimax coefficients, argument-reduction constants, and fused-multiply-add behavior, bit for bit.