Assigning to a variable that was not declared with
var will result in implicitly creating a global variable, which often results in undesirable side effects (or even worse, throw an error if the code is in strict mode).
It is also important noting that the TC39, the technical committee which steers the ECMAScript language specification, has decided against versioning the language. That is, all new spec. publications will always add to the language in a backwards compatible way, and browsers are already gradually shipping ES2015 features.
As for CodeCombat, it is possible to add support for
An issue though, is that due to the way CodeCombat/Aether implements the yielding logic, we don’t even have full ES5 support yet. So I believe a good plan would be to raise the bar gradually, by focusing on adding support for the missing ES5 features and then move to the next language spec. edition(s).