var makeAFailure = (function() {
  function onSuccess(data) {}

  function onFailure(data) {
    throw new Error('failed!');
  }

  function invoke(data) {
    var cb = null;
    if (data.failed) {
      cb = onFailure;
    } else {
      cb = onSuccess;
    }
    cb(data);
  }

  function test() {
    var data = {failed: true, value: 42};
    invoke(data);
  }

  return test;
})();