mirror of
https://github.com/tailwindlabs/tailwindcss.git
synced 2025-12-08 21:36:08 +00:00
walk(…) performance (#15529)
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>
A utility-first CSS framework for rapidly building custom user interfaces.
Documentation
For full documentation, visit tailwindcss.com.
Community
For help, discussion about best practices, or any other conversation that would benefit from being searchable:
Discuss Tailwind CSS on GitHub
For chatting with others using the framework:
Join the Tailwind CSS Discord Server
Contributing
If you're interested in contributing to Tailwind CSS, please read our contributing docs before submitting a pull request.
Description
Languages
JavaScript
90.6%
CSS
7.6%
HTML
1.7%