func (dom *DOM) ReleaseJsFuncsOnDone(ctx context.Context, wg *sync.WaitGroup, jsFuncs map[string]js.Func) {
	defer dom.AlertOnPanic()
	<-ctx.Done() // BLOCKING
	for _, f := range jsFuncs {
		f.Release()
	}
	wg.Done()
}
// ReleaseJsFuncsOnDone releases the jsFuncs and decrements the waitgroup when the context is done.
// This function should be called on a separate goroutine.
ReleaseJsFuncsOnDone releases the jsFuncs and decrements the waitgroup when the context is done.
This function should be called on a separate goroutine.
// ReleaseJsFuncsOnDone releases the jsFuncs and decrements the waitgroup when the context is done . // This function should be called on a separate goroutine .
func (dom *DOM) ReleaseJsFuncsOnDone(ctx context.Context, wg *sync.WaitGroup, jsFuncs map[string]js.Func) {
	defer dom.AlertOnPanic()
	<-ctx.Done() 
	for _, f := range jsFuncs {
		f.Release()
	}
	wg.Done()
}
func ( dom * DOM ) ReleaseJsFuncsOnDone ( ctx context . Context , wg * sync . WaitGroup , jsFuncs map [ string ] js . Func ) { defer dom . AlertOnPanic ( ) <- ctx . Done ( ) for _ , f := range jsFuncs { f . Release ( ) } wg . Done ( ) }
ReleaseJsFuncsOnDone releases the jsFuncs and decrements the waitgroup when the context is done.
ReleaseJsFuncsOnDone releases the jsFuncs and decrements the waitgroup when the context is done .
// BLOCKING