This PR is a tiny improvement to the `walk(…)` implementations, not a super big deal but thought about something and was pleasently surprised that it did have an impact. The idea is twofold: 1. Reduce array allocations while walking to build a `path` to the current node. This re-uses the existing `path` array and pushes the current node before the recursive call and pops it afterwards. This way we don't need to allocate a new array for each recursive call. Testing this on Tailwind UI means ~14k fewer allocations. 2. Instead of always calling `.splice(…)`, we can directly update a single value in the array if we are replacing a node with another node. Testing on the Tailwind UI codebase, this results in:  --------- Co-authored-by: Philipp Spiess <hello@philippspiess.com> |
||
|---|---|---|
| .. | ||
| @tailwindcss-cli | ||
| @tailwindcss-node | ||
| @tailwindcss-postcss | ||
| @tailwindcss-standalone | ||
| @tailwindcss-upgrade | ||
| @tailwindcss-vite | ||
| internal-example-plugin | ||
| tailwindcss | ||
| tsconfig.base.json | ||