| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
View your CI Pipeline Execution ↗ for commit 3d0b554
💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗ ☁️ Nx Cloud last updated this comment at 2026-10-06 23:01:25 UTC |
Sorry, something went wrong.
npm i https://pkg.pr.new/@nativescript/core@11507 npm i https://pkg.pr.new/@nativescript/vite@11507 npm i https://pkg.pr.new/@nativescript/webpack@11507 commit: 3d0b554 |
Sorry, something went wrong.
…opying - requestLayout returns early when the view already climbed in this turn and is still flagged. CSS calls it once per layout-affecting property, so each call climbed to the root with a native setNeedsLayout at every level. A layout pass in between clears the flag, so the next request climbs again; the set is cleared by a microtask. - insertNativeSubview calls addSubview without reading `subviews` when no index is given. Reading it copies the array, so appending k children was O(k^2).
A synchronous layout pass (e.g. layoutIfNeeded) can lay out an ancestor and clear its flag while skipping a collapsed child, which stays flagged. The child's next requestLayout in the same turn was skipped, so the ancestor never re-laid out and the child stayed hidden after becoming visible. The shortcut now applies only while every ancestor is still flagged.
| Back | FazBrowse Home | New Git URL |
PR Checklist
What is the current behavior?
What is the new behavior?
New specs: a repeat request in the same turn does not climb (fails on main), and a request climbs again in the next turn and after a layout pass.
Numbers
How this was measured
xplat-benchmarks ns-core app (plain core, no plugins), iPhone 17 Pro Max simulator, iOS 26.4. Each scenario mounts about 1,000 views at size M. Base and change were installed alternately for 3 rounds of 10 measured iterations, median ms, lower is better. "Attach" is assigning the built tree to a loaded parent (native view creation, CSS, native setters); "painted" ends one frame after layout. A GC is forced before each mutation, as it already is after each unmount, so a collection pause lands in the same phase for both builds.
Part of a series: #11505, #11506, #11507 (this), #11510.