func (_this *FilePropertyBag) JSValue() js.Value {
	out := js.Global().Get("Object").New()
	value0 := _this.Type
	out.Set("type", value0)
	value1 := _this.Endings.JSValue()
	out.Set("endings", value1)
	value2 := _this.LastModified
	out.Set("lastModified", value2)
	return out
}
JSValue is allocating a new javasript object and copy
all values
package file
import "syscall/js"
import (
	"github.com/gowebapi/webapi/communication/xhr"
	"github.com/gowebapi/webapi/dom/domcore"
	"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 EndingType int
const (
	TransparentEndingType EndingType = iota
	NativeEndingType
)
var endingTypeToWasmTable = []string{
	"transparent", "native",
}
var endingTypeFromWasmTable = map[string]EndingType{
	"transparent": TransparentEndingType, "native": NativeEndingType,
}
func (this *EndingType) JSValue() js.Value {
	return js.ValueOf(this.Value())
}
func (this EndingType) Value() string {
	idx := int(this)
	if idx >= 0 && idx < len(endingTypeToWasmTable) {
		return endingTypeToWasmTable[idx]
	}
	panic("unknown input value")
}
func EndingTypeFromJS(value js.Value) EndingType {
	key := value.String()
	conv, ok := endingTypeFromWasmTable[key]
	if !ok {
		panic("unable to convert '" + key + "'")
	}
	return conv
}
type BlobCallbackFunc func(blob *Blob)
type BlobCallback js.Func
func BlobCallbackToJS(callback BlobCallbackFunc) *BlobCallback {
	if callback == nil {
		return nil
	}
	ret := BlobCallback(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 *Blob  
		)
		if args[0].Type() != js.TypeNull && args[0].Type() != js.TypeUndefined {
			_p0 = BlobFromJS(args[0])
		}
		callback(_p0)
		return nil
	}))
	return &ret
}
func BlobCallbackFromJS(_value js.Value) BlobCallbackFunc {
	return func(blob *Blob) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := blob.JSValue()
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseBlobOnFulfilledFunc func(value *Blob)
type PromiseBlobOnFulfilled js.Func
func PromiseBlobOnFulfilledToJS(callback PromiseBlobOnFulfilledFunc) *PromiseBlobOnFulfilled {
	if callback == nil {
		return nil
	}
	ret := PromiseBlobOnFulfilled(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 *Blob  
		)
		_p0 = BlobFromJS(args[0])
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseBlobOnFulfilledFromJS(_value js.Value) PromiseBlobOnFulfilledFunc {
	return func(value *Blob) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := value.JSValue()
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type PromiseBlobOnRejectedFunc func(reason js.Value)
type PromiseBlobOnRejected js.Func
func PromiseBlobOnRejectedToJS(callback PromiseBlobOnRejectedFunc) *PromiseBlobOnRejected {
	if callback == nil {
		return nil
	}
	ret := PromiseBlobOnRejected(js.FuncOf(func(this js.Value, args []js.Value) interface{} {
		var (
			_p0 js.Value  
		)
		_p0 = args[0]
		callback(_p0)
		return nil
	}))
	return &ret
}
func PromiseBlobOnRejectedFromJS(_value js.Value) PromiseBlobOnRejectedFunc {
	return func(reason js.Value) {
		var (
			_args [1]interface{}
			_end  int
		)
		_p0 := reason
		_args[0] = _p0
		_end++
		_value.Invoke(_args[0:_end]...)
		return
	}
}
type BlobPropertyBag struct {
	Type    string
	Endings EndingType
}
func (_this *BlobPropertyBag) JSValue() js.Value {
	out := js.Global().Get("Object").New()
	value0 := _this.Type
	out.Set("type", value0)
	value1 := _this.Endings.JSValue()
	out.Set("endings", value1)
	return out
}
func BlobPropertyBagFromJS(value js.Wrapper) *BlobPropertyBag {
	input := value.JSValue()
	var out BlobPropertyBag
	var (
		value0 string      
		value1 EndingType  
	)
	value0 = (input.Get("type")).String()
	out.Type = value0
	value1 = EndingTypeFromJS(input.Get("endings"))
	out.Endings = value1
	return &out
}
type FilePropertyBag struct {
	Type         string
	Endings      EndingType
	LastModified int
}