code: function buildStructFactory () {
      cachedFieldNames = []
      for (let i = 0; i < fields.length; i++) {
        const [key, value] = fields[i]
        if (key) {
          cachedFieldNames.push(key)
        } else if (value && value[kFieldNames]) {
          cachedFieldNames.push(...value[kFieldNames]())
        }
      }
  
      const objectDecl = cachedFieldNames.reduce((str, name) => {
        return `${str}  ${JSON.stringify(name)}: undefined,\n`
      }, '')
  
      // eslint-disable-next-line no-new-func
      structFactory = Function(`return {\n${objectDecl}}`)
    }
docs: Build a function that creates an entire struct object with all fields set to undefined. This means V8 doesn't have to build up the structure for every struct after every assignment, saving some time  Done lazily because we have a .field() method for some reason…