Skip to content

jawstree: release removed Treeview instances#153

Merged
linkdata merged 3 commits into
mainfrom
fix/135-jawstree-treeview-lifecycle
Jul 19, 2026
Merged

jawstree: release removed Treeview instances#153
linkdata merged 3 commits into
mainfrom
fix/135-jawstree-treeview-lifecycle

Conversation

@linkdata

@linkdata linkdata commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Summary

  • own each browser Treeview from its live Jid container instead of retaining per-instance window globals
  • make the element Jid the sole browser identity by removing the unused Tree key and key fields from both server-to-client payloads
  • resolve callbacks and server selection updates through the live DOM so detached widgets become garbage-collectible
  • cover shared-Tree remove/reinsert behavior with both the focused adapter mock and the real JaWS plus vendored Treeview assets under jsdom

Tests

  • go generate ./...
  • go vet ./...
  • gofmt -l .
  • staticcheck ./...
  • golangci-lint run
  • gosec -quiet ./...
  • JAWS_REQUIRE_NODE=1 go test -count=1 -race -coverprofile=/private/tmp/jaws-issue135-key-coverage.out ./...
  • go build -v ./...
  • GOOS=linux GOARCH=386 CGO_ENABLED=0 go test -c -o /private/tmp/jaws-bind-key-386.test ./lib/bind
  • GOOS=linux GOARCH=386 CGO_ENABLED=0 go test -c -o /private/tmp/jaws-jawstree-key-386.test ./jawstree

Closes #135

@linkdata
linkdata merged commit b15d92e into main Jul 19, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

jawstree: dynamic removal leaks Treeview instances in window globals

1 participant