You must now specify whether waitForChildAdd() should check the predicate on attribute changes. Its only caller did not depend on this behavior, so the callback and predicate were running hundreds of times unnecessarily.
A new parameter, observeAttributes, has been added (before abortSignal). When it is true, you will get the old behavior. When it is false, the predicate will not be called on attribute changes—meaning you will only see each node once as it is initially added.
I don't expect this to have much effect right now, as waitForChildAdd() is only used once. (It was also used in a now-canceled change.) However, this function is useful enough that it it is likely to be used in the future, including in more performance-sensitive areas.
You must now specify whether
waitForChildAdd()
should check the predicate on attribute changes. Its only caller did not depend on this behavior, so the callback and predicate were running hundreds of times unnecessarily.A new parameter,
observeAttributes
, has been added (beforeabortSignal
). When it is true, you will get the old behavior. When it is false, the predicate will not be called on attribute changes—meaning you will only see each node once as it is initially added.I don't expect this to have much effect right now, as
waitForChildAdd()
is only used once. (It was also used in a now-canceled change.) However, this function is useful enough that it it is likely to be used in the future, including in more performance-sensitive areas.