callAll = (fs, args, i = 0) => {
  try {
    for (; i < fs.length; i++) {
      fs[i](...args);
    }
  } finally {
    if (i < fs.length) {
      callAll(fs, args, i + 1);
    }
  }
}
Calls all functions in `fs` with args. Only throws after all functions were called.

@param {Array<function>} fs
@param {Array<any>} args