github.com/primecitizens/pcz/std@v0.2.1/plat/js/webext/sockets/tcpserver/apis_js_wasm.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // Copyright 2023 The Prime Citizens
     3  
     4  package tcpserver
     5  
     6  import (
     7  	"github.com/primecitizens/pcz/std/core/abi"
     8  	"github.com/primecitizens/pcz/std/core/mark"
     9  	"github.com/primecitizens/pcz/std/ffi/js"
    10  	"github.com/primecitizens/pcz/std/plat/js/webext/sockets/tcpserver/bindings"
    11  )
    12  
    13  type AcceptErrorInfo struct {
    14  	// SocketId is "AcceptErrorInfo.socketId"
    15  	//
    16  	// Optional
    17  	//
    18  	// NOTE: FFI_USE_SocketId MUST be set to true to make this field effective.
    19  	SocketId int32
    20  	// ResultCode is "AcceptErrorInfo.resultCode"
    21  	//
    22  	// Optional
    23  	//
    24  	// NOTE: FFI_USE_ResultCode MUST be set to true to make this field effective.
    25  	ResultCode int32
    26  
    27  	FFI_USE_SocketId   bool // for SocketId.
    28  	FFI_USE_ResultCode bool // for ResultCode.
    29  
    30  	FFI_USE bool
    31  }
    32  
    33  // FromRef calls UpdateFrom and returns a AcceptErrorInfo with all fields set.
    34  func (p AcceptErrorInfo) FromRef(ref js.Ref) AcceptErrorInfo {
    35  	p.UpdateFrom(ref)
    36  	return p
    37  }
    38  
    39  // New creates a new AcceptErrorInfo in the application heap.
    40  func (p AcceptErrorInfo) New() js.Ref {
    41  	return bindings.AcceptErrorInfoJSLoad(
    42  		js.Pointer(&p), js.True, 0,
    43  	)
    44  }
    45  
    46  // UpdateFrom copies value of all fields of the heap object to p.
    47  func (p *AcceptErrorInfo) UpdateFrom(ref js.Ref) {
    48  	bindings.AcceptErrorInfoJSStore(
    49  		js.Pointer(p), ref,
    50  	)
    51  }
    52  
    53  // Update writes all fields of the p to the heap object referenced by ref.
    54  func (p *AcceptErrorInfo) Update(ref js.Ref) {
    55  	bindings.AcceptErrorInfoJSLoad(
    56  		js.Pointer(p), js.False, ref,
    57  	)
    58  }
    59  
    60  // FreeMembers frees fields with heap reference, if recursive is true
    61  // free all heap references reachable from p.
    62  func (p *AcceptErrorInfo) FreeMembers(recursive bool) {
    63  }
    64  
    65  type AcceptInfo struct {
    66  	// SocketId is "AcceptInfo.socketId"
    67  	//
    68  	// Optional
    69  	//
    70  	// NOTE: FFI_USE_SocketId MUST be set to true to make this field effective.
    71  	SocketId int32
    72  	// ClientSocketId is "AcceptInfo.clientSocketId"
    73  	//
    74  	// Optional
    75  	//
    76  	// NOTE: FFI_USE_ClientSocketId MUST be set to true to make this field effective.
    77  	ClientSocketId int32
    78  
    79  	FFI_USE_SocketId       bool // for SocketId.
    80  	FFI_USE_ClientSocketId bool // for ClientSocketId.
    81  
    82  	FFI_USE bool
    83  }
    84  
    85  // FromRef calls UpdateFrom and returns a AcceptInfo with all fields set.
    86  func (p AcceptInfo) FromRef(ref js.Ref) AcceptInfo {
    87  	p.UpdateFrom(ref)
    88  	return p
    89  }
    90  
    91  // New creates a new AcceptInfo in the application heap.
    92  func (p AcceptInfo) New() js.Ref {
    93  	return bindings.AcceptInfoJSLoad(
    94  		js.Pointer(&p), js.True, 0,
    95  	)
    96  }
    97  
    98  // UpdateFrom copies value of all fields of the heap object to p.
    99  func (p *AcceptInfo) UpdateFrom(ref js.Ref) {
   100  	bindings.AcceptInfoJSStore(
   101  		js.Pointer(p), ref,
   102  	)
   103  }
   104  
   105  // Update writes all fields of the p to the heap object referenced by ref.
   106  func (p *AcceptInfo) Update(ref js.Ref) {
   107  	bindings.AcceptInfoJSLoad(
   108  		js.Pointer(p), js.False, ref,
   109  	)
   110  }
   111  
   112  // FreeMembers frees fields with heap reference, if recursive is true
   113  // free all heap references reachable from p.
   114  func (p *AcceptInfo) FreeMembers(recursive bool) {
   115  }
   116  
   117  type CloseCallbackFunc func(this js.Ref) js.Ref
   118  
   119  func (fn CloseCallbackFunc) Register() js.Func[func()] {
   120  	return js.RegisterCallback[func()](
   121  		fn, abi.FuncPCABIInternal(fn),
   122  	)
   123  }
   124  
   125  func (fn CloseCallbackFunc) DispatchCallback(
   126  	targetPC uintptr, ctx *js.CallbackContext,
   127  ) {
   128  	args := ctx.Args()
   129  	if len(args) != 0+1 /* js this */ ||
   130  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   131  		js.ThrowInvalidCallbackInvocation()
   132  	}
   133  
   134  	if ctx.Return(fn(
   135  		args[0],
   136  	)) {
   137  		return
   138  	}
   139  
   140  	js.ThrowCallbackValueNotReturned()
   141  }
   142  
   143  type CloseCallback[T any] struct {
   144  	Fn  func(arg T, this js.Ref) js.Ref
   145  	Arg T
   146  }
   147  
   148  func (cb *CloseCallback[T]) Register() js.Func[func()] {
   149  	return js.RegisterCallback[func()](
   150  		cb, abi.FuncPCABIInternal(cb.Fn),
   151  	)
   152  }
   153  
   154  func (cb *CloseCallback[T]) DispatchCallback(
   155  	targetPC uintptr, ctx *js.CallbackContext,
   156  ) {
   157  	args := ctx.Args()
   158  	if len(args) != 0+1 /* js this */ ||
   159  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   160  		js.ThrowInvalidCallbackInvocation()
   161  	}
   162  
   163  	if ctx.Return(cb.Fn(
   164  		cb.Arg,
   165  		args[0],
   166  	)) {
   167  		return
   168  	}
   169  
   170  	js.ThrowCallbackValueNotReturned()
   171  }
   172  
   173  type CreateCallbackFunc func(this js.Ref, createInfo *CreateInfo) js.Ref
   174  
   175  func (fn CreateCallbackFunc) Register() js.Func[func(createInfo *CreateInfo)] {
   176  	return js.RegisterCallback[func(createInfo *CreateInfo)](
   177  		fn, abi.FuncPCABIInternal(fn),
   178  	)
   179  }
   180  
   181  func (fn CreateCallbackFunc) DispatchCallback(
   182  	targetPC uintptr, ctx *js.CallbackContext,
   183  ) {
   184  	args := ctx.Args()
   185  	if len(args) != 1+1 /* js this */ ||
   186  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   187  		js.ThrowInvalidCallbackInvocation()
   188  	}
   189  	var arg0 CreateInfo
   190  	arg0.UpdateFrom(args[0+1])
   191  	defer arg0.FreeMembers(true)
   192  
   193  	if ctx.Return(fn(
   194  		args[0],
   195  
   196  		mark.NoEscape(&arg0),
   197  	)) {
   198  		return
   199  	}
   200  
   201  	js.ThrowCallbackValueNotReturned()
   202  }
   203  
   204  type CreateCallback[T any] struct {
   205  	Fn  func(arg T, this js.Ref, createInfo *CreateInfo) js.Ref
   206  	Arg T
   207  }
   208  
   209  func (cb *CreateCallback[T]) Register() js.Func[func(createInfo *CreateInfo)] {
   210  	return js.RegisterCallback[func(createInfo *CreateInfo)](
   211  		cb, abi.FuncPCABIInternal(cb.Fn),
   212  	)
   213  }
   214  
   215  func (cb *CreateCallback[T]) DispatchCallback(
   216  	targetPC uintptr, ctx *js.CallbackContext,
   217  ) {
   218  	args := ctx.Args()
   219  	if len(args) != 1+1 /* js this */ ||
   220  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   221  		js.ThrowInvalidCallbackInvocation()
   222  	}
   223  	var arg0 CreateInfo
   224  	arg0.UpdateFrom(args[0+1])
   225  	defer arg0.FreeMembers(true)
   226  
   227  	if ctx.Return(cb.Fn(
   228  		cb.Arg,
   229  		args[0],
   230  
   231  		mark.NoEscape(&arg0),
   232  	)) {
   233  		return
   234  	}
   235  
   236  	js.ThrowCallbackValueNotReturned()
   237  }
   238  
   239  type CreateInfo struct {
   240  	// SocketId is "CreateInfo.socketId"
   241  	//
   242  	// Optional
   243  	//
   244  	// NOTE: FFI_USE_SocketId MUST be set to true to make this field effective.
   245  	SocketId int32
   246  
   247  	FFI_USE_SocketId bool // for SocketId.
   248  
   249  	FFI_USE bool
   250  }
   251  
   252  // FromRef calls UpdateFrom and returns a CreateInfo with all fields set.
   253  func (p CreateInfo) FromRef(ref js.Ref) CreateInfo {
   254  	p.UpdateFrom(ref)
   255  	return p
   256  }
   257  
   258  // New creates a new CreateInfo in the application heap.
   259  func (p CreateInfo) New() js.Ref {
   260  	return bindings.CreateInfoJSLoad(
   261  		js.Pointer(&p), js.True, 0,
   262  	)
   263  }
   264  
   265  // UpdateFrom copies value of all fields of the heap object to p.
   266  func (p *CreateInfo) UpdateFrom(ref js.Ref) {
   267  	bindings.CreateInfoJSStore(
   268  		js.Pointer(p), ref,
   269  	)
   270  }
   271  
   272  // Update writes all fields of the p to the heap object referenced by ref.
   273  func (p *CreateInfo) Update(ref js.Ref) {
   274  	bindings.CreateInfoJSLoad(
   275  		js.Pointer(p), js.False, ref,
   276  	)
   277  }
   278  
   279  // FreeMembers frees fields with heap reference, if recursive is true
   280  // free all heap references reachable from p.
   281  func (p *CreateInfo) FreeMembers(recursive bool) {
   282  }
   283  
   284  type DisconnectCallbackFunc func(this js.Ref) js.Ref
   285  
   286  func (fn DisconnectCallbackFunc) Register() js.Func[func()] {
   287  	return js.RegisterCallback[func()](
   288  		fn, abi.FuncPCABIInternal(fn),
   289  	)
   290  }
   291  
   292  func (fn DisconnectCallbackFunc) DispatchCallback(
   293  	targetPC uintptr, ctx *js.CallbackContext,
   294  ) {
   295  	args := ctx.Args()
   296  	if len(args) != 0+1 /* js this */ ||
   297  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   298  		js.ThrowInvalidCallbackInvocation()
   299  	}
   300  
   301  	if ctx.Return(fn(
   302  		args[0],
   303  	)) {
   304  		return
   305  	}
   306  
   307  	js.ThrowCallbackValueNotReturned()
   308  }
   309  
   310  type DisconnectCallback[T any] struct {
   311  	Fn  func(arg T, this js.Ref) js.Ref
   312  	Arg T
   313  }
   314  
   315  func (cb *DisconnectCallback[T]) Register() js.Func[func()] {
   316  	return js.RegisterCallback[func()](
   317  		cb, abi.FuncPCABIInternal(cb.Fn),
   318  	)
   319  }
   320  
   321  func (cb *DisconnectCallback[T]) DispatchCallback(
   322  	targetPC uintptr, ctx *js.CallbackContext,
   323  ) {
   324  	args := ctx.Args()
   325  	if len(args) != 0+1 /* js this */ ||
   326  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   327  		js.ThrowInvalidCallbackInvocation()
   328  	}
   329  
   330  	if ctx.Return(cb.Fn(
   331  		cb.Arg,
   332  		args[0],
   333  	)) {
   334  		return
   335  	}
   336  
   337  	js.ThrowCallbackValueNotReturned()
   338  }
   339  
   340  type GetInfoCallbackFunc func(this js.Ref, socketInfo *SocketInfo) js.Ref
   341  
   342  func (fn GetInfoCallbackFunc) Register() js.Func[func(socketInfo *SocketInfo)] {
   343  	return js.RegisterCallback[func(socketInfo *SocketInfo)](
   344  		fn, abi.FuncPCABIInternal(fn),
   345  	)
   346  }
   347  
   348  func (fn GetInfoCallbackFunc) DispatchCallback(
   349  	targetPC uintptr, ctx *js.CallbackContext,
   350  ) {
   351  	args := ctx.Args()
   352  	if len(args) != 1+1 /* js this */ ||
   353  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   354  		js.ThrowInvalidCallbackInvocation()
   355  	}
   356  	var arg0 SocketInfo
   357  	arg0.UpdateFrom(args[0+1])
   358  	defer arg0.FreeMembers(true)
   359  
   360  	if ctx.Return(fn(
   361  		args[0],
   362  
   363  		mark.NoEscape(&arg0),
   364  	)) {
   365  		return
   366  	}
   367  
   368  	js.ThrowCallbackValueNotReturned()
   369  }
   370  
   371  type GetInfoCallback[T any] struct {
   372  	Fn  func(arg T, this js.Ref, socketInfo *SocketInfo) js.Ref
   373  	Arg T
   374  }
   375  
   376  func (cb *GetInfoCallback[T]) Register() js.Func[func(socketInfo *SocketInfo)] {
   377  	return js.RegisterCallback[func(socketInfo *SocketInfo)](
   378  		cb, abi.FuncPCABIInternal(cb.Fn),
   379  	)
   380  }
   381  
   382  func (cb *GetInfoCallback[T]) DispatchCallback(
   383  	targetPC uintptr, ctx *js.CallbackContext,
   384  ) {
   385  	args := ctx.Args()
   386  	if len(args) != 1+1 /* js this */ ||
   387  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   388  		js.ThrowInvalidCallbackInvocation()
   389  	}
   390  	var arg0 SocketInfo
   391  	arg0.UpdateFrom(args[0+1])
   392  	defer arg0.FreeMembers(true)
   393  
   394  	if ctx.Return(cb.Fn(
   395  		cb.Arg,
   396  		args[0],
   397  
   398  		mark.NoEscape(&arg0),
   399  	)) {
   400  		return
   401  	}
   402  
   403  	js.ThrowCallbackValueNotReturned()
   404  }
   405  
   406  type SocketInfo struct {
   407  	// SocketId is "SocketInfo.socketId"
   408  	//
   409  	// Optional
   410  	//
   411  	// NOTE: FFI_USE_SocketId MUST be set to true to make this field effective.
   412  	SocketId int32
   413  	// Persistent is "SocketInfo.persistent"
   414  	//
   415  	// Optional
   416  	//
   417  	// NOTE: FFI_USE_Persistent MUST be set to true to make this field effective.
   418  	Persistent bool
   419  	// Name is "SocketInfo.name"
   420  	//
   421  	// Optional
   422  	Name js.String
   423  	// Paused is "SocketInfo.paused"
   424  	//
   425  	// Optional
   426  	//
   427  	// NOTE: FFI_USE_Paused MUST be set to true to make this field effective.
   428  	Paused bool
   429  	// LocalAddress is "SocketInfo.localAddress"
   430  	//
   431  	// Optional
   432  	LocalAddress js.String
   433  	// LocalPort is "SocketInfo.localPort"
   434  	//
   435  	// Optional
   436  	//
   437  	// NOTE: FFI_USE_LocalPort MUST be set to true to make this field effective.
   438  	LocalPort int32
   439  
   440  	FFI_USE_SocketId   bool // for SocketId.
   441  	FFI_USE_Persistent bool // for Persistent.
   442  	FFI_USE_Paused     bool // for Paused.
   443  	FFI_USE_LocalPort  bool // for LocalPort.
   444  
   445  	FFI_USE bool
   446  }
   447  
   448  // FromRef calls UpdateFrom and returns a SocketInfo with all fields set.
   449  func (p SocketInfo) FromRef(ref js.Ref) SocketInfo {
   450  	p.UpdateFrom(ref)
   451  	return p
   452  }
   453  
   454  // New creates a new SocketInfo in the application heap.
   455  func (p SocketInfo) New() js.Ref {
   456  	return bindings.SocketInfoJSLoad(
   457  		js.Pointer(&p), js.True, 0,
   458  	)
   459  }
   460  
   461  // UpdateFrom copies value of all fields of the heap object to p.
   462  func (p *SocketInfo) UpdateFrom(ref js.Ref) {
   463  	bindings.SocketInfoJSStore(
   464  		js.Pointer(p), ref,
   465  	)
   466  }
   467  
   468  // Update writes all fields of the p to the heap object referenced by ref.
   469  func (p *SocketInfo) Update(ref js.Ref) {
   470  	bindings.SocketInfoJSLoad(
   471  		js.Pointer(p), js.False, ref,
   472  	)
   473  }
   474  
   475  // FreeMembers frees fields with heap reference, if recursive is true
   476  // free all heap references reachable from p.
   477  func (p *SocketInfo) FreeMembers(recursive bool) {
   478  	js.Free(
   479  		p.Name.Ref(),
   480  		p.LocalAddress.Ref(),
   481  	)
   482  	p.Name = p.Name.FromRef(js.Undefined)
   483  	p.LocalAddress = p.LocalAddress.FromRef(js.Undefined)
   484  }
   485  
   486  type GetSocketsCallbackFunc func(this js.Ref, socketInfos js.Array[SocketInfo]) js.Ref
   487  
   488  func (fn GetSocketsCallbackFunc) Register() js.Func[func(socketInfos js.Array[SocketInfo])] {
   489  	return js.RegisterCallback[func(socketInfos js.Array[SocketInfo])](
   490  		fn, abi.FuncPCABIInternal(fn),
   491  	)
   492  }
   493  
   494  func (fn GetSocketsCallbackFunc) DispatchCallback(
   495  	targetPC uintptr, ctx *js.CallbackContext,
   496  ) {
   497  	args := ctx.Args()
   498  	if len(args) != 1+1 /* js this */ ||
   499  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   500  		js.ThrowInvalidCallbackInvocation()
   501  	}
   502  
   503  	if ctx.Return(fn(
   504  		args[0],
   505  
   506  		js.Array[SocketInfo]{}.FromRef(args[0+1]),
   507  	)) {
   508  		return
   509  	}
   510  
   511  	js.ThrowCallbackValueNotReturned()
   512  }
   513  
   514  type GetSocketsCallback[T any] struct {
   515  	Fn  func(arg T, this js.Ref, socketInfos js.Array[SocketInfo]) js.Ref
   516  	Arg T
   517  }
   518  
   519  func (cb *GetSocketsCallback[T]) Register() js.Func[func(socketInfos js.Array[SocketInfo])] {
   520  	return js.RegisterCallback[func(socketInfos js.Array[SocketInfo])](
   521  		cb, abi.FuncPCABIInternal(cb.Fn),
   522  	)
   523  }
   524  
   525  func (cb *GetSocketsCallback[T]) DispatchCallback(
   526  	targetPC uintptr, ctx *js.CallbackContext,
   527  ) {
   528  	args := ctx.Args()
   529  	if len(args) != 1+1 /* js this */ ||
   530  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   531  		js.ThrowInvalidCallbackInvocation()
   532  	}
   533  
   534  	if ctx.Return(cb.Fn(
   535  		cb.Arg,
   536  		args[0],
   537  
   538  		js.Array[SocketInfo]{}.FromRef(args[0+1]),
   539  	)) {
   540  		return
   541  	}
   542  
   543  	js.ThrowCallbackValueNotReturned()
   544  }
   545  
   546  type ListenCallbackFunc func(this js.Ref, result int32) js.Ref
   547  
   548  func (fn ListenCallbackFunc) Register() js.Func[func(result int32)] {
   549  	return js.RegisterCallback[func(result int32)](
   550  		fn, abi.FuncPCABIInternal(fn),
   551  	)
   552  }
   553  
   554  func (fn ListenCallbackFunc) DispatchCallback(
   555  	targetPC uintptr, ctx *js.CallbackContext,
   556  ) {
   557  	args := ctx.Args()
   558  	if len(args) != 1+1 /* js this */ ||
   559  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   560  		js.ThrowInvalidCallbackInvocation()
   561  	}
   562  
   563  	if ctx.Return(fn(
   564  		args[0],
   565  
   566  		js.Number[int32]{}.FromRef(args[0+1]).Get(),
   567  	)) {
   568  		return
   569  	}
   570  
   571  	js.ThrowCallbackValueNotReturned()
   572  }
   573  
   574  type ListenCallback[T any] struct {
   575  	Fn  func(arg T, this js.Ref, result int32) js.Ref
   576  	Arg T
   577  }
   578  
   579  func (cb *ListenCallback[T]) Register() js.Func[func(result int32)] {
   580  	return js.RegisterCallback[func(result int32)](
   581  		cb, abi.FuncPCABIInternal(cb.Fn),
   582  	)
   583  }
   584  
   585  func (cb *ListenCallback[T]) DispatchCallback(
   586  	targetPC uintptr, ctx *js.CallbackContext,
   587  ) {
   588  	args := ctx.Args()
   589  	if len(args) != 1+1 /* js this */ ||
   590  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   591  		js.ThrowInvalidCallbackInvocation()
   592  	}
   593  
   594  	if ctx.Return(cb.Fn(
   595  		cb.Arg,
   596  		args[0],
   597  
   598  		js.Number[int32]{}.FromRef(args[0+1]).Get(),
   599  	)) {
   600  		return
   601  	}
   602  
   603  	js.ThrowCallbackValueNotReturned()
   604  }
   605  
   606  type SetPausedCallbackFunc func(this js.Ref) js.Ref
   607  
   608  func (fn SetPausedCallbackFunc) Register() js.Func[func()] {
   609  	return js.RegisterCallback[func()](
   610  		fn, abi.FuncPCABIInternal(fn),
   611  	)
   612  }
   613  
   614  func (fn SetPausedCallbackFunc) DispatchCallback(
   615  	targetPC uintptr, ctx *js.CallbackContext,
   616  ) {
   617  	args := ctx.Args()
   618  	if len(args) != 0+1 /* js this */ ||
   619  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   620  		js.ThrowInvalidCallbackInvocation()
   621  	}
   622  
   623  	if ctx.Return(fn(
   624  		args[0],
   625  	)) {
   626  		return
   627  	}
   628  
   629  	js.ThrowCallbackValueNotReturned()
   630  }
   631  
   632  type SetPausedCallback[T any] struct {
   633  	Fn  func(arg T, this js.Ref) js.Ref
   634  	Arg T
   635  }
   636  
   637  func (cb *SetPausedCallback[T]) Register() js.Func[func()] {
   638  	return js.RegisterCallback[func()](
   639  		cb, abi.FuncPCABIInternal(cb.Fn),
   640  	)
   641  }
   642  
   643  func (cb *SetPausedCallback[T]) DispatchCallback(
   644  	targetPC uintptr, ctx *js.CallbackContext,
   645  ) {
   646  	args := ctx.Args()
   647  	if len(args) != 0+1 /* js this */ ||
   648  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   649  		js.ThrowInvalidCallbackInvocation()
   650  	}
   651  
   652  	if ctx.Return(cb.Fn(
   653  		cb.Arg,
   654  		args[0],
   655  	)) {
   656  		return
   657  	}
   658  
   659  	js.ThrowCallbackValueNotReturned()
   660  }
   661  
   662  type SocketProperties struct {
   663  	// Persistent is "SocketProperties.persistent"
   664  	//
   665  	// Optional
   666  	//
   667  	// NOTE: FFI_USE_Persistent MUST be set to true to make this field effective.
   668  	Persistent bool
   669  	// Name is "SocketProperties.name"
   670  	//
   671  	// Optional
   672  	Name js.String
   673  
   674  	FFI_USE_Persistent bool // for Persistent.
   675  
   676  	FFI_USE bool
   677  }
   678  
   679  // FromRef calls UpdateFrom and returns a SocketProperties with all fields set.
   680  func (p SocketProperties) FromRef(ref js.Ref) SocketProperties {
   681  	p.UpdateFrom(ref)
   682  	return p
   683  }
   684  
   685  // New creates a new SocketProperties in the application heap.
   686  func (p SocketProperties) New() js.Ref {
   687  	return bindings.SocketPropertiesJSLoad(
   688  		js.Pointer(&p), js.True, 0,
   689  	)
   690  }
   691  
   692  // UpdateFrom copies value of all fields of the heap object to p.
   693  func (p *SocketProperties) UpdateFrom(ref js.Ref) {
   694  	bindings.SocketPropertiesJSStore(
   695  		js.Pointer(p), ref,
   696  	)
   697  }
   698  
   699  // Update writes all fields of the p to the heap object referenced by ref.
   700  func (p *SocketProperties) Update(ref js.Ref) {
   701  	bindings.SocketPropertiesJSLoad(
   702  		js.Pointer(p), js.False, ref,
   703  	)
   704  }
   705  
   706  // FreeMembers frees fields with heap reference, if recursive is true
   707  // free all heap references reachable from p.
   708  func (p *SocketProperties) FreeMembers(recursive bool) {
   709  	js.Free(
   710  		p.Name.Ref(),
   711  	)
   712  	p.Name = p.Name.FromRef(js.Undefined)
   713  }
   714  
   715  type UpdateCallbackFunc func(this js.Ref) js.Ref
   716  
   717  func (fn UpdateCallbackFunc) Register() js.Func[func()] {
   718  	return js.RegisterCallback[func()](
   719  		fn, abi.FuncPCABIInternal(fn),
   720  	)
   721  }
   722  
   723  func (fn UpdateCallbackFunc) DispatchCallback(
   724  	targetPC uintptr, ctx *js.CallbackContext,
   725  ) {
   726  	args := ctx.Args()
   727  	if len(args) != 0+1 /* js this */ ||
   728  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   729  		js.ThrowInvalidCallbackInvocation()
   730  	}
   731  
   732  	if ctx.Return(fn(
   733  		args[0],
   734  	)) {
   735  		return
   736  	}
   737  
   738  	js.ThrowCallbackValueNotReturned()
   739  }
   740  
   741  type UpdateCallback[T any] struct {
   742  	Fn  func(arg T, this js.Ref) js.Ref
   743  	Arg T
   744  }
   745  
   746  func (cb *UpdateCallback[T]) Register() js.Func[func()] {
   747  	return js.RegisterCallback[func()](
   748  		cb, abi.FuncPCABIInternal(cb.Fn),
   749  	)
   750  }
   751  
   752  func (cb *UpdateCallback[T]) DispatchCallback(
   753  	targetPC uintptr, ctx *js.CallbackContext,
   754  ) {
   755  	args := ctx.Args()
   756  	if len(args) != 0+1 /* js this */ ||
   757  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   758  		js.ThrowInvalidCallbackInvocation()
   759  	}
   760  
   761  	if ctx.Return(cb.Fn(
   762  		cb.Arg,
   763  		args[0],
   764  	)) {
   765  		return
   766  	}
   767  
   768  	js.ThrowCallbackValueNotReturned()
   769  }
   770  
   771  // HasFuncClose returns true if the function "WEBEXT.sockets.tcpServer.close" exists.
   772  func HasFuncClose() bool {
   773  	return js.True == bindings.HasFuncClose()
   774  }
   775  
   776  // FuncClose returns the function "WEBEXT.sockets.tcpServer.close".
   777  func FuncClose() (fn js.Func[func(socketId int32, callback js.Func[func()])]) {
   778  	bindings.FuncClose(
   779  		js.Pointer(&fn),
   780  	)
   781  	return
   782  }
   783  
   784  // Close calls the function "WEBEXT.sockets.tcpServer.close" directly.
   785  func Close(socketId int32, callback js.Func[func()]) (ret js.Void) {
   786  	bindings.CallClose(
   787  		js.Pointer(&ret),
   788  		int32(socketId),
   789  		callback.Ref(),
   790  	)
   791  
   792  	return
   793  }
   794  
   795  // TryClose calls the function "WEBEXT.sockets.tcpServer.close"
   796  // in a try/catch block and returns (_, err, ok = false) when it went through
   797  // the catch clause.
   798  func TryClose(socketId int32, callback js.Func[func()]) (ret js.Void, exception js.Any, ok bool) {
   799  	ok = js.True == bindings.TryClose(
   800  		js.Pointer(&ret), js.Pointer(&exception),
   801  		int32(socketId),
   802  		callback.Ref(),
   803  	)
   804  
   805  	return
   806  }
   807  
   808  // HasFuncCreate returns true if the function "WEBEXT.sockets.tcpServer.create" exists.
   809  func HasFuncCreate() bool {
   810  	return js.True == bindings.HasFuncCreate()
   811  }
   812  
   813  // FuncCreate returns the function "WEBEXT.sockets.tcpServer.create".
   814  func FuncCreate() (fn js.Func[func(properties SocketProperties, callback js.Func[func(createInfo *CreateInfo)])]) {
   815  	bindings.FuncCreate(
   816  		js.Pointer(&fn),
   817  	)
   818  	return
   819  }
   820  
   821  // Create calls the function "WEBEXT.sockets.tcpServer.create" directly.
   822  func Create(properties SocketProperties, callback js.Func[func(createInfo *CreateInfo)]) (ret js.Void) {
   823  	bindings.CallCreate(
   824  		js.Pointer(&ret),
   825  		js.Pointer(&properties),
   826  		callback.Ref(),
   827  	)
   828  
   829  	return
   830  }
   831  
   832  // TryCreate calls the function "WEBEXT.sockets.tcpServer.create"
   833  // in a try/catch block and returns (_, err, ok = false) when it went through
   834  // the catch clause.
   835  func TryCreate(properties SocketProperties, callback js.Func[func(createInfo *CreateInfo)]) (ret js.Void, exception js.Any, ok bool) {
   836  	ok = js.True == bindings.TryCreate(
   837  		js.Pointer(&ret), js.Pointer(&exception),
   838  		js.Pointer(&properties),
   839  		callback.Ref(),
   840  	)
   841  
   842  	return
   843  }
   844  
   845  // HasFuncDisconnect returns true if the function "WEBEXT.sockets.tcpServer.disconnect" exists.
   846  func HasFuncDisconnect() bool {
   847  	return js.True == bindings.HasFuncDisconnect()
   848  }
   849  
   850  // FuncDisconnect returns the function "WEBEXT.sockets.tcpServer.disconnect".
   851  func FuncDisconnect() (fn js.Func[func(socketId int32, callback js.Func[func()])]) {
   852  	bindings.FuncDisconnect(
   853  		js.Pointer(&fn),
   854  	)
   855  	return
   856  }
   857  
   858  // Disconnect calls the function "WEBEXT.sockets.tcpServer.disconnect" directly.
   859  func Disconnect(socketId int32, callback js.Func[func()]) (ret js.Void) {
   860  	bindings.CallDisconnect(
   861  		js.Pointer(&ret),
   862  		int32(socketId),
   863  		callback.Ref(),
   864  	)
   865  
   866  	return
   867  }
   868  
   869  // TryDisconnect calls the function "WEBEXT.sockets.tcpServer.disconnect"
   870  // in a try/catch block and returns (_, err, ok = false) when it went through
   871  // the catch clause.
   872  func TryDisconnect(socketId int32, callback js.Func[func()]) (ret js.Void, exception js.Any, ok bool) {
   873  	ok = js.True == bindings.TryDisconnect(
   874  		js.Pointer(&ret), js.Pointer(&exception),
   875  		int32(socketId),
   876  		callback.Ref(),
   877  	)
   878  
   879  	return
   880  }
   881  
   882  // HasFuncGetInfo returns true if the function "WEBEXT.sockets.tcpServer.getInfo" exists.
   883  func HasFuncGetInfo() bool {
   884  	return js.True == bindings.HasFuncGetInfo()
   885  }
   886  
   887  // FuncGetInfo returns the function "WEBEXT.sockets.tcpServer.getInfo".
   888  func FuncGetInfo() (fn js.Func[func(socketId int32, callback js.Func[func(socketInfo *SocketInfo)])]) {
   889  	bindings.FuncGetInfo(
   890  		js.Pointer(&fn),
   891  	)
   892  	return
   893  }
   894  
   895  // GetInfo calls the function "WEBEXT.sockets.tcpServer.getInfo" directly.
   896  func GetInfo(socketId int32, callback js.Func[func(socketInfo *SocketInfo)]) (ret js.Void) {
   897  	bindings.CallGetInfo(
   898  		js.Pointer(&ret),
   899  		int32(socketId),
   900  		callback.Ref(),
   901  	)
   902  
   903  	return
   904  }
   905  
   906  // TryGetInfo calls the function "WEBEXT.sockets.tcpServer.getInfo"
   907  // in a try/catch block and returns (_, err, ok = false) when it went through
   908  // the catch clause.
   909  func TryGetInfo(socketId int32, callback js.Func[func(socketInfo *SocketInfo)]) (ret js.Void, exception js.Any, ok bool) {
   910  	ok = js.True == bindings.TryGetInfo(
   911  		js.Pointer(&ret), js.Pointer(&exception),
   912  		int32(socketId),
   913  		callback.Ref(),
   914  	)
   915  
   916  	return
   917  }
   918  
   919  // HasFuncGetSockets returns true if the function "WEBEXT.sockets.tcpServer.getSockets" exists.
   920  func HasFuncGetSockets() bool {
   921  	return js.True == bindings.HasFuncGetSockets()
   922  }
   923  
   924  // FuncGetSockets returns the function "WEBEXT.sockets.tcpServer.getSockets".
   925  func FuncGetSockets() (fn js.Func[func(callback js.Func[func(socketInfos js.Array[SocketInfo])])]) {
   926  	bindings.FuncGetSockets(
   927  		js.Pointer(&fn),
   928  	)
   929  	return
   930  }
   931  
   932  // GetSockets calls the function "WEBEXT.sockets.tcpServer.getSockets" directly.
   933  func GetSockets(callback js.Func[func(socketInfos js.Array[SocketInfo])]) (ret js.Void) {
   934  	bindings.CallGetSockets(
   935  		js.Pointer(&ret),
   936  		callback.Ref(),
   937  	)
   938  
   939  	return
   940  }
   941  
   942  // TryGetSockets calls the function "WEBEXT.sockets.tcpServer.getSockets"
   943  // in a try/catch block and returns (_, err, ok = false) when it went through
   944  // the catch clause.
   945  func TryGetSockets(callback js.Func[func(socketInfos js.Array[SocketInfo])]) (ret js.Void, exception js.Any, ok bool) {
   946  	ok = js.True == bindings.TryGetSockets(
   947  		js.Pointer(&ret), js.Pointer(&exception),
   948  		callback.Ref(),
   949  	)
   950  
   951  	return
   952  }
   953  
   954  // HasFuncListen returns true if the function "WEBEXT.sockets.tcpServer.listen" exists.
   955  func HasFuncListen() bool {
   956  	return js.True == bindings.HasFuncListen()
   957  }
   958  
   959  // FuncListen returns the function "WEBEXT.sockets.tcpServer.listen".
   960  func FuncListen() (fn js.Func[func(socketId int32, address js.String, port int32, backlog int32, callback js.Func[func(result int32)])]) {
   961  	bindings.FuncListen(
   962  		js.Pointer(&fn),
   963  	)
   964  	return
   965  }
   966  
   967  // Listen calls the function "WEBEXT.sockets.tcpServer.listen" directly.
   968  func Listen(socketId int32, address js.String, port int32, backlog int32, callback js.Func[func(result int32)]) (ret js.Void) {
   969  	bindings.CallListen(
   970  		js.Pointer(&ret),
   971  		int32(socketId),
   972  		address.Ref(),
   973  		int32(port),
   974  		int32(backlog),
   975  		callback.Ref(),
   976  	)
   977  
   978  	return
   979  }
   980  
   981  // TryListen calls the function "WEBEXT.sockets.tcpServer.listen"
   982  // in a try/catch block and returns (_, err, ok = false) when it went through
   983  // the catch clause.
   984  func TryListen(socketId int32, address js.String, port int32, backlog int32, callback js.Func[func(result int32)]) (ret js.Void, exception js.Any, ok bool) {
   985  	ok = js.True == bindings.TryListen(
   986  		js.Pointer(&ret), js.Pointer(&exception),
   987  		int32(socketId),
   988  		address.Ref(),
   989  		int32(port),
   990  		int32(backlog),
   991  		callback.Ref(),
   992  	)
   993  
   994  	return
   995  }
   996  
   997  type OnAcceptEventCallbackFunc func(this js.Ref, info *AcceptInfo) js.Ref
   998  
   999  func (fn OnAcceptEventCallbackFunc) Register() js.Func[func(info *AcceptInfo)] {
  1000  	return js.RegisterCallback[func(info *AcceptInfo)](
  1001  		fn, abi.FuncPCABIInternal(fn),
  1002  	)
  1003  }
  1004  
  1005  func (fn OnAcceptEventCallbackFunc) DispatchCallback(
  1006  	targetPC uintptr, ctx *js.CallbackContext,
  1007  ) {
  1008  	args := ctx.Args()
  1009  	if len(args) != 1+1 /* js this */ ||
  1010  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  1011  		js.ThrowInvalidCallbackInvocation()
  1012  	}
  1013  	var arg0 AcceptInfo
  1014  	arg0.UpdateFrom(args[0+1])
  1015  	defer arg0.FreeMembers(true)
  1016  
  1017  	if ctx.Return(fn(
  1018  		args[0],
  1019  
  1020  		mark.NoEscape(&arg0),
  1021  	)) {
  1022  		return
  1023  	}
  1024  
  1025  	js.ThrowCallbackValueNotReturned()
  1026  }
  1027  
  1028  type OnAcceptEventCallback[T any] struct {
  1029  	Fn  func(arg T, this js.Ref, info *AcceptInfo) js.Ref
  1030  	Arg T
  1031  }
  1032  
  1033  func (cb *OnAcceptEventCallback[T]) Register() js.Func[func(info *AcceptInfo)] {
  1034  	return js.RegisterCallback[func(info *AcceptInfo)](
  1035  		cb, abi.FuncPCABIInternal(cb.Fn),
  1036  	)
  1037  }
  1038  
  1039  func (cb *OnAcceptEventCallback[T]) DispatchCallback(
  1040  	targetPC uintptr, ctx *js.CallbackContext,
  1041  ) {
  1042  	args := ctx.Args()
  1043  	if len(args) != 1+1 /* js this */ ||
  1044  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  1045  		js.ThrowInvalidCallbackInvocation()
  1046  	}
  1047  	var arg0 AcceptInfo
  1048  	arg0.UpdateFrom(args[0+1])
  1049  	defer arg0.FreeMembers(true)
  1050  
  1051  	if ctx.Return(cb.Fn(
  1052  		cb.Arg,
  1053  		args[0],
  1054  
  1055  		mark.NoEscape(&arg0),
  1056  	)) {
  1057  		return
  1058  	}
  1059  
  1060  	js.ThrowCallbackValueNotReturned()
  1061  }
  1062  
  1063  // HasFuncOnAccept returns true if the function "WEBEXT.sockets.tcpServer.onAccept.addListener" exists.
  1064  func HasFuncOnAccept() bool {
  1065  	return js.True == bindings.HasFuncOnAccept()
  1066  }
  1067  
  1068  // FuncOnAccept returns the function "WEBEXT.sockets.tcpServer.onAccept.addListener".
  1069  func FuncOnAccept() (fn js.Func[func(callback js.Func[func(info *AcceptInfo)])]) {
  1070  	bindings.FuncOnAccept(
  1071  		js.Pointer(&fn),
  1072  	)
  1073  	return
  1074  }
  1075  
  1076  // OnAccept calls the function "WEBEXT.sockets.tcpServer.onAccept.addListener" directly.
  1077  func OnAccept(callback js.Func[func(info *AcceptInfo)]) (ret js.Void) {
  1078  	bindings.CallOnAccept(
  1079  		js.Pointer(&ret),
  1080  		callback.Ref(),
  1081  	)
  1082  
  1083  	return
  1084  }
  1085  
  1086  // TryOnAccept calls the function "WEBEXT.sockets.tcpServer.onAccept.addListener"
  1087  // in a try/catch block and returns (_, err, ok = false) when it went through
  1088  // the catch clause.
  1089  func TryOnAccept(callback js.Func[func(info *AcceptInfo)]) (ret js.Void, exception js.Any, ok bool) {
  1090  	ok = js.True == bindings.TryOnAccept(
  1091  		js.Pointer(&ret), js.Pointer(&exception),
  1092  		callback.Ref(),
  1093  	)
  1094  
  1095  	return
  1096  }
  1097  
  1098  // HasFuncOffAccept returns true if the function "WEBEXT.sockets.tcpServer.onAccept.removeListener" exists.
  1099  func HasFuncOffAccept() bool {
  1100  	return js.True == bindings.HasFuncOffAccept()
  1101  }
  1102  
  1103  // FuncOffAccept returns the function "WEBEXT.sockets.tcpServer.onAccept.removeListener".
  1104  func FuncOffAccept() (fn js.Func[func(callback js.Func[func(info *AcceptInfo)])]) {
  1105  	bindings.FuncOffAccept(
  1106  		js.Pointer(&fn),
  1107  	)
  1108  	return
  1109  }
  1110  
  1111  // OffAccept calls the function "WEBEXT.sockets.tcpServer.onAccept.removeListener" directly.
  1112  func OffAccept(callback js.Func[func(info *AcceptInfo)]) (ret js.Void) {
  1113  	bindings.CallOffAccept(
  1114  		js.Pointer(&ret),
  1115  		callback.Ref(),
  1116  	)
  1117  
  1118  	return
  1119  }
  1120  
  1121  // TryOffAccept calls the function "WEBEXT.sockets.tcpServer.onAccept.removeListener"
  1122  // in a try/catch block and returns (_, err, ok = false) when it went through
  1123  // the catch clause.
  1124  func TryOffAccept(callback js.Func[func(info *AcceptInfo)]) (ret js.Void, exception js.Any, ok bool) {
  1125  	ok = js.True == bindings.TryOffAccept(
  1126  		js.Pointer(&ret), js.Pointer(&exception),
  1127  		callback.Ref(),
  1128  	)
  1129  
  1130  	return
  1131  }
  1132  
  1133  // HasFuncHasOnAccept returns true if the function "WEBEXT.sockets.tcpServer.onAccept.hasListener" exists.
  1134  func HasFuncHasOnAccept() bool {
  1135  	return js.True == bindings.HasFuncHasOnAccept()
  1136  }
  1137  
  1138  // FuncHasOnAccept returns the function "WEBEXT.sockets.tcpServer.onAccept.hasListener".
  1139  func FuncHasOnAccept() (fn js.Func[func(callback js.Func[func(info *AcceptInfo)]) bool]) {
  1140  	bindings.FuncHasOnAccept(
  1141  		js.Pointer(&fn),
  1142  	)
  1143  	return
  1144  }
  1145  
  1146  // HasOnAccept calls the function "WEBEXT.sockets.tcpServer.onAccept.hasListener" directly.
  1147  func HasOnAccept(callback js.Func[func(info *AcceptInfo)]) (ret bool) {
  1148  	bindings.CallHasOnAccept(
  1149  		js.Pointer(&ret),
  1150  		callback.Ref(),
  1151  	)
  1152  
  1153  	return
  1154  }
  1155  
  1156  // TryHasOnAccept calls the function "WEBEXT.sockets.tcpServer.onAccept.hasListener"
  1157  // in a try/catch block and returns (_, err, ok = false) when it went through
  1158  // the catch clause.
  1159  func TryHasOnAccept(callback js.Func[func(info *AcceptInfo)]) (ret bool, exception js.Any, ok bool) {
  1160  	ok = js.True == bindings.TryHasOnAccept(
  1161  		js.Pointer(&ret), js.Pointer(&exception),
  1162  		callback.Ref(),
  1163  	)
  1164  
  1165  	return
  1166  }
  1167  
  1168  type OnAcceptErrorEventCallbackFunc func(this js.Ref, info *AcceptErrorInfo) js.Ref
  1169  
  1170  func (fn OnAcceptErrorEventCallbackFunc) Register() js.Func[func(info *AcceptErrorInfo)] {
  1171  	return js.RegisterCallback[func(info *AcceptErrorInfo)](
  1172  		fn, abi.FuncPCABIInternal(fn),
  1173  	)
  1174  }
  1175  
  1176  func (fn OnAcceptErrorEventCallbackFunc) DispatchCallback(
  1177  	targetPC uintptr, ctx *js.CallbackContext,
  1178  ) {
  1179  	args := ctx.Args()
  1180  	if len(args) != 1+1 /* js this */ ||
  1181  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  1182  		js.ThrowInvalidCallbackInvocation()
  1183  	}
  1184  	var arg0 AcceptErrorInfo
  1185  	arg0.UpdateFrom(args[0+1])
  1186  	defer arg0.FreeMembers(true)
  1187  
  1188  	if ctx.Return(fn(
  1189  		args[0],
  1190  
  1191  		mark.NoEscape(&arg0),
  1192  	)) {
  1193  		return
  1194  	}
  1195  
  1196  	js.ThrowCallbackValueNotReturned()
  1197  }
  1198  
  1199  type OnAcceptErrorEventCallback[T any] struct {
  1200  	Fn  func(arg T, this js.Ref, info *AcceptErrorInfo) js.Ref
  1201  	Arg T
  1202  }
  1203  
  1204  func (cb *OnAcceptErrorEventCallback[T]) Register() js.Func[func(info *AcceptErrorInfo)] {
  1205  	return js.RegisterCallback[func(info *AcceptErrorInfo)](
  1206  		cb, abi.FuncPCABIInternal(cb.Fn),
  1207  	)
  1208  }
  1209  
  1210  func (cb *OnAcceptErrorEventCallback[T]) DispatchCallback(
  1211  	targetPC uintptr, ctx *js.CallbackContext,
  1212  ) {
  1213  	args := ctx.Args()
  1214  	if len(args) != 1+1 /* js this */ ||
  1215  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  1216  		js.ThrowInvalidCallbackInvocation()
  1217  	}
  1218  	var arg0 AcceptErrorInfo
  1219  	arg0.UpdateFrom(args[0+1])
  1220  	defer arg0.FreeMembers(true)
  1221  
  1222  	if ctx.Return(cb.Fn(
  1223  		cb.Arg,
  1224  		args[0],
  1225  
  1226  		mark.NoEscape(&arg0),
  1227  	)) {
  1228  		return
  1229  	}
  1230  
  1231  	js.ThrowCallbackValueNotReturned()
  1232  }
  1233  
  1234  // HasFuncOnAcceptError returns true if the function "WEBEXT.sockets.tcpServer.onAcceptError.addListener" exists.
  1235  func HasFuncOnAcceptError() bool {
  1236  	return js.True == bindings.HasFuncOnAcceptError()
  1237  }
  1238  
  1239  // FuncOnAcceptError returns the function "WEBEXT.sockets.tcpServer.onAcceptError.addListener".
  1240  func FuncOnAcceptError() (fn js.Func[func(callback js.Func[func(info *AcceptErrorInfo)])]) {
  1241  	bindings.FuncOnAcceptError(
  1242  		js.Pointer(&fn),
  1243  	)
  1244  	return
  1245  }
  1246  
  1247  // OnAcceptError calls the function "WEBEXT.sockets.tcpServer.onAcceptError.addListener" directly.
  1248  func OnAcceptError(callback js.Func[func(info *AcceptErrorInfo)]) (ret js.Void) {
  1249  	bindings.CallOnAcceptError(
  1250  		js.Pointer(&ret),
  1251  		callback.Ref(),
  1252  	)
  1253  
  1254  	return
  1255  }
  1256  
  1257  // TryOnAcceptError calls the function "WEBEXT.sockets.tcpServer.onAcceptError.addListener"
  1258  // in a try/catch block and returns (_, err, ok = false) when it went through
  1259  // the catch clause.
  1260  func TryOnAcceptError(callback js.Func[func(info *AcceptErrorInfo)]) (ret js.Void, exception js.Any, ok bool) {
  1261  	ok = js.True == bindings.TryOnAcceptError(
  1262  		js.Pointer(&ret), js.Pointer(&exception),
  1263  		callback.Ref(),
  1264  	)
  1265  
  1266  	return
  1267  }
  1268  
  1269  // HasFuncOffAcceptError returns true if the function "WEBEXT.sockets.tcpServer.onAcceptError.removeListener" exists.
  1270  func HasFuncOffAcceptError() bool {
  1271  	return js.True == bindings.HasFuncOffAcceptError()
  1272  }
  1273  
  1274  // FuncOffAcceptError returns the function "WEBEXT.sockets.tcpServer.onAcceptError.removeListener".
  1275  func FuncOffAcceptError() (fn js.Func[func(callback js.Func[func(info *AcceptErrorInfo)])]) {
  1276  	bindings.FuncOffAcceptError(
  1277  		js.Pointer(&fn),
  1278  	)
  1279  	return
  1280  }
  1281  
  1282  // OffAcceptError calls the function "WEBEXT.sockets.tcpServer.onAcceptError.removeListener" directly.
  1283  func OffAcceptError(callback js.Func[func(info *AcceptErrorInfo)]) (ret js.Void) {
  1284  	bindings.CallOffAcceptError(
  1285  		js.Pointer(&ret),
  1286  		callback.Ref(),
  1287  	)
  1288  
  1289  	return
  1290  }
  1291  
  1292  // TryOffAcceptError calls the function "WEBEXT.sockets.tcpServer.onAcceptError.removeListener"
  1293  // in a try/catch block and returns (_, err, ok = false) when it went through
  1294  // the catch clause.
  1295  func TryOffAcceptError(callback js.Func[func(info *AcceptErrorInfo)]) (ret js.Void, exception js.Any, ok bool) {
  1296  	ok = js.True == bindings.TryOffAcceptError(
  1297  		js.Pointer(&ret), js.Pointer(&exception),
  1298  		callback.Ref(),
  1299  	)
  1300  
  1301  	return
  1302  }
  1303  
  1304  // HasFuncHasOnAcceptError returns true if the function "WEBEXT.sockets.tcpServer.onAcceptError.hasListener" exists.
  1305  func HasFuncHasOnAcceptError() bool {
  1306  	return js.True == bindings.HasFuncHasOnAcceptError()
  1307  }
  1308  
  1309  // FuncHasOnAcceptError returns the function "WEBEXT.sockets.tcpServer.onAcceptError.hasListener".
  1310  func FuncHasOnAcceptError() (fn js.Func[func(callback js.Func[func(info *AcceptErrorInfo)]) bool]) {
  1311  	bindings.FuncHasOnAcceptError(
  1312  		js.Pointer(&fn),
  1313  	)
  1314  	return
  1315  }
  1316  
  1317  // HasOnAcceptError calls the function "WEBEXT.sockets.tcpServer.onAcceptError.hasListener" directly.
  1318  func HasOnAcceptError(callback js.Func[func(info *AcceptErrorInfo)]) (ret bool) {
  1319  	bindings.CallHasOnAcceptError(
  1320  		js.Pointer(&ret),
  1321  		callback.Ref(),
  1322  	)
  1323  
  1324  	return
  1325  }
  1326  
  1327  // TryHasOnAcceptError calls the function "WEBEXT.sockets.tcpServer.onAcceptError.hasListener"
  1328  // in a try/catch block and returns (_, err, ok = false) when it went through
  1329  // the catch clause.
  1330  func TryHasOnAcceptError(callback js.Func[func(info *AcceptErrorInfo)]) (ret bool, exception js.Any, ok bool) {
  1331  	ok = js.True == bindings.TryHasOnAcceptError(
  1332  		js.Pointer(&ret), js.Pointer(&exception),
  1333  		callback.Ref(),
  1334  	)
  1335  
  1336  	return
  1337  }
  1338  
  1339  // HasFuncSetPaused returns true if the function "WEBEXT.sockets.tcpServer.setPaused" exists.
  1340  func HasFuncSetPaused() bool {
  1341  	return js.True == bindings.HasFuncSetPaused()
  1342  }
  1343  
  1344  // FuncSetPaused returns the function "WEBEXT.sockets.tcpServer.setPaused".
  1345  func FuncSetPaused() (fn js.Func[func(socketId int32, paused bool, callback js.Func[func()])]) {
  1346  	bindings.FuncSetPaused(
  1347  		js.Pointer(&fn),
  1348  	)
  1349  	return
  1350  }
  1351  
  1352  // SetPaused calls the function "WEBEXT.sockets.tcpServer.setPaused" directly.
  1353  func SetPaused(socketId int32, paused bool, callback js.Func[func()]) (ret js.Void) {
  1354  	bindings.CallSetPaused(
  1355  		js.Pointer(&ret),
  1356  		int32(socketId),
  1357  		js.Bool(bool(paused)),
  1358  		callback.Ref(),
  1359  	)
  1360  
  1361  	return
  1362  }
  1363  
  1364  // TrySetPaused calls the function "WEBEXT.sockets.tcpServer.setPaused"
  1365  // in a try/catch block and returns (_, err, ok = false) when it went through
  1366  // the catch clause.
  1367  func TrySetPaused(socketId int32, paused bool, callback js.Func[func()]) (ret js.Void, exception js.Any, ok bool) {
  1368  	ok = js.True == bindings.TrySetPaused(
  1369  		js.Pointer(&ret), js.Pointer(&exception),
  1370  		int32(socketId),
  1371  		js.Bool(bool(paused)),
  1372  		callback.Ref(),
  1373  	)
  1374  
  1375  	return
  1376  }
  1377  
  1378  // HasFuncUpdate returns true if the function "WEBEXT.sockets.tcpServer.update" exists.
  1379  func HasFuncUpdate() bool {
  1380  	return js.True == bindings.HasFuncUpdate()
  1381  }
  1382  
  1383  // FuncUpdate returns the function "WEBEXT.sockets.tcpServer.update".
  1384  func FuncUpdate() (fn js.Func[func(socketId int32, properties SocketProperties, callback js.Func[func()])]) {
  1385  	bindings.FuncUpdate(
  1386  		js.Pointer(&fn),
  1387  	)
  1388  	return
  1389  }
  1390  
  1391  // Update calls the function "WEBEXT.sockets.tcpServer.update" directly.
  1392  func Update(socketId int32, properties SocketProperties, callback js.Func[func()]) (ret js.Void) {
  1393  	bindings.CallUpdate(
  1394  		js.Pointer(&ret),
  1395  		int32(socketId),
  1396  		js.Pointer(&properties),
  1397  		callback.Ref(),
  1398  	)
  1399  
  1400  	return
  1401  }
  1402  
  1403  // TryUpdate calls the function "WEBEXT.sockets.tcpServer.update"
  1404  // in a try/catch block and returns (_, err, ok = false) when it went through
  1405  // the catch clause.
  1406  func TryUpdate(socketId int32, properties SocketProperties, callback js.Func[func()]) (ret js.Void, exception js.Any, ok bool) {
  1407  	ok = js.True == bindings.TryUpdate(
  1408  		js.Pointer(&ret), js.Pointer(&exception),
  1409  		int32(socketId),
  1410  		js.Pointer(&properties),
  1411  		callback.Ref(),
  1412  	)
  1413  
  1414  	return
  1415  }