browsers that are out there already
C is compiled
JS makes heavy use of pollyfills where needed, bridging the gap between old browsers and new ones.
A binary might still require a specific shared lib version, specific architecture, whatever, it's not a magic bullet.
update gcc and any needed libraries
Doesn't always work when working with legacy unupdated dependencies.
security concerns... ...scripts to take over the users compurer
Wouldn't having compiled code running in the browser (via webassembly) be actually worse for security? With JS you can at least see the source that's being run, with compiled WA, not so much. Don't really understand this point.