Documentation ¶
Overview ¶
Package goos isolates code from runtime.GOOS=js in a way that avoids cyclic dependencies when re-used from other packages.
Index ¶
- Constants
- Variables
- func NewFunc(name string, goFunc Func) *wasm.HostFunc
- func NewStack(name string, mem api.Memory, sp uint32) *stack
- func ValueToInt32(arg interface{}) int32
- func ValueToUint32(arg interface{}) uint32
- type ByteArray
- type Func
- type GetFunction
- type GetLastEventArgs
- type Ref
- type Stack
- type TypeFlag
- type ValLoader
Constants ¶
const ( IdValueNaN uint32 = iota IdValueZero IdValueNull IdValueTrue IdValueFalse IdValueGlobal IdJsGo IdObjectConstructor IdArrayConstructor IdJsProcess IdJsfs IdJsfsConstants IdUint8ArrayConstructor IdJsCrypto IdJsDateConstructor IdJsDate IdHttpFetch IdHttpHeaders NextID )
const ( RefValueUndefined = Ref(0) RefValueNaN = (NanHead|Ref(TypeFlagNone))<<32 | Ref(IdValueNaN) RefValueZero = (NanHead|Ref(TypeFlagNone))<<32 | Ref(IdValueZero) RefValueNull = (NanHead|Ref(TypeFlagNone))<<32 | Ref(IdValueNull) RefValueTrue = (NanHead|Ref(TypeFlagNone))<<32 | Ref(IdValueTrue) RefValueFalse = (NanHead|Ref(TypeFlagNone))<<32 | Ref(IdValueFalse) RefValueGlobal = (NanHead|Ref(TypeFlagObject))<<32 | Ref(IdValueGlobal) RefJsGo = (NanHead|Ref(TypeFlagObject))<<32 | Ref(IdJsGo) RefObjectConstructor = (NanHead|Ref(TypeFlagFunction))<<32 | Ref(IdObjectConstructor) RefArrayConstructor = (NanHead|Ref(TypeFlagFunction))<<32 | Ref(IdArrayConstructor) RefJsProcess = (NanHead|Ref(TypeFlagObject))<<32 | Ref(IdJsProcess) RefJsfs = (NanHead|Ref(TypeFlagObject))<<32 | Ref(IdJsfs) RefJsfsConstants = (NanHead|Ref(TypeFlagObject))<<32 | Ref(IdJsfsConstants) RefUint8ArrayConstructor = (NanHead|Ref(TypeFlagFunction))<<32 | Ref(IdUint8ArrayConstructor) RefJsCrypto = (NanHead|Ref(TypeFlagFunction))<<32 | Ref(IdJsCrypto) RefJsDateConstructor = (NanHead|Ref(TypeFlagFunction))<<32 | Ref(IdJsDateConstructor) RefJsDate = (NanHead|Ref(TypeFlagObject))<<32 | Ref(IdJsDate) RefHttpFetch = (NanHead|Ref(TypeFlagFunction))<<32 | Ref(IdHttpFetch) RefHttpHeadersConstructor = (NanHead|Ref(TypeFlagFunction))<<32 | Ref(IdHttpHeaders) )
const NanHead = 0x7FF80000
NanHead are the upper 32 bits of a Ref which are set if the value is not encoded as an IEEE 754 number (see above).
Variables ¶
var Undefined = struct{ name string }{/* contains filtered or unexported fields */}
Functions ¶
func ValueToInt32 ¶
func ValueToInt32(arg interface{}) int32
func ValueToUint32 ¶
func ValueToUint32(arg interface{}) uint32
Types ¶
type ByteArray ¶
type ByteArray struct {
// contains filtered or unexported fields
}
ByteArray is a result of uint8ArrayConstructor which temporarily stores binary data outside linear memory.
Note: This is a wrapper because a slice is not hashable.
func WrapByteArray ¶
type GetFunction ¶
type GetFunction interface {
Get(propertyKey string) interface{}
}
GetFunction allows getting a JavaScript property by name.
type GetLastEventArgs ¶
GetLastEventArgs returns the arguments to the last event created by custom.NameSyscallValueCall.
type Ref ¶
type Ref uint64
Ref is used to identify a JavaScript value, since the value itself cannot be passed to WebAssembly.
The JavaScript value "undefined" is represented by the value 0.
A JavaScript number (64-bit float, except 0 and NaN) is represented by its IEEE 754 binary representation.
All other values are represented as an IEEE 754 binary representation of NaN with bits 0-31 used as an ID and bits 32-34 used to differentiate between string, symbol, function and object.
func (Ref) ParseFloat ¶
type Stack ¶
type Stack interface { goarch.Stack ParamRef(i int) Ref ParamRefs(mem api.Memory, i int) []Ref ParamVal(ctx context.Context, i int, loader ValLoader) interface{} // ParamVals is used by functions whose final parameter is an arg array. ParamVals(ctx context.Context, mem api.Memory, i int, loader ValLoader) []interface{} SetResultRef(i int, v Ref) }