class
Medusa::Context
- Medusa::Context
- Reference
- Object
Defined in:
medusa/context.crConstructors
-
.new(runtime : QuickJS::JSRuntime)
Creates a full context with std/os modules via the C++ bridge.
-
.new(runtime : QuickJS::JSRuntime, *, raw : Bool)
Creates a raw context — no intrinsics loaded.
Class Method Summary
Instance Method Summary
-
#add_all_intrinsics : Nil
Adds all standard intrinsics at once (convenience for raw contexts).
- #add_intrinsic_base_objects : Nil
- #add_intrinsic_date : Nil
- #add_intrinsic_eval : Nil
- #add_intrinsic_json : Nil
- #add_intrinsic_map_set : Nil
- #add_intrinsic_promise : Nil
- #add_intrinsic_proxy : Nil
- #add_intrinsic_regexp : Nil
- #add_intrinsic_regexp_compiler : Nil
- #add_intrinsic_string_normalize : Nil
- #add_intrinsic_typed_arrays : Nil
- #add_intrinsic_weak_ref : Nil
-
#bind_crystal_function(procedure : Proc(QuickJS::JSContext, QuickJS::JSValue, LibC::Int, Pointer(QuickJS::JSValue), QuickJS::JSValue), name : String, length : LibC::Int) : ValueWrapper
Binds a Crystal Proc as a QuickJS function.
-
#detect_module?(input : String) : Bool
Detects whether a string looks like an ES module.
- #eval_string(input : String, eval_flag : QuickJS::EvalFlag = QuickJS::EvalFlag::STRICT, etag : String = "<input>") : ValueWrapper
- #eval_this(this_obj : ValueWrapper, input : String, eval_flag : QuickJS::EvalFlag = QuickJS::EvalFlag::STRICT, etag : String = "<input>") : ValueWrapper
- #finalize : Nil
- #freed? : Bool
- #get_class_proto(class_id : QuickJS::JSClassID) : ValueWrapper
- #get_exception : ValueWrapper
- #global_object : ValueWrapper
- #has_exception? : Bool
- #json_stringify(obj : ValueWrapper) : String
- #mark_freed! : Nil
-
#new_c_function2(function_pointer : QuickJS::JSCFunction, name : String, length : LibC::Int, cproto : QuickJS::CFunctionEnum = QuickJS::CFunctionEnum::GENERIC, magic : LibC::Int = 0) : ValueWrapper
Low-level: create a QuickJS function from a raw C function pointer.
- #opaque : Pointer(Void)
- #opaque=(ptr : Pointer(Void)) : Nil
- #parse_json(input : String, filename : String = "<json>") : ValueWrapper
- #read_object(buf : Bytes, flags : QuickJS::ReadObjFlag = QuickJS::ReadObjFlag::BYTECODE) : ValueWrapper
- #runtime : QuickJS::JSRuntime
- #set_class_proto(class_id : QuickJS::JSClassID, obj : ValueWrapper) : Nil
- #to_unsafe : QuickJS::JSContext
- #write_object(obj : ValueWrapper, flags : QuickJS::WriteObjFlag = QuickJS::WriteObjFlag::BYTECODE) : Bytes
Constructor Detail
def self.new(runtime : QuickJS::JSRuntime)
#
Creates a full context with std/os modules via the C++ bridge.
def self.new(runtime : QuickJS::JSRuntime, *, raw : Bool)
#
Creates a raw context — no intrinsics loaded. Call add_intrinsic_* as needed.
Class Method Detail
Instance Method Detail
def bind_crystal_function(procedure : Proc(QuickJS::JSContext, QuickJS::JSValue, LibC::Int, Pointer(QuickJS::JSValue), QuickJS::JSValue), name : String, length : LibC::Int) : ValueWrapper
#
Binds a Crystal Proc as a QuickJS function. Returns a ValueWrapper for the JS function object. Each binding is independent — no shared state.
def eval_string(input : String, eval_flag : QuickJS::EvalFlag = QuickJS::EvalFlag::STRICT, etag : String = "<input>") : ValueWrapper
#
def eval_this(this_obj : ValueWrapper, input : String, eval_flag : QuickJS::EvalFlag = QuickJS::EvalFlag::STRICT, etag : String = "<input>") : ValueWrapper
#
def new_c_function2(function_pointer : QuickJS::JSCFunction, name : String, length : LibC::Int, cproto : QuickJS::CFunctionEnum = QuickJS::CFunctionEnum::GENERIC, magic : LibC::Int = 0) : ValueWrapper
#
Low-level: create a QuickJS function from a raw C function pointer.
def read_object(buf : Bytes, flags : QuickJS::ReadObjFlag = QuickJS::ReadObjFlag::BYTECODE) : ValueWrapper
#
def write_object(obj : ValueWrapper, flags : QuickJS::WriteObjFlag = QuickJS::WriteObjFlag::BYTECODE) : Bytes
#