code: function compile (format, tokens, isJSON, space, data) {
    if (format === false) {
      return JSON.stringify(data, null, space)
    }
  
    const js = format.replace(re, (m, name, arg) => {
      const tokenArgs = 'Array.prototype.slice.call(arguments).slice(4)'
      const output = `tokens[${utils.stringify(name)}](...(${tokenArgs}), ${utils.stringify(arg)})`
      const template = `${output} == null ? '-' : ${output}`
      const token = tokens[name]
  
      if (!token) {
        return isJSON ? utils.stringify(m) : m
      } else if (!isJSON) {
        const interim = eval(template)
        return typeof interim === 'object' ? utils.stringify(interim) : interim
      }
  
      return `(${template})`
    })
  
    if (isJSON) {
      return JSON.stringify(eval(`(${js})`), null, space)
    }
  
    return js
  }
docs: @function
  @private
  
  Compile the passed format string based on the aggregated
  data and further options, see below. If the format is
  disabled, get the stringified data. Otherwise get a the
  evaluated and – if necessary – stringified format string.
  
  @param {string | boolean} format The format to be compiled
  @param {Object.<Function>} tokens The list of all registered tokens
  @param {boolean} isJSON The format is a JSON-like string
  @param {string | number} space The indentation for `JSON.stringify`
  @param {Object} data The data aggregated by `pino`
  @returns {string} The compiled format string
   /* eslint-disable no-eval