  setter: function(path) {
    var parts = normalizePath(path)

    return (
      setCache.get(path) ||
      setCache.set(path, function setter(data, value) {
        var index = 0,
          len = parts.length
        while (index < len - 1) {
          data = data[parts[index++]]
        }
        data[parts[index]] = value
      })
    )
  },