Current section

Files

Jump to
gleam_javascript src gleam javascript.gleam
Raw

src/gleam/javascript.gleam

// TODO: docs
pub type TypeOf {
UndefinedType
ObjectType
BooleanType
NumberType
BigIntType
StringType
SymbolType
FunctionType
}
pub type Symbol
@external(javascript, "../ffi.mjs", "type_of")
pub fn type_of(a: value) -> TypeOf
@external(javascript, "../ffi.mjs", "get_symbol")
pub fn get_symbol(a: String) -> Symbol
pub type Reference(value)
@external(javascript, "../ffi.mjs", "dereference")
pub fn dereference(a: Reference(a)) -> a
@external(javascript, "../ffi.mjs", "set_reference")
pub fn set_reference(a: Reference(a), b: a) -> a
@external(javascript, "../ffi.mjs", "make_reference")
pub fn make_reference(a: a) -> Reference(a)
// returns the old value
pub fn update_reference(ref: Reference(a), f: fn(a) -> a) -> a {
let value = dereference(ref)
set_reference(ref, f(value))
value
}