@@ -1088,14 +1088,16 @@ func (w *window) Stop() {
10881088
10891089// TODO reuse util.EventTarget
10901090
1091- func (w * window ) AddEventListener (typ string , useCapture bool , listener func (Event )) js.Callback {
1092- wrapper := func (o js.Value ) { listener (wrapEvent (o )) }
1093- cb := js .NewEventCallback (0 , wrapper )
1094- w .Call ("addEventListener" , typ , cb , useCapture )
1095- return cb
1091+ func (w * window ) AddEventListener (typ string , listener func (Event ), useCapture bool ) js.Func {
1092+ fn := js .FuncOf (func (_ js.Value , args []js.Value ) interface {} {
1093+ listener (wrapEvent (args [0 ]))
1094+ return nil
1095+ })
1096+ w .Call ("addEventListener" , typ , fn , useCapture )
1097+ return fn
10961098}
10971099
1098- func (w * window ) RemoveEventListener (typ string , useCapture bool , listener js.Callback ) {
1100+ func (w * window ) RemoveEventListener (typ string , listener js.Func , useCapture bool ) {
10991101 w .Call ("removeEventListener" , typ , listener , useCapture )
11001102 listener .Release ()
11011103}
@@ -1274,14 +1276,16 @@ func (n *BasicNode) Underlying() js.Value {
12741276 return n .Object
12751277}
12761278
1277- func (n * BasicNode ) AddEventListener (typ string , useCapture bool , listener func (Event )) js.Callback {
1278- wrapper := func (o js.Value ) { listener (wrapEvent (o )) }
1279- cb := js .NewEventCallback (0 , wrapper )
1280- n .Object .Call ("addEventListener" , typ , cb , useCapture )
1281- return cb
1279+ func (n * BasicNode ) AddEventListener (typ string , listener func (Event ), useCapture bool ) js.Func {
1280+ fn := js .FuncOf (func (_ js.Value , args []js.Value ) interface {} {
1281+ listener (wrapEvent (args [0 ]))
1282+ return nil
1283+ })
1284+ n .Object .Call ("addEventListener" , typ , fn , useCapture )
1285+ return fn
12821286}
12831287
1284- func (n * BasicNode ) RemoveEventListener (typ string , useCapture bool , listener js.Callback ) {
1288+ func (n * BasicNode ) RemoveEventListener (typ string , listener js.Func , useCapture bool ) {
12851289 n .Object .Call ("removeEventListener" , typ , listener , useCapture )
12861290 listener .Release ()
12871291}
0 commit comments