You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add @srfnstack/fntags-testing library, fix memory leaks, migrate unit tests
- Add fntags-testing package: thin wrapper over @testing-library/dom with
render(), cleanup(), and re-exports of screen/fireEvent/waitFor/within
- Fix selectObserver leak: subscribeSelect now returns unsub, registered in
activeRenderCleanups for automatic cleanup on parent bindAs re-render
- Fix conditional selectObserver cleanup in arrangeElements that skipped
cleanup when replacement element lacked insertAdjacentElement (text nodes)
- Fix observer iteration safety: snapshot arrays before iterating to prevent
skipped callbacks when subscribers modify the list during notification
- Fix bindChildren per-item subscription cleanup when nested inside bindAs
- Migrate all Cypress unit tests to vitest (keep docs e2e tests in Cypress)
- Add testing docs page to the docs site
- Make search bar collapsible (SVG icon that expands to input on click)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
// Remove this bindContext so reconcile doesn't operate on stale state
436
+
constidx=ctx.bindContexts.indexOf(bindContext)
437
+
if(idx!==-1)ctx.bindContexts.splice(idx,1)
438
+
})
439
+
}
440
+
421
441
this.subscribe((_,oldState)=>{
422
442
if(!Array.isArray(ctx.currentValue)){
423
443
console.warn('A state used with bindChildren was updated to a non array value. This will be converted to an array of 1 and the state will be updated.')
0 commit comments