From f79200d76bd1732a02a2db0e42135bca2f693a3c Mon Sep 17 00:00:00 2001 From: "Bruce B. Anderson" Date: Tue, 4 Feb 2025 18:37:01 -0500 Subject: [PATCH] 0.0.880 --- froop/CustStExt.js | 4 ++-- froop/CustStExt.ts | 4 ++-- froop/CustStSvc.js | 4 ++-- froop/CustStSvc.ts | 4 ++-- froop/O.js | 7 +++---- froop/O.ts | 6 +++--- froop/RRMixin.js | 9 +++------ froop/RRMixin.ts | 10 +++------- froop/Reflector.js | 4 ++-- froop/Reflector.ts | 4 ++-- froop/hydrateCompacts.js | 4 ++-- froop/hydrateCompacts.ts | 4 ++-- ts-refs | 2 +- 13 files changed, 29 insertions(+), 37 deletions(-) diff --git a/froop/CustStExt.js b/froop/CustStExt.js index f22693a2..8bddf97a 100644 --- a/froop/CustStExt.js +++ b/froop/CustStExt.js @@ -93,7 +93,7 @@ export class CustStExt { this.#do(instance, internals); } async #do(instance, internals) { - const { propagator, disconnectedSignal } = instance; + const { propagator, RAController } = instance; for (const statement of this.splitSplit) { const [customStateKey, expr] = statement; const re = new RegExp(String.raw `^(?.*)(?==|>|>=|<|<=)(?.*)`); @@ -126,7 +126,7 @@ export class CustStExt { propagator.addEventListener(propName, mh, { signal: ac.signal }); } //no memory access outside closure, I think - disconnectedSignal.addEventListener('abort', e => { + RAController.signal.addEventListener('abort', e => { this.#disconnect(); }, { once: true }); } diff --git a/froop/CustStExt.ts b/froop/CustStExt.ts index 0480bd07..36a6337a 100644 --- a/froop/CustStExt.ts +++ b/froop/CustStExt.ts @@ -84,7 +84,7 @@ export class CustStExt { } async #do(instance: O, internals: ElementInternals){ - const {propagator, disconnectedSignal} = instance; + const {propagator, RAController} = instance; for(const statement of this.splitSplit){ const [customStateKey, expr] = statement; const re = new RegExp(String.raw `^(?.*)(?==|>|>=|<|<=)(?.*)`); @@ -118,7 +118,7 @@ export class CustStExt { propagator.addEventListener(propName, mh, {signal: ac.signal}); } //no memory access outside closure, I think - disconnectedSignal.addEventListener('abort', e => { + RAController.signal.addEventListener('abort', e => { this.#disconnect(); }, {once: true}); } diff --git a/froop/CustStSvc.js b/froop/CustStSvc.js index 14e7a0e4..f1d262e9 100644 --- a/froop/CustStSvc.js +++ b/froop/CustStSvc.js @@ -27,7 +27,7 @@ export class CustStSvc { .split(',') .map(s => s.trim().split(' if ').map(t => t.trim())); const simpleOnes = splitSplit.filter(x => x.length === 1); - const { propagator, disconnectedSignal } = instance; + const { propagator, RAController } = instance; //Use flatten? for (const propName of simpleOnes.map(x => x[0])) { const ac = new AbortController(); @@ -36,7 +36,7 @@ export class CustStSvc { propagator.addEventListener(propName, reflector, { signal: ac.signal }); } //TODO: make sure no memory leak from this - disconnectedSignal.addEventListener('abort', e => { + RAController.signal.addEventListener('abort', e => { this.#disconnect(); }, { once: true }); const complexOnes = splitSplit.filter(x => x.length > 1); diff --git a/froop/CustStSvc.ts b/froop/CustStSvc.ts index a8cdd115..ba28a620 100644 --- a/froop/CustStSvc.ts +++ b/froop/CustStSvc.ts @@ -26,7 +26,7 @@ export class CustStSvc{ .split(',') .map(s => s.trim().split(' if ').map(t => t.trim())); const simpleOnes = splitSplit.filter(x => x.length === 1); - const {propagator, disconnectedSignal} = instance; + const {propagator, RAController} = instance; //Use flatten? for(const propName of simpleOnes.map(x => x[0])){ const ac: AbortController = new AbortController(); @@ -35,7 +35,7 @@ export class CustStSvc{ propagator.addEventListener(propName, reflector, {signal: ac.signal}); } //TODO: make sure no memory leak from this - disconnectedSignal.addEventListener('abort', e => { + RAController.signal.addEventListener('abort', e => { this.#disconnect(); }, {once: true}); const complexOnes = splitSplit.filter(x => x.length > 1); diff --git a/froop/O.js b/froop/O.js index 6f875526..2c63092b 100644 --- a/froop/O.js +++ b/froop/O.js @@ -41,8 +41,8 @@ export class O extends RRMixin(HTMLElement) { copyInternals(internals) { } static observedAttributes = []; async connectedCallback() { - if (this.#disconnectedAbortController.signal.aborted) { - this.#disconnectedAbortController = new AbortController(); + if (this.RAController.signal.aborted) { + this.RAController = new AbortController(); } const props = this.constructor.props; this.#propUp(props); @@ -64,8 +64,7 @@ export class O extends RRMixin(HTMLElement) { } } disconnectedCallback() { - this.disconnectedSignal. - ; + this.RAController.abort(); } #internals; /** diff --git a/froop/O.ts b/froop/O.ts index 0140a50a..f4fa70e6 100644 --- a/froop/O.ts +++ b/froop/O.ts @@ -52,8 +52,8 @@ export class O extends RRMixin(HTMLElement) impleme copyInternals(internals: ElementInternals){} static observedAttributes: Array = []; async connectedCallback(){ - if(this.#disconnectedAbortController.signal.aborted){ - this.#disconnectedAbortController = new AbortController(); + if(this.RAController.signal.aborted){ + this.RAController = new AbortController(); } const props = (this.constructor).props as PropLookup; this.#propUp(props); @@ -76,7 +76,7 @@ export class O extends RRMixin(HTMLElement) impleme } disconnectedCallback(): any { - this.disconnectedSignal!. + this.RAController!.abort(); } #internals: ElementInternals; diff --git a/froop/RRMixin.js b/froop/RRMixin.js index e2832455..b7a7796b 100644 --- a/froop/RRMixin.js +++ b/froop/RRMixin.js @@ -3,13 +3,10 @@ export const publicPrivateStore = Symbol(); export function RRMixin(Base) { class RR extends Base { propagator = new EventTarget(); - #disconnectedAbortController; - get disconnectedSignal() { - return this.#disconnectedAbortController.signal; - } + RAController; constructor(...rest) { super(); - this.#disconnectedAbortController = new AbortController(); + this.RAController = new AbortController(); } sleep; awake() { @@ -18,7 +15,7 @@ export function RRMixin(Base) { resolve(); return; } - const ac = this.#disconnectedAbortController; + const ac = this.RAController; //I'm thinking this one isn't worth wrapping in an EventHandler, as the "closure" //isn't accessing anything other than the resolve and abort controller, doesn't seem worth it. this.propagator.addEventListener('sleep', e => { diff --git a/froop/RRMixin.ts b/froop/RRMixin.ts index dfda16c3..ee46266b 100644 --- a/froop/RRMixin.ts +++ b/froop/RRMixin.ts @@ -7,15 +7,11 @@ export function RRMixin(Base: T) { abstract class RR extends Base implements RoundaboutReady { propagator = new EventTarget(); - #disconnectedAbortController: AbortController; - - get disconnectedSignal(){ - return this.#disconnectedAbortController.signal; - } + RAController: AbortController; constructor(...rest: any[]){ super(); - this.#disconnectedAbortController = new AbortController(); + this.RAController = new AbortController(); } abstract covertAssignment(obj: TProps): Promise; @@ -27,7 +23,7 @@ export function RRMixin(Base: T) { resolve(); return; } - const ac = this.#disconnectedAbortController; + const ac = this.RAController; //I'm thinking this one isn't worth wrapping in an EventHandler, as the "closure" //isn't accessing anything other than the resolve and abort controller, doesn't seem worth it. this.propagator.addEventListener('sleep', e => { diff --git a/froop/Reflector.js b/froop/Reflector.js index f2fd79fe..3d7e932d 100644 --- a/froop/Reflector.js +++ b/froop/Reflector.js @@ -29,7 +29,7 @@ export class Reflector { constructor(instance, attrsToReflect) { this.instance = instance; this.attrsToReflect = attrsToReflect; - const { propagator, disconnectedSignal } = instance; + const { propagator, RAController } = instance; const attrs = instance.constructor.attrs; const reflectAll = attrsToReflect === '*'; let parsedAttrsToReflect; @@ -49,7 +49,7 @@ export class Reflector { } //I'm thinking this event handler doesn't access any shared memory // so no need to use EventHandler - disconnectedSignal.addEventListener('abort', e => { + RAController.signal.addEventListener('abort', e => { this.#disconnect(); }, { once: true }); } diff --git a/froop/Reflector.ts b/froop/Reflector.ts index 4a1e7e33..11d4a665 100644 --- a/froop/Reflector.ts +++ b/froop/Reflector.ts @@ -25,7 +25,7 @@ class AttrReflector implements EventListenerObject { export class Reflector{ #acs: AbortController[] = []; constructor(public instance: O, public attrsToReflect: string){ - const {propagator, disconnectedSignal} = instance; + const {propagator, RAController} = instance; const attrs = (instance.constructor).attrs as {[key: string] : PropInfo}; const reflectAll = attrsToReflect === '*'; let parsedAttrsToReflect: string[] | undefined; @@ -44,7 +44,7 @@ export class Reflector{ } //I'm thinking this event handler doesn't access any shared memory // so no need to use EventHandler - disconnectedSignal.addEventListener('abort', e => { + RAController.signal.addEventListener('abort', e => { this.#disconnect(); }, {once: true}); } diff --git a/froop/hydrateCompacts.js b/froop/hydrateCompacts.js index 50cc8032..478a5a7b 100644 --- a/froop/hydrateCompacts.js +++ b/froop/hydrateCompacts.js @@ -67,10 +67,10 @@ class CompactManager { const { srcKey } = cc; const { options } = ra; const { vm } = options; - const { propagator, disconnectedSignal } = vm; + const { propagator, RAController } = vm; propagator?.addEventListener(srcKey, this, { signal: this.#ac.signal }); this.#doAction(false, true); - disconnectedSignal?.addEventListener('abort', this, { once: true }); + RAController.signal.addEventListener('abort', this, { once: true }); } handleEvent(e) { switch (e.type) { diff --git a/froop/hydrateCompacts.ts b/froop/hydrateCompacts.ts index fdf69f0d..12503003 100644 --- a/froop/hydrateCompacts.ts +++ b/froop/hydrateCompacts.ts @@ -73,10 +73,10 @@ class CompactManager{ const {srcKey} = cc; const {options} = ra; const {vm} = options; - const {propagator, disconnectedSignal} = (vm as RoundaboutReady); + const {propagator, RAController} = (vm as RoundaboutReady); propagator?.addEventListener(srcKey, this, {signal: this.#ac.signal}); this.#doAction(false, true); - disconnectedSignal?.addEventListener('abort', this, {once: true}); + RAController.signal.addEventListener('abort', this, {once: true}); } handleEvent(e: Event){ diff --git a/ts-refs b/ts-refs index 2b856687..5c13f419 160000 --- a/ts-refs +++ b/ts-refs @@ -1 +1 @@ -Subproject commit 2b85668783a5f886452c20025515bc752a3cb41f +Subproject commit 5c13f4193ddf147f26196598650b497df1098bc6