1// +build js 2 3package sync 4 5type WaitGroup struct { 6 counter int 7 ch chan struct{} 8 9 state1 [3]uint32 10} 11 12func (wg *WaitGroup) Add(delta int) { 13 wg.counter += delta 14 if wg.counter < 0 { 15 panic("sync: negative WaitGroup counter") 16 } 17 if wg.counter > 0 && wg.ch == nil { 18 wg.ch = make(chan struct{}) 19 } 20 if wg.counter == 0 && wg.ch != nil { 21 close(wg.ch) 22 wg.ch = nil 23 } 24} 25 26func (wg *WaitGroup) Wait() { 27 if wg.counter > 0 { 28 <-wg.ch 29 } 30} 31