Modern JS has standard HoFs (on arrays) and an iteration protocol.
> undeclared vars leaking to global scope
Strict mode (which syntactic ES6 features enable by default e.g. class contents are in strict mode always).
> baroque keywords like "with"
Which can trivially be linted away.
> ES6 did borrow many good features from CS
Not really from CS, rather from similar (much older) sources CS got them from.