* Add test case for TextKit truncation style
* Add fast path for text node measurement with default truncation
* Use fast path more often
* Reverse options order
* Simplify implementation – no functional change
* Share "isScaled" variable
* Intersect with constrained rect
* Add a failing test case for fast-path truncation
* Add some more truncation tests, using slow path as reference image
* Update the tests
* In ASTextKitRenderer, intersect bounds with constrained rect
* Add test case for TextKit truncation style
* Add fast path for text node measurement with default truncation
* Use fast path more often
* Reverse options order
* Simplify implementation – no functional change
* Share "isScaled" variable
* Intersect with constrained rect
* Add a failing test case for fast-path truncation
* Add some more truncation tests, using slow path as reference image
* Update the tests
* In ASTextKitRenderer, intersect bounds with constrained rect
* Use maximumNumberOfLines property in text kit fast path
Add reference images
Disable fast-path for max-one-line case
* Remove unneeded snapshot files
* expose ASTableView's -visibleNodes getter at the ASTableNode level
* add safegaurds
* make visibleNodes a read only property for ASTableNode
* make collectionNode .visibleNodes property
* Added selection API to ASTableNode and ASCollectionNode (#2450)
* Updated test case to use collectionNode instead of collectionView for the selection tests.
* Fixed typos.
Added asserts for main thread.
Updated ASCollectionViewTests for multiple selections for nodes.
* Added assigns to the different properties.
* Add internal header for ASLayout and change position to readonly publicly
* Don't copy sublayouts during tree filtering
* Revert "Don't copy sublayouts during tree filtering"
This reverts commit 6b0d54d5ffe5bb3941ec13696c9c45b0098b6ba1.
* [ASRunLoopQueue - Performance] Add ASDeallocQueue for efficient object teardown.
This measurably reduces block overhead and context switching. In the layout benchmark,
it increases ops/s while actually reducing CPU utilization. This suggests that we are
now at a lock-bounded local maximum, at least for tri-core devices.
* [ASDeallocQueue] Update convenience helper method and adopt in ASImageNode etc.
* [ASDeallocQueue] Reimplement the queue using a timer-based runloop.
* [Debugging] Re-enable ASDisplayNode Event Log.
* [ASDeallocQueue] Final refinements, comments, code minimization.
* [ASDeallocQueue] Fix for lock release needed in early return (refactoring typo from last commit)
* [ASLayout - Performance] Avoid weak ivar access & method call to check layoutElementType.
This shows up in benchmarking profiles for layout-bound workloads.
* Add comment
Profiling showed this area as the most expensive part of ASRangeController propogation of .interfaceState,
when scrolling an ASTableView. This is very much on the critical path for sustained 60FPS in these views.
* Separate dataSource & UIKit index spaces
Beef up our supplementary node support
Make the API way better
Go nuts
Add a unit test for UICollectionView's handling of reloadData inside batch updates
Wrap indexPathForNode: in a cache
Convert index paths in delegate methods
Go back on table view
Put collection view back
Switch up the API
Move most ASCollectionView API to ASCollectionNode
Move most table logic over to ASTableNode
Do the things
More conversion work
Keep on keepin' on
Get table view delegate API done
More porting
Simplify
Clear the delegate
More cleanup
Move more stuff around
Remove pointless file
Re-add some API
Put back more API
Use the right flag
* Some cleanup
* Remove incorrect comment
* Tweak the API
* Put back a couple methods
* update example projects (note: ASCollectionView deprecation warnings expected)
* change reloadDataWithCompletion:nil --> reloadData
* Clean up rebase
* Make deprecated numberOfItemsInSection methods optional
* Use the right flag
* Address nits
* update ASDKTube, ASDKgram & ASViewController examples
* Add scrollableDirections method to ASCollectionViewLayoutInspecting protocol
ASViewController's default method will not always return the correct scrollable
directions in cases where size changes may not have been applied. This allows
us to ignore this issue for a little while longer by allowing the layout
inspector to explicitly vend this.
* Better header, thanks @maicki!
* [Debugging / Profiling] Add kdebug_signpost calls to Range and DataController.
* [ASLog] Add new ASProfilingSignpost defines for System Trace flags.
* [ASLog] Improve kdebug_signpost logging: ASRunloopQueue and AsyncDisplay, and colors.
See https://github.com/facebook/AsyncDisplayKit/pull/2370 for screenshots.