The code I write in ES2015 makes very heavy use of arrow functions, destructuring parameters, the ellipsis syntax for extending arrays and objects, and the syntax for evaluated object literal keys.<p>Random example:<p><pre><code>    DRAFT_LOADED: ({
      state: { drafts },
      payload: { draft }
    }) =&gt; ({
      drafts: {
        ...drafts,
        [draft.id]: draft
      }
    })
</code></pre>
In classic JavaScript, I&#x27;d have to write something like:<p><pre><code>    RESULTS_LOADED: function(state, payload) {
      return {
        drafts: Object.assign(
          {}, state.drafts,
          keyValue(payload.draft.id, payload.draft)
        )
      }
    }
</code></pre>
The new syntax rules combine to significantly improve the clarity of this kind of transformation function.