(lView: LView)
| 262 | * flag is already `true` or the `lView` is detached. |
| 263 | */ |
| 264 | export function markAncestorsForTraversal(lView: LView) { |
| 265 | lView[ENVIRONMENT].changeDetectionScheduler?.notify(NotificationSource.MarkAncestorsForTraversal); |
| 266 | let parent = getLViewParent(lView); |
| 267 | while (parent !== null) { |
| 268 | // We stop adding markers to the ancestors once we reach one that already has the marker. This |
| 269 | // is to avoid needlessly traversing all the way to the root when the marker already exists. |
| 270 | if (parent[FLAGS] & LViewFlags.HasChildViewsToRefresh) { |
| 271 | break; |
| 272 | } |
| 273 | |
| 274 | parent[FLAGS] |= LViewFlags.HasChildViewsToRefresh; |
| 275 | if (!viewAttachedToChangeDetector(parent)) { |
| 276 | break; |
| 277 | } |
| 278 | parent = getLViewParent(parent); |
| 279 | } |
| 280 | } |
| 281 | |
| 282 | /** |
| 283 | * Stores a LView-specific destroy callback. |
no test coverage detected
searching dependent graphs…