Traditional A/V are broken for the web.
With dynamic languages like JS and ActionScript, their approach is to fingerprint 10 different strains of the same threat. Then the 11th strain can be generated in a few seconds with new obfuscation.
So the A/V only starts working if/when eventually a native code payload reaches the target.