ES6 features that are syntax breaking, the fat arrow in particular. This means, if the arrow function is encountered by a browser that doesn't support ES6 arrows, it's cause a syntax error. If the site is following best practise and combining all their JavaScript into a single file, this means that all their JavaScript just broke (I've personally seen this on JS Bin when we used jshint which uses ES5 setters and broke IE8). I've asked people on the TC39 group and JavaScript experts as to what the right approach here is (bear in mind this is still early days). The answer was a mix of: Use feature detection (including for syntax breaking features) and conditionally load the right script, either the ES5 or ES6 Transpile your ES6 to ES5 and make both available This seems brittle and the more complexity the more likely that as time goes by, new projects will leave out the transpile part, and forget about supporting older browsers - or even newer browsers that don't ship with ES6 support (perhaps because the VM footprint is smaller and has to work in a super low powered environment).