code: function once (fn) {
    let called = false
    return function (...args) {
      if (called) return
      called = true
      return fn.apply(this, args)
    }
  }
docs: in Webpack 2, require.ensure now also returns a Promise so the resolve/reject functions may get called an extra time if the user uses an arrow function shorthand that happens to return that Promise.