One way in which this could have come about is that
Math.randomwasn’t supported in all relevant browsers when the library author wrote the library. So they had to roll their own randomness with blackjack and hookers. Later the web standards evolved and the author was able to remove the custom code, but now had people relying on his library’s exposing agetRandomfunction.You see this kind of stuff in C all the time when a code base supports multiple OSs by using macros.
Yes, though at least with C you have the compiler to optimize the cruft out of your binary and end up with a nice, clean program.
With JavaScript this is going to incur some runtime cost everywhere this library is used, even if it only happens once when getting optimized out by the JIT compiler.
Considering how many websites were temporarily obliterated by the
left-padfiasco, being an npmjs maintainer might be an even higher power-to-effort ratio (by virtue of a near-zero denominator) than being a billionaire CEO.How to forget my first pull request.



