func DataFilterInitFromJS(value js.Wrapper) *DataFilterInit {
	input := value.JSValue()
	var out DataFilterInit
	var (
		value0 *Union  
		value1 *Union  
	)
	value0 = UnionFromJS(input.Get("dataPrefix"))
	out.DataPrefix = value0
	value1 = UnionFromJS(input.Get("mask"))
	out.Mask = value1
	return &out
}
DataFilterInitFromJS is allocating a new
DataFilterInit object and copy all values from
input javascript object
package bluetooth
import "syscall/js"
import (
	"github.com/gowebapi/webapi/dom/domcore"
	"github.com/gowebapi/webapi/dom/permissions"
	"github.com/gowebapi/webapi/javascript"
)
func unused(value interface{}) {
}
type Union struct {
	Value js.Value
}
func (u *Union) JSValue() js.Value {
	return u.Value
}
func UnionFromJS(value js.Value) *Union {
	return &Union{Value: value}
}
type ManufacturerDataMapForEachFunc func(currentValue *javascript.DataView, currentKey int, listObj *ManufacturerDataMap)
type ManufacturerDataMapForEach js.Func
func ManufacturerDataMapForEachToJS(callback ManufacturerDataMapForEachFunc) *ManufacturerDataMapForEach {
	if callback == nil {
		return nil
	}
	ret := ManufacturerDataMapForEach(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 *javascript.DataView  
			_p1 int                   
			_p2 *ManufacturerDataMap  
		)
		_p0 = javascript.DataViewFromJS(args[0])
		_p1 = (args[1]).Int()
		_p2 = ManufacturerDataMapFromJS(args[2])
		callback(_p0, _p1, _p2)
		return nil
	}))
	return &ret
}
func ManufacturerDataMapForEachFromJS(_value js.Value) ManufacturerDataMapForEachFunc {
	return func(currentValue *javascript.DataView, currentKey int, listObj *ManufacturerDataMap) {
		var (
			_args [3]interface{}
			_end  int
		)
		_p0 := currentValue.JSValue()
		_args[0] = _p0
		_end++
		_p1 := currentKey
		_args[1] = _p1
		_end++
		_p2 := listObj.JSValue()
		_args[2] = _p2
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseDeviceOnFulfilledFunc func(value *Device)
type PromiseDeviceOnFulfilled js.Func
func PromiseDeviceOnFulfilledToJS(callback PromiseDeviceOnFulfilledFunc) *PromiseDeviceOnFulfilled {
	if callback == nil {
		return nil
	}
	ret := PromiseDeviceOnFulfilled(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 *Device  
		)
		_p0 = DeviceFromJS(args[0])
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseDeviceOnFulfilledFromJS(_value js.Value) PromiseDeviceOnFulfilledFunc {
	return func(value *Device) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := value.JSValue()
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseDeviceOnRejectedFunc func(reason js.Value)
type PromiseDeviceOnRejected js.Func
func PromiseDeviceOnRejectedToJS(callback PromiseDeviceOnRejectedFunc) *PromiseDeviceOnRejected {
	if callback == nil {
		return nil
	}
	ret := PromiseDeviceOnRejected(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 js.Value  
		)
		_p0 = args[0]
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseDeviceOnRejectedFromJS(_value js.Value) PromiseDeviceOnRejectedFunc {
	return func(reason js.Value) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := reason
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseRemoteGATTCharacteristicOnFulfilledFunc func(value *RemoteGATTCharacteristic)
type PromiseRemoteGATTCharacteristicOnFulfilled js.Func
func PromiseRemoteGATTCharacteristicOnFulfilledToJS(callback PromiseRemoteGATTCharacteristicOnFulfilledFunc) *PromiseRemoteGATTCharacteristicOnFulfilled {
	if callback == nil {
		return nil
	}
	ret := PromiseRemoteGATTCharacteristicOnFulfilled(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 *RemoteGATTCharacteristic  
		)
		_p0 = RemoteGATTCharacteristicFromJS(args[0])
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseRemoteGATTCharacteristicOnFulfilledFromJS(_value js.Value) PromiseRemoteGATTCharacteristicOnFulfilledFunc {
	return func(value *RemoteGATTCharacteristic) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := value.JSValue()
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseRemoteGATTCharacteristicOnRejectedFunc func(reason js.Value)
type PromiseRemoteGATTCharacteristicOnRejected js.Func
func PromiseRemoteGATTCharacteristicOnRejectedToJS(callback PromiseRemoteGATTCharacteristicOnRejectedFunc) *PromiseRemoteGATTCharacteristicOnRejected {
	if callback == nil {
		return nil
	}
	ret := PromiseRemoteGATTCharacteristicOnRejected(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 js.Value  
		)
		_p0 = args[0]
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseRemoteGATTCharacteristicOnRejectedFromJS(_value js.Value) PromiseRemoteGATTCharacteristicOnRejectedFunc {
	return func(reason js.Value) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := reason
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseRemoteGATTDescriptorOnFulfilledFunc func(value *RemoteGATTDescriptor)
type PromiseRemoteGATTDescriptorOnFulfilled js.Func
func PromiseRemoteGATTDescriptorOnFulfilledToJS(callback PromiseRemoteGATTDescriptorOnFulfilledFunc) *PromiseRemoteGATTDescriptorOnFulfilled {
	if callback == nil {
		return nil
	}
	ret := PromiseRemoteGATTDescriptorOnFulfilled(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 *RemoteGATTDescriptor  
		)
		_p0 = RemoteGATTDescriptorFromJS(args[0])
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseRemoteGATTDescriptorOnFulfilledFromJS(_value js.Value) PromiseRemoteGATTDescriptorOnFulfilledFunc {
	return func(value *RemoteGATTDescriptor) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := value.JSValue()
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseRemoteGATTDescriptorOnRejectedFunc func(reason js.Value)
type PromiseRemoteGATTDescriptorOnRejected js.Func
func PromiseRemoteGATTDescriptorOnRejectedToJS(callback PromiseRemoteGATTDescriptorOnRejectedFunc) *PromiseRemoteGATTDescriptorOnRejected {
	if callback == nil {
		return nil
	}
	ret := PromiseRemoteGATTDescriptorOnRejected(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 js.Value  
		)
		_p0 = args[0]
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseRemoteGATTDescriptorOnRejectedFromJS(_value js.Value) PromiseRemoteGATTDescriptorOnRejectedFunc {
	return func(reason js.Value) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := reason
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseRemoteGATTServerOnFulfilledFunc func(value *RemoteGATTServer)
type PromiseRemoteGATTServerOnFulfilled js.Func
func PromiseRemoteGATTServerOnFulfilledToJS(callback PromiseRemoteGATTServerOnFulfilledFunc) *PromiseRemoteGATTServerOnFulfilled {
	if callback == nil {
		return nil
	}
	ret := PromiseRemoteGATTServerOnFulfilled(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 *RemoteGATTServer  
		)
		_p0 = RemoteGATTServerFromJS(args[0])
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseRemoteGATTServerOnFulfilledFromJS(_value js.Value) PromiseRemoteGATTServerOnFulfilledFunc {
	return func(value *RemoteGATTServer) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := value.JSValue()
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseRemoteGATTServerOnRejectedFunc func(reason js.Value)
type PromiseRemoteGATTServerOnRejected js.Func
func PromiseRemoteGATTServerOnRejectedToJS(callback PromiseRemoteGATTServerOnRejectedFunc) *PromiseRemoteGATTServerOnRejected {
	if callback == nil {
		return nil
	}
	ret := PromiseRemoteGATTServerOnRejected(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 js.Value  
		)
		_p0 = args[0]
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseRemoteGATTServerOnRejectedFromJS(_value js.Value) PromiseRemoteGATTServerOnRejectedFunc {
	return func(reason js.Value) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := reason
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseRemoteGATTServiceOnFulfilledFunc func(value *RemoteGATTService)
type PromiseRemoteGATTServiceOnFulfilled js.Func
func PromiseRemoteGATTServiceOnFulfilledToJS(callback PromiseRemoteGATTServiceOnFulfilledFunc) *PromiseRemoteGATTServiceOnFulfilled {
	if callback == nil {
		return nil
	}
	ret := PromiseRemoteGATTServiceOnFulfilled(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 *RemoteGATTService  
		)
		_p0 = RemoteGATTServiceFromJS(args[0])
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseRemoteGATTServiceOnFulfilledFromJS(_value js.Value) PromiseRemoteGATTServiceOnFulfilledFunc {
	return func(value *RemoteGATTService) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := value.JSValue()
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseRemoteGATTServiceOnRejectedFunc func(reason js.Value)
type PromiseRemoteGATTServiceOnRejected js.Func
func PromiseRemoteGATTServiceOnRejectedToJS(callback PromiseRemoteGATTServiceOnRejectedFunc) *PromiseRemoteGATTServiceOnRejected {
	if callback == nil {
		return nil
	}
	ret := PromiseRemoteGATTServiceOnRejected(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 js.Value  
		)
		_p0 = args[0]
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseRemoteGATTServiceOnRejectedFromJS(_value js.Value) PromiseRemoteGATTServiceOnRejectedFunc {
	return func(reason js.Value) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := reason
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseSequenceRemoteGATTCharacteristicOnFulfilledFunc func(value []*RemoteGATTCharacteristic)
type PromiseSequenceRemoteGATTCharacteristicOnFulfilled js.Func
func PromiseSequenceRemoteGATTCharacteristicOnFulfilledToJS(callback PromiseSequenceRemoteGATTCharacteristicOnFulfilledFunc) *PromiseSequenceRemoteGATTCharacteristicOnFulfilled {
	if callback == nil {
		return nil
	}
	ret := PromiseSequenceRemoteGATTCharacteristicOnFulfilled(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 []*RemoteGATTCharacteristic  
		)
		__length0 := args[0].Length()
		__array0 := make([]*RemoteGATTCharacteristic, __length0, __length0)
		for __idx0 := 0; __idx0 < __length0; __idx0++ {
			var __seq_out0 *RemoteGATTCharacteristic
			__seq_in0 := args[0].Index(__idx0)
			__seq_out0 = RemoteGATTCharacteristicFromJS(__seq_in0)
			__array0[__idx0] = __seq_out0
		}
		_p0 = __array0
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseSequenceRemoteGATTCharacteristicOnFulfilledFromJS(_value js.Value) PromiseSequenceRemoteGATTCharacteristicOnFulfilledFunc {
	return func(value []*RemoteGATTCharacteristic) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := js.Global().Get("Array").New(len(value))
		for __idx0, __seq_in0 := range value {
			__seq_out0 := __seq_in0.JSValue()
			_p0.SetIndex(__idx0, __seq_out0)
		}
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseSequenceRemoteGATTCharacteristicOnRejectedFunc func(reason js.Value)
type PromiseSequenceRemoteGATTCharacteristicOnRejected js.Func
func PromiseSequenceRemoteGATTCharacteristicOnRejectedToJS(callback PromiseSequenceRemoteGATTCharacteristicOnRejectedFunc) *PromiseSequenceRemoteGATTCharacteristicOnRejected {
	if callback == nil {
		return nil
	}
	ret := PromiseSequenceRemoteGATTCharacteristicOnRejected(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 js.Value  
		)
		_p0 = args[0]
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseSequenceRemoteGATTCharacteristicOnRejectedFromJS(_value js.Value) PromiseSequenceRemoteGATTCharacteristicOnRejectedFunc {
	return func(reason js.Value) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := reason
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseSequenceRemoteGATTDescriptorOnFulfilledFunc func(value []*RemoteGATTDescriptor)
type PromiseSequenceRemoteGATTDescriptorOnFulfilled js.Func
func PromiseSequenceRemoteGATTDescriptorOnFulfilledToJS(callback PromiseSequenceRemoteGATTDescriptorOnFulfilledFunc) *PromiseSequenceRemoteGATTDescriptorOnFulfilled {
	if callback == nil {
		return nil
	}
	ret := PromiseSequenceRemoteGATTDescriptorOnFulfilled(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 []*RemoteGATTDescriptor  
		)
		__length0 := args[0].Length()
		__array0 := make([]*RemoteGATTDescriptor, __length0, __length0)
		for __idx0 := 0; __idx0 < __length0; __idx0++ {
			var __seq_out0 *RemoteGATTDescriptor
			__seq_in0 := args[0].Index(__idx0)
			__seq_out0 = RemoteGATTDescriptorFromJS(__seq_in0)
			__array0[__idx0] = __seq_out0
		}
		_p0 = __array0
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseSequenceRemoteGATTDescriptorOnFulfilledFromJS(_value js.Value) PromiseSequenceRemoteGATTDescriptorOnFulfilledFunc {
	return func(value []*RemoteGATTDescriptor) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := js.Global().Get("Array").New(len(value))
		for __idx0, __seq_in0 := range value {
			__seq_out0 := __seq_in0.JSValue()
			_p0.SetIndex(__idx0, __seq_out0)
		}
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseSequenceRemoteGATTDescriptorOnRejectedFunc func(reason js.Value)
type PromiseSequenceRemoteGATTDescriptorOnRejected js.Func
func PromiseSequenceRemoteGATTDescriptorOnRejectedToJS(callback PromiseSequenceRemoteGATTDescriptorOnRejectedFunc) *PromiseSequenceRemoteGATTDescriptorOnRejected {
	if callback == nil {
		return nil
	}
	ret := PromiseSequenceRemoteGATTDescriptorOnRejected(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 js.Value  
		)
		_p0 = args[0]
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseSequenceRemoteGATTDescriptorOnRejectedFromJS(_value js.Value) PromiseSequenceRemoteGATTDescriptorOnRejectedFunc {
	return func(reason js.Value) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := reason
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseSequenceRemoteGATTServiceOnFulfilledFunc func(value []*RemoteGATTService)
type PromiseSequenceRemoteGATTServiceOnFulfilled js.Func
func PromiseSequenceRemoteGATTServiceOnFulfilledToJS(callback PromiseSequenceRemoteGATTServiceOnFulfilledFunc) *PromiseSequenceRemoteGATTServiceOnFulfilled {
	if callback == nil {
		return nil
	}
	ret := PromiseSequenceRemoteGATTServiceOnFulfilled(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 []*RemoteGATTService  
		)
		__length0 := args[0].Length()
		__array0 := make([]*RemoteGATTService, __length0, __length0)
		for __idx0 := 0; __idx0 < __length0; __idx0++ {
			var __seq_out0 *RemoteGATTService
			__seq_in0 := args[0].Index(__idx0)
			__seq_out0 = RemoteGATTServiceFromJS(__seq_in0)
			__array0[__idx0] = __seq_out0
		}
		_p0 = __array0
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseSequenceRemoteGATTServiceOnFulfilledFromJS(_value js.Value) PromiseSequenceRemoteGATTServiceOnFulfilledFunc {
	return func(value []*RemoteGATTService) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := js.Global().Get("Array").New(len(value))
		for __idx0, __seq_in0 := range value {
			__seq_out0 := __seq_in0.JSValue()
			_p0.SetIndex(__idx0, __seq_out0)
		}
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseSequenceRemoteGATTServiceOnRejectedFunc func(reason js.Value)
type PromiseSequenceRemoteGATTServiceOnRejected js.Func
func PromiseSequenceRemoteGATTServiceOnRejectedToJS(callback PromiseSequenceRemoteGATTServiceOnRejectedFunc) *PromiseSequenceRemoteGATTServiceOnRejected {
	if callback == nil {
		return nil
	}
	ret := PromiseSequenceRemoteGATTServiceOnRejected(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 js.Value  
		)
		_p0 = args[0]
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseSequenceRemoteGATTServiceOnRejectedFromJS(_value js.Value) PromiseSequenceRemoteGATTServiceOnRejectedFunc {
	return func(reason js.Value) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := reason
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type ServiceDataMapForEachFunc func(currentValue *javascript.DataView, currentKey string, listObj *ServiceDataMap)
type ServiceDataMapForEach js.Func
func ServiceDataMapForEachToJS(callback ServiceDataMapForEachFunc) *ServiceDataMapForEach {
	if callback == nil {
		return nil
	}
	ret := ServiceDataMapForEach(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 *javascript.DataView  
			_p1 string                
			_p2 *ServiceDataMap       
		)
		_p0 = javascript.DataViewFromJS(args[0])
		_p1 = (args[1]).String()
		_p2 = ServiceDataMapFromJS(args[2])
		callback(_p0, _p1, _p2)
		return nil
	}))
	return &ret
}
func ServiceDataMapForEachFromJS(_value js.Value) ServiceDataMapForEachFunc {
	return func(currentValue *javascript.DataView, currentKey string, listObj *ServiceDataMap) {
		var (
			_args [3]interface{}
			_end  int
		)
		_p0 := currentValue.JSValue()
		_args[0] = _p0
		_end++
		_p1 := currentKey
		_args[1] = _p1
		_end++
		_p2 := listObj.JSValue()
		_args[2] = _p2
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type AdvertisingEventInit struct {
	Bubbles          bool
	Cancelable       bool
	Composed         bool
	Device           *Device
	Uuids            []*Union
	Name             string
	Appearance       int
	TxPower          int
	Rssi             int
	ManufacturerData *ManufacturerDataMap
	ServiceData      *ServiceDataMap
}
func (_this *AdvertisingEventInit) JSValue() js.Value {
	out := js.Global().Get("Object").New()
	value0 := _this.Bubbles
	out.Set("bubbles", value0)
	value1 := _this.Cancelable
	out.Set("cancelable", value1)
	value2 := _this.Composed
	out.Set("composed", value2)
	value3 := _this.Device.JSValue()
	out.Set("device", value3)
	value4 := js.Global().Get("Array").New(len(_this.Uuids))
	for __idx4, __seq_in4 := range _this.Uuids {
		__seq_out4 := __seq_in4.JSValue()
		value4.SetIndex(__idx4, __seq_out4)
	}
	out.Set("uuids", value4)
	value5 := _this.Name
	out.Set("name", value5)
	value6 := _this.Appearance
	out.Set("appearance", value6)
	value7 := _this.TxPower
	out.Set("txPower", value7)
	value8 := _this.Rssi
	out.Set("rssi", value8)
	value9 := _this.ManufacturerData.JSValue()
	out.Set("manufacturerData", value9)
	value10 := _this.ServiceData.JSValue()
	out.Set("serviceData", value10)
	return out
}
func AdvertisingEventInitFromJS(value js.Wrapper) *AdvertisingEventInit {
	input := value.JSValue()
	var out AdvertisingEventInit
	var (
		value0  bool                  
		value1  bool                  
		value2  bool                  
		value3  *Device               
		value4  []*Union              
		value5  string                
		value6  int                   
		value7  int                   
		value8  int                   
		value9  *ManufacturerDataMap  
		value10 *ServiceDataMap       
	)
	value0 = (input.Get("bubbles")).Bool()
	out.Bubbles = value0
	value1 = (input.Get("cancelable")).Bool()
	out.Cancelable = value1
	value2 = (input.Get("composed")).Bool()
	out.Composed = value2
	value3 = DeviceFromJS(input.Get("device"))
	out.Device = value3
	__length4 := input.Get("uuids").Length()
	__array4 := make([]*Union, __length4, __length4)
	for __idx4 := 0; __idx4 < __length4; __idx4++ {
		var __seq_out4 *Union
		__seq_in4 := input.Get("uuids").Index(__idx4)
		__seq_out4 = UnionFromJS(__seq_in4)
		__array4[__idx4] = __seq_out4
	}
	value4 = __array4
	out.Uuids = value4
	value5 = (input.Get("name")).String()
	out.Name = value5
	value6 = (input.Get("appearance")).Int()
	out.Appearance = value6
	value7 = (input.Get("txPower")).Int()
	out.TxPower = value7
	value8 = (input.Get("rssi")).Int()
	out.Rssi = value8
	value9 = ManufacturerDataMapFromJS(input.Get("manufacturerData"))
	out.ManufacturerData = value9
	value10 = ServiceDataMapFromJS(input.Get("serviceData"))
	out.ServiceData = value10
	return &out
}
type AllowedDevice struct {
	DeviceId        string
	MayUseGATT      bool
	AllowedServices *Union
}
func (_this *AllowedDevice) JSValue() js.Value {
	out := js.Global().Get("Object").New()
	value0 := _this.DeviceId
	out.Set("deviceId", value0)
	value1 := _this.MayUseGATT
	out.Set("mayUseGATT", value1)
	value2 := _this.AllowedServices.JSValue()
	out.Set("allowedServices", value2)
	return out
}
func AllowedDeviceFromJS(value js.Wrapper) *AllowedDevice {
	input := value.JSValue()
	var out AllowedDevice
	var (
		value0 string  
		value1 bool    
		value2 *Union  
	)
	value0 = (input.Get("deviceId")).String()
	out.DeviceId = value0
	value1 = (input.Get("mayUseGATT")).Bool()
	out.MayUseGATT = value1
	value2 = UnionFromJS(input.Get("allowedServices"))
	out.AllowedServices = value2
	return &out
}
type DataFilterInit struct {
	DataPrefix *Union
	Mask       *Union
}
func (_this *DataFilterInit) JSValue() js.Value {
	out := js.Global().Get("Object").New()
	value0 := _this.DataPrefix.JSValue()
	out.Set("dataPrefix", value0)
	value1 := _this.Mask.JSValue()
	out.Set("mask", value1)
	return out
}