Error wraps a JavaScript error.
type Error struct { // Value is the underlying JavaScript error value. Value }
func (e Error) Error() string
Error implements the error interface.
Func is a wrapped Go function to be called by JavaScript.
type Func struct { Value // the JavaScript function that invokes the Go function // contains filtered or unexported fields }
func FuncOf(fn func(this Value, args []Value) interface{}) Func
FuncOf returns a wrapped function.
Invoking the JavaScript function will synchronously call the Go function fn with the value of JavaScript's "this" keyword and the arguments of the invocation. The return value of the invocation is the result of the Go function mapped back to JavaScript according to ValueOf.
A wrapped function triggered during a call from Go to JavaScript gets executed on the same goroutine. A wrapped function triggered by JavaScript's event loop gets executed on an extra goroutine. Blocking operations in the wrapped function will block the event loop. As a consequence, if one wrapped function blocks, other wrapped funcs will not be processed. A blocking function should therefore explicitly start a new goroutine.
Func.Release must be called to free up resources when the function will not be used any more.
▹ Example
func (c Func) Release()
Release frees up resources allocated for the function. The function must not be invoked after calling Release.
Type represents the JavaScript type of a Value.
type Type int
const ( TypeUndefined Type = iota TypeNull TypeBoolean TypeNumber TypeString TypeSymbol TypeObject TypeFunction )
func (t Type) String() string
TypedArray represents a JavaScript typed array.
type TypedArray struct { Value }
func TypedArrayOf(slice interface{}) TypedArray
TypedArrayOf returns a JavaScript typed array backed by the slice's underlying array.
The supported types are []int8, []int16, []int32, []uint8, []uint16, []uint32, []float32 and []float64. Passing an unsupported value causes a panic.
TypedArray.Release must be called to free up resources when the typed array will not be used any more.
func (a TypedArray) Release()
Release frees up resources allocated for the typed array. The typed array and its buffer must not be accessed after calling Release.
Value represents a JavaScript value. The zero value is the JavaScript value "undefined".
type Value struct {
// contains filtered or unexported fields
}
func Global() Value
Global returns the JavaScript global object, usually "window" or "global".
func Null() Value
Null returns the JavaScript value "null".
func Undefined() Value
Undefined returns the JavaScript value "undefined".
func ValueOf(x interface{}) Value
ValueOf returns x as a JavaScript value:
| Go | JavaScript | | ---------------------- | ---------------------- | | js.Value | [its value] | | js.TypedArray | typed array | | js.Func | function | | nil | null | | bool | boolean | | integers and floats | number | | string | string | | []interface{} | new array | | map[string]interface{} | new object |
Panics if x is not one of the expected types.
func (v Value) Bool() bool
Bool returns the value v as a bool. It panics if v is not a JavaScript boolean.
func (v Value) Call(m string, args ...interface{}) Value
Call does a JavaScript call to the method m of value v with the given arguments. It panics if v has no method m. The arguments get mapped to JavaScript values according to the ValueOf function.
func (v Value) Float() float64
Float returns the value v as a float64. It panics if v is not a JavaScript number.
func (v Value) Get(p string) Value
Get returns the JavaScript property p of value v.
func (v Value) Index(i int) Value
Index returns JavaScript index i of value v.
func (v Value) InstanceOf(t Value) bool
InstanceOf reports whether v is an instance of type t according to JavaScript's instanceof operator.
func (v Value) Int() int
Int returns the value v truncated to an int. It panics if v is not a JavaScript number.
func (v Value) Invoke(args ...interface{}) Value
Invoke does a JavaScript call of the value v with the given arguments. It panics if v is not a function. The arguments get mapped to JavaScript values according to the ValueOf function.
func (v Value) JSValue() Value
JSValue implements Wrapper interface.
func (v Value) Length() int
Length returns the JavaScript property "length" of v.
func (v Value) New(args ...interface{}) Value
New uses JavaScript's "new" operator with value v as constructor and the given arguments. It panics if v is not a function. The arguments get mapped to JavaScript values according to the ValueOf function.
func (v Value) Set(p string, x interface{})
Set sets the JavaScript property p of value v to ValueOf(x).
func (v Value) SetIndex(i int, x interface{})
SetIndex sets the JavaScript index i of value v to ValueOf(x).
func (v Value) String() string
String returns the value v converted to string according to JavaScript type conversions.
func (v Value) Truthy() bool
Truthy returns the JavaScript "truthiness" of the value v. In JavaScript, false, 0, "", null, undefined, and NaN are "falsy", and everything else is "truthy". See https://developer.mozilla.org/en-US/docs/Glossary/Truthy.
func (v Value) Type() Type
Type returns the JavaScript type of the value v. It is similar to JavaScript's typeof operator, except that it returns TypeNull instead of TypeObject for null.
A ValueError occurs when a Value method is invoked on a Value that does not support it. Such cases are documented in the description of each method.
type ValueError struct { Method string Type Type }
func (e *ValueError) Error() string
Wrapper is implemented by types that are backed by a JavaScript value.
type Wrapper interface { // JSValue returns a JavaScript value associated with an object. JSValue() Value }