You lose a lot of information going from CS -> ES5 -> ES6, so decaffeinate has an inherent advantage since it knows your original code. With decaffeinate, it converts classes to classes, destructures to destructures, array spread to array spread, etc. Also, the CS output destroys all inline comments and all formatting.