code: function tryCatch1 (fn, arg1) {
    var errorObject = {};
    try {
      errorObject.value = fn(arg1);
    }
    catch (e) {
      errorObject.error = e;
    }
    return errorObject;
  }
docs: try..catch causes deoptimisation in V8 and most other JS engines. Using a specialist function minimises the impact.