js

package
v0.0.0-...-0bf0997 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 12, 2021 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var NULL = null{}
View Source
var UNDEFINED = undefined{}

Functions

func ArrayIndex

func ArrayIndex(index Value) (uint32, bool)

func GoBool

func GoBool(value Value) bool

func GoFloat64

func GoFloat64(value Value) float64

func GoFunction

func GoFunction(value Value) func(...Value) Value

func IsPrimitive

func IsPrimitive(value Value) bool

Types

type Array

type Array struct {
	Elements map[uint32]Value
	Object
}

func NewArray

func NewArray(elements ...Value) *Array

func (*Array) Get

func (a *Array) Get(name Value) Value

func (*Array) Set

func (a *Array) Set(name Value, value Value) Value

TODO: Setting length to a smaller value should delete elements.

func (*Array) String

func (a *Array) String() string

func (*Array) ToString

func (a *Array) ToString(args ...Value) Value

type BigInt

type BigInt struct {
	Value *big.Int
	Object
}

func NewBigInt

func NewBigInt(bigInt string) *BigInt

func (*BigInt) Get

func (*BigInt) Get(name Value) Value

func (*BigInt) Set

func (*BigInt) Set(name Value, value Value) Value

func (*BigInt) String

func (b *BigInt) String() string

func (*BigInt) TypeOf

func (*BigInt) TypeOf() string

type Boolean

type Boolean bool

func AbstractEqual

func AbstractEqual(left Value, right Value) Boolean

func AbstractNotEqual

func AbstractNotEqual(left Value, right Value) Boolean

func Greater

func Greater(left Value, right Value) Boolean

func GreaterOrEqual

func GreaterOrEqual(left Value, right Value) Boolean

func InstanceOf

func InstanceOf(left Value, right Value) Boolean

func Less

func Less(left Value, right Value) Boolean

func LessOrEqual

func LessOrEqual(left Value, right Value) Boolean

func Not

func Not(value Value) Boolean

func StrictEqual

func StrictEqual(left Value, right Value) Boolean

func StrictNotEqual

func StrictNotEqual(left Value, right Value) Boolean

func (Boolean) Get

func (b Boolean) Get(name Value) Value

func (Boolean) Set

func (b Boolean) Set(name Value, value Value) Value

func (Boolean) String

func (b Boolean) String() string

func (Boolean) TypeOf

func (Boolean) TypeOf() string

type BooleanWrapper

type BooleanWrapper struct {
	Boolean Boolean
	Object
}

func NewBooleanWrapper

func NewBooleanWrapper(boolean Boolean) *BooleanWrapper

type Function

type Function struct {
	Function func(...Value) Value
	Object
}

func NewFunction

func NewFunction(function func(...Value) Value) *Function

func (*Function) String

func (f *Function) String() string

func (*Function) TypeOf

func (*Function) TypeOf() string

type Number

type Number float64

func Divide

func Divide(left Value, right Value) Number

func Minus

func Minus(left Value, right Value) Number

func Modulus

func Modulus(left Value, right Value) Number

func Multiply

func Multiply(left Value, right Value) Number

func PostDecrement

func PostDecrement(value *Value) Number

func PostIncrement

func PostIncrement(value *Value) Number

func PreDecrement

func PreDecrement(value *Value) Number

func PreIncrement

func PreIncrement(value *Value) Number

func UnaryMinus

func UnaryMinus(value Value) Number

func UnaryPlus

func UnaryPlus(value Value) Number

func (Number) Get

func (n Number) Get(name Value) Value

func (Number) Set

func (n Number) Set(name Value, value Value) Value

func (Number) String

func (n Number) String() string

func (Number) ToFixed

func (n Number) ToFixed(args ...Value) Value

func (Number) TypeOf

func (Number) TypeOf() string

type NumberWrapper

type NumberWrapper struct {
	Number Number
	Object
}

func NewNumberWrapper

func NewNumberWrapper(number Number) *NumberWrapper

type Object

type Object map[string]Value

TODO: This should be a map to property descriptors.

Which should provide additional flags about the property (e.g., it is a getter, can it be set, etc.).

func New

func New(value Value, args ...Value) Object

func NewObject

func NewObject() *Object

func (*Object) Get

func (o *Object) Get(name Value) Value

func (*Object) Set

func (o *Object) Set(name Value, value Value) Value

func (*Object) String

func (*Object) String() string

func (*Object) ToString

func (o *Object) ToString(args ...Value) Value

func (*Object) TypeOf

func (*Object) TypeOf() string

type RangeError

type RangeError struct {
	Message string
	Object
}

func NewRangeError

func NewRangeError(message string) *RangeError

func (*RangeError) String

func (e *RangeError) String() string

type String

type String string

func TypeOf

func TypeOf(value Value) String

func (String) Get

func (s String) Get(name Value) Value

func (String) Set

func (s String) Set(name Value, value Value) Value

func (String) String

func (s String) String() string

func (String) TypeOf

func (String) TypeOf() string

type StringWrapper

type StringWrapper struct {
	String String
	Object
}

func NewStringWrapper

func NewStringWrapper(str String) *StringWrapper

type SyntaxError

type SyntaxError struct {
	Message string
	Object
}

func NewSyntaxError

func NewSyntaxError(message string) *SyntaxError

func (*SyntaxError) String

func (e *SyntaxError) String() string

type TypeError

type TypeError struct {
	Message string
	Object
}

func NewTypeError

func NewTypeError(message string) *TypeError

func (*TypeError) String

func (e *TypeError) String() string

type Value

type Value interface {
	TypeOf() string
	String() string
	Get(name Value) Value
	Set(name Value, value Value) Value
}

func And

func And(leftFunc func() Value, rightFunc func() Value) Value

func Assign

func Assign(left *Value, right Value) Value

We need this helper because assignment in Go is not an expression, but here we pass the right value through.

func AssignWithOperator

func AssignWithOperator(left *Value, operator func(Value, Value) Value, right Value) Value

We need this helper because assignment in Go is not an expression, but here we pass the right value through.

func Or

func Or(leftFunc func() Value, rightFunc func() Value) Value

func Plus

func Plus(left Value, right Value) Value

func Sequence

func Sequence(values ...Value) Value

func ToPrimitiveValue

func ToPrimitiveValue(value Value) Value

TODO: If value is a Date object, first do toString, then valueOf.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL