func (p *Property) Get() Value {
	val, ok := p.GetField(FieldNameGet)
	if !ok {
		return Undefined
	}
	return val.(Value)
}
Get returns the value of the field 'Get', or False
if the field is not set.
package lang
const (
	FieldNameValue        = "Value"
	FieldNameWritable     = "Writable"
	FieldNameGet          = "Get"
	FieldNameSet          = "Set"
	FieldNameEnumerable   = "Enumerable"
	FieldNameConfigurable = "Configurable"
)
type Property struct {
	*Record
}
func NewProperty() *Property {
	p := new(Property)
	p.Record = NewRecord()
	return p
}
func NewPropertyBase(enumerable, configurable Boolean) *Property {
	p := NewProperty()
	p.SetField(FieldNameEnumerable, enumerable)
	p.SetField(FieldNameConfigurable, configurable)
	return p
}
func NewDataProperty(value Value, writable, enumerable, configurable Boolean) *Property {
	p := NewPropertyBase(enumerable, configurable)
	p.SetField(FieldNameValue, value)
	p.SetField(FieldNameWritable, writable)
	return p
}
func NewAccessorProperty(get, set *Object, enumerable, configurable Boolean) *Property {
	p := NewPropertyBase(enumerable, configurable)
	p.SetField(FieldNameGet, get)
	p.SetField(FieldNameSet, set)
	return p
}
func (p *Property) Value() Value {
	val, ok := p.GetField(FieldNameValue)
	if !ok {
		return Undefined
	}
	return val.(Value)
}
func (p *Property) Writable() Boolean {
	val, ok := p.GetField(FieldNameWritable)
	if !ok {
		return False
	}
	return val.(Boolean)
}