message: perf: cache plugin execute result
diff: @@ -37,6 +37,15 @@ export class Sheet {
  const middlewareList = [coreMiddleware, ...middleware]
  for (let [propKey, propValue] of Object.entries(props)) {
  +
  + /**
  + * can't serialize propValue so use propKey as cache key
  + */
  + const pluginCacheKey = propKey
  +
  + const pluginCacheValue = styli.cache[pluginCacheKey]
  +
  + if (!pluginCacheValue || propValue !== true ) {
  // handle theme
  if (typeof propValue === 'function') {
  propValue = propValue(this.theme)
  @@ -54,9 +63,13 @@ export class Sheet {
  if (!isEqual(newAtom, initialAtom)) {
  this.addAtom(newAtom)
  + styli.cache[pluginCacheKey] = newAtom
  break
  }
  }
  + } else {
  + this.addAtom(pluginCacheValue)
  + }
  }
  }
  