doxa-maps/plugin-designs/cities-internet
Doxa Maps 24b32e199f Release the test hooks on unmount, all twelve of them
Twelve globals were set across three plugins and none was ever deleted. Each
pins whatever it closes over — a map instance pins its canvas, its sources and
through them the whole app — so every mount left another copy behind, measured
elsewhere at roughly 10 MB each.

Released as a set rather than one at a time. A block that sets several globals
and clears the obvious one leaks the rest silently, and the obvious one is
whichever the author happened to remember.

Identity-checked, which is why the value is recorded as it is set rather than
cleared by name. Two instances can share a page, and clearing by name alone
would let the second unmount delete the first's live hooks — trading a leak for
a harder bug in which a live map loses its test surface at a distance.

A first attempt compared against a name that did not exist. Inside the try/catch
that guards these, the ReferenceError was swallowed and every delete silently did
nothing — a leak fix that looks exactly like a leak fix and leaks. The guard that
makes the assignment safe is the same guard that hides its failure, which is the
argument for recording what was set rather than inferring it at teardown.
2026-09-28 20:32:59 +00:00
..
data Svalbard carries its own data, not Norway's 2026-09-27 05:05:04 +00:00
scripts India by state: all 36 states, Mizoram and Nagaland included 2026-09-26 08:13:34 +00:00
connectivity-list.meta.json Name the two unlabelled Cities with Internet profiles 2026-09-28 07:44:45 +00:00
connectivity-list.vue cities-internet takes the locale-honouring fallback, and drops its English copy 2026-09-26 22:06:59 +00:00
connectivity-map.meta.json Plugin Studio and the gallery split production from experimental, from each bundle's own stage 2026-09-27 06:04:08 +00:00
connectivity-map.vue Release the test hooks on unmount, all twelve of them 2026-09-28 20:32:59 +00:00
data-tables.meta.json Name the two unlabelled Cities with Internet profiles 2026-09-28 07:44:45 +00:00
data-tables.vue Cities with Internet: its load and engine errors speak the reader's language 2026-09-28 12:41:10 +00:00
index.html Session work: strobe fix, grid layout, stacked tree legend, selection camera, chip bounding, asset inheritance, gates 2026-09-20 04:49:25 +00:00
index.js Eleven plugin entries import the element helper they call 2026-09-28 17:40:35 +00:00