func (_this *NDEFMessage) JSValue() js.Value {
	out := js.Global().Get("Object").New()
	value0 := js.Global().Get("Array").New(len(_this.Records))
	for __idx0, __seq_in0 := range _this.Records {
		__seq_out0 := __seq_in0.JSValue()
		value0.SetIndex(__idx0, __seq_out0)
	}
	out.Set("records", value0)
	value1 := _this.Url
	out.Set("url", value1)
	return out
}
JSValue is allocating a new javasript object and copy
all values
package nfc
import js "github.com/gowebapi/webapi/core/js"
import (
	"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 NDEFCompatibility int
const (
	CompatibilityNfcForum NDEFCompatibility = iota
	CompatibilityVendor
	CompatibilityAny
)
var nDEFCompatibilityToWasmTable = []string{
	"nfc-forum", "vendor", "any",
}
var nDEFCompatibilityFromWasmTable = map[string]NDEFCompatibility{
	"nfc-forum": CompatibilityNfcForum, "vendor": CompatibilityVendor, "any": CompatibilityAny,
}
func (this *NDEFCompatibility) JSValue() js.Value {
	return js.ValueOf(this.Value())
}
func (this NDEFCompatibility) Value() string {
	idx := int(this)
	if idx >= 0 && idx < len(nDEFCompatibilityToWasmTable) {
		return nDEFCompatibilityToWasmTable[idx]
	}
	panic("unknown input value")
}
func NDEFCompatibilityFromJS(value js.Value) NDEFCompatibility {
	key := value.String()
	conv, ok := nDEFCompatibilityFromWasmTable[key]
	if !ok {
		panic("unable to convert '" + key + "'")
	}
	return conv
}
type NDEFRecordType int
const (
	RecordEmpty NDEFRecordType = iota
	RecordText
	RecordUrl
	RecordJson
	RecordOpaque
)
var nDEFRecordTypeToWasmTable = []string{
	"empty", "text", "url", "json", "opaque",
}
var nDEFRecordTypeFromWasmTable = map[string]NDEFRecordType{
	"empty": RecordEmpty, "text": RecordText, "url": RecordUrl, "json": RecordJson, "opaque": RecordOpaque,
}
func (this *NDEFRecordType) JSValue() js.Value {
	return js.ValueOf(this.Value())
}
func (this NDEFRecordType) Value() string {
	idx := int(this)
	if idx >= 0 && idx < len(nDEFRecordTypeToWasmTable) {
		return nDEFRecordTypeToWasmTable[idx]
	}
	panic("unknown input value")
}
func NDEFRecordTypeFromJS(value js.Value) NDEFRecordType {
	key := value.String()
	conv, ok := nDEFRecordTypeFromWasmTable[key]
	if !ok {
		panic("unable to convert '" + key + "'")
	}
	return conv
}
type PushTarget int
const (
	PushTargetTag PushTarget = iota
	PushTargetPeer
	PushTargetAny
)
var nFCPushTargetToWasmTable = []string{
	"tag", "peer", "any",
}
var nFCPushTargetFromWasmTable = map[string]PushTarget{
	"tag": PushTargetTag, "peer": PushTargetPeer, "any": PushTargetAny,
}
func (this *PushTarget) JSValue() js.Value {
	return js.ValueOf(this.Value())
}
func (this PushTarget) Value() string {
	idx := int(this)
	if idx >= 0 && idx < len(nFCPushTargetToWasmTable) {
		return nFCPushTargetToWasmTable[idx]
	}
	panic("unknown input value")
}
func PushTargetFromJS(value js.Value) PushTarget {
	key := value.String()
	conv, ok := nFCPushTargetFromWasmTable[key]
	if !ok {
		panic("unable to convert '" + key + "'")
	}
	return conv
}
type ErrorEventInit struct {
	Bubbles    bool
	Cancelable bool
	Composed   bool
	Error      *domcore.DOMException
}
func (_this *ErrorEventInit) 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.Error.JSValue()
	out.Set("error", value3)
	return out
}
func ErrorEventInitFromJS(value js.Wrapper) *ErrorEventInit {
	input := value.JSValue()
	var out ErrorEventInit
	var (
		value0 bool                   
		value1 bool                   
		value2 bool                   
		value3 *domcore.DOMException  
	)
	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 = domcore.DOMExceptionFromJS(input.Get("error"))
	out.Error = value3
	return &out
}
type NDEFMessage struct {
	Records []*NDEFRecord
	Url     string
}