quickjs/ffi library

Classes

JSChannelType
JSContext
JSEvalFlag
JsMemoryUsage
Snapshot of QuickJS JSMemoryUsage fields used for monitoring.
JSProp
JSPropertyEnum
JSRef
JSRefLeakable
JSRuntime
JSTag
JsTypedArrayTransfer
A native buffer whose ownership can be transferred to a QuickJS TypedArray.
JSTypedArrayType
JSTypedArrayEnum values (order matches quickjs.h).
JSValue

Extensions

ListFirstWhere on Iterable<T>

Properties

compileFn Pointer<Uint8> Function(Pointer<JSContext>, Pointer<Char>, Pointer<Char>, Pointer<IntPtr>)
latefinal
evaluateBytecodeFn Pointer<JSValue> Function(Pointer<JSContext>, int, Pointer<Uint8>)
latefinal
jsAllocBuffer Pointer<Uint8> Function(int len)
uint8_t *jsAllocBuffer(size_t len)
final
jsAtomToValue Pointer<JSValue> Function(Pointer<JSContext> ctx, int val)
JSValue *jsAtomToValue(JSContext *ctx, JSAtom val)
final
jsBridgeStatsAllocBytes int Function()
final
jsBridgeStatsAllocCalls int Function()
final
jsBridgeStatsCopyBytes int Function()
final
jsBridgeStatsCopyCalls int Function()
final
jsBridgeStatsFreeCalls int Function()
final
jsBridgeStatsMemcpyBytes int Function()
final
jsBridgeStatsMemcpyCalls int Function()
final
jsBridgeStatsOwnedTypedArrayCalls int Function()
final
jsBridgeStatsRecordCopy → void Function(int)
final
jsBridgeStatsReset → void Function()
Native bridge operation counters used by diagnostic tests and profiling.
final
jsBridgeStatsTypedArrayDataCalls int Function()
final
jsDefinePropertyValue int Function(Pointer<JSContext> ctx, Pointer<JSValue> thisObj, int prop, Pointer<JSValue> val, int flag)
int jsDefinePropertyValue(JSContext *ctx, JSValueConst *this_obj, JSAtom prop, JSValue *val, int flags)
final
jsDefinePropertyValueUint32 int Function(Pointer<JSContext> ctx, Pointer<JSValue> thisObj, int prop, Pointer<JSValue> val, int flag)
int jsDefinePropertyValueUint32(JSContext *ctx, JSValueConst *this_obj, uint32_t idx, JSValue *val, int flags)
final
jsDupValue Pointer<JSValue> Function(Pointer<JSContext> ctx, Pointer<JSValue> val)
JSValue *jsDupValue(JSContext *ctx, JSValueConst *v)
final
jsDupValueRT Pointer<JSValue> Function(Pointer<JSRuntime> rt, Pointer<JSValue> val)
JSValue *jsDupValueRT(JSRuntime *rt, JSValue *v)
final
jsEXCEPTION Pointer<JSValue> Function()
JSValue *jsEXCEPTION()
final
jsExecutePendingJob int Function(Pointer<JSRuntime> ctx)
int jsExecutePendingJob(JSRuntime *rt)
final
jsFree → void Function(Pointer<JSContext> ctx, Pointer<JSPropertyEnum> ptab)
void jsFree(JSContext *ctx, void *ptab)
final
jsFreeAtom → void Function(Pointer<JSContext> ctx, int v)
void jsFreeAtom(JSContext *ctx, JSAtom v)
final
jsFreeContext → void Function(Pointer<JSContext>)
void jsFreeContext(JSContext *ctx)
final
jsFreeCString → void Function(Pointer<JSContext> ctx, Pointer<Utf8> val)
void jsFreeCString(JSContext *ctx, const char *ptr)
final
jsGetArrayBuffer Pointer<Uint8> Function(Pointer<JSContext> ctx, Pointer<IntPtr> psize, Pointer<JSValue> val)
uint8_t *jsGetArrayBuffer(JSContext *ctx, size_t *psize, JSValueConst *obj)
final
jsGetException Pointer<JSValue> Function(Pointer<JSContext> ctx)
JSValue *jsGetException(JSContext *ctx)
final
jsGetObjectOpaque int Function(Pointer<JSValue> obj, int classid)
DLLEXPORT void *jsGetObjectOpaque(JSValue *obj, uint32_t classid)
final
jsGetOwnPropertyNames int Function(Pointer<JSContext> ctx, Pointer<Pointer<JSPropertyEnum>> ptab, Pointer<Uint32> plen, Pointer<JSValue> obj, int flags)
int jsGetOwnPropertyNames(JSContext *ctx, JSPropertyEnum **ptab, uint32_t *plen, JSValueConst *obj, int flags)
final
jsGetProperty Pointer<JSValue> Function(Pointer<JSContext> ctx, Pointer<JSValue> thisObj, int prop)
JSValue *jsGetProperty(JSContext *ctx, JSValueConst *this_obj, JSAtom prop)
final
jsGetPropertyUint32 Pointer<JSValue> Function(Pointer<JSContext> ctx, Pointer<JSValue> thisObj, int prop)
JSValue *jsGetPropertyUint32(JSContext *ctx, JSValueConst *this_obj, uint32_t idx)
final
jsGetRuntime Pointer<JSRuntime> Function(Pointer<JSContext>)
JSRuntime *jsGetRuntime(JSContext *ctx)
final
jsGetTypedArrayData Pointer<Uint8> Function(Pointer<JSContext> ctx, Pointer<JSValue> val, Pointer<IntPtr> plength, Pointer<Int32> ptype)
uint8_t *jsGetTypedArrayData(JSContext *ctx, JSValueConst *val, size_t *plength, int32_t *ptype)
final
jsIsArray int Function(Pointer<JSContext> ctx, Pointer<JSValue> val)
int32_t jsIsArray(JSContext *ctx, JSValueConst *val)
final
jsIsError int Function(Pointer<JSContext> ctx, Pointer<JSValue> val)
DLLEXPORT int32_t jsIsError(JSContext *ctx, JSValueConst *val);
final
jsIsException int Function(Pointer<JSValue> val)
int jsIsException(JSValueConst *val)
final
jsIsFunction int Function(Pointer<JSContext> ctx, Pointer<JSValue> val)
int32_t jsIsFunction(JSContext *ctx, JSValueConst *val)
final
jsIsJobPending int Function(Pointer<JSRuntime> ctx)
DLLEXPORT int32_t jsIsJobPending(JSRuntime *rt)
final
jsIsPromise int Function(Pointer<JSContext> ctx, Pointer<JSValue> val)
int32_t jsIsPromise(JSContext *ctx, JSValueConst *val)
final
jsMemcpy → void Function(Pointer<Uint8>, Pointer<Uint8>, int)
void jsMemcpy(uint8_t *dst, const uint8_t *src, size_t len)
final
jsNewArray Pointer<JSValue> Function(Pointer<JSContext> ctx)
JSValue *jsNewArray(JSContext *ctx)
final
jsNewArrayBufferCopy Pointer<JSValue> Function(Pointer<JSContext> ctx, Pointer<Uint8> buf, int len)
JSValue *jsNewArrayBufferCopy(JSContext *ctx, const uint8_t *buf, size_t len)
final
jsNewArrayBufferOwned Pointer<JSValue> Function(Pointer<JSContext> ctx, Pointer<Uint8> buf, int len)
JSValue *jsNewArrayBufferOwned(JSContext *ctx, uint8_t *buf, size_t len)
final
jsNewBigInt64 Pointer<JSValue> Function(Pointer<JSContext> ctx, int val)
JSValue *jsNewBigInt64(JSContext *ctx, int64_t v)
final
jsNewBool Pointer<JSValue> Function(Pointer<JSContext> ctx, int val)
JSValue *jsNewBool(JSContext *ctx, int val)
final
jsNewCFunction Pointer<JSValue> Function(Pointer<JSContext> ctx, Pointer<JSValue> val)
JSValue *jsNewCFunction(JSContext *ctx, JSValue *funcData)
final
jsNewError Pointer<JSValue> Function(Pointer<JSContext> ctx)
DLLEXPORT JSValue *jsNewError(JSContext *ctx);
final
jsNewFloat64 Pointer<JSValue> Function(Pointer<JSContext> ctx, double val)
JSValue *jsNewFloat64(JSContext *ctx, double val)
final
jsNewInt64 Pointer<JSValue> Function(Pointer<JSContext> ctx, int val)
JSValue *jsNewInt64(JSContext *ctx, int64_t val)
final
jsNewObject Pointer<JSValue> Function(Pointer<JSContext> ctx)
JSValue *jsNewObject(JSContext *ctx)
final
jsNewObjectClass Pointer<JSValue> Function(Pointer<JSContext> ctx, int classId, int opaque)
DLLEXPORT JSValue *jsNewObjectClass(JSContext *ctx, uint32_t QJSClassId, void *opaque)
final
jsNewPromiseCapability Pointer<JSValue> Function(Pointer<JSContext> ctx, Pointer<JSValue> val)
JSValue *jsNewPromiseCapability(JSContext *ctx, JSValue *resolving_funcs)
final
jsNewTypedArray Pointer<JSValue> Function(Pointer<JSContext> ctx, Pointer<Uint8> buf, int len, int type)
JSValue *jsNewTypedArray(JSContext *ctx, const uint8_t *buf, size_t len, int32_t type)
final
jsNewTypedArrayOwned Pointer<JSValue> Function(Pointer<JSContext> ctx, Pointer<Uint8> buf, int len, int type)
JSValue *jsNewTypedArrayOwned(JSContext *ctx, uint8_t *buf, size_t len, int32_t type)
final
jsPropertyEnumGetAtom int Function(Pointer<JSPropertyEnum> ptab, int i)
JSAtom jsPropertyEnumGetAtom(JSPropertyEnum *ptab, int i)
final
jsRunGC → void Function(Pointer<JSRuntime>)
DLLEXPORT void jsRunGC(JSRuntime *rt)
final
jsSetMaxStackSize → void Function(Pointer<JSRuntime>, int)
DLLEXPORT void jsSetMaxStackSize(JSRuntime *rt, size_t stack_size)
final
jsSetMemoryLimit → void Function(Pointer<JSRuntime>, int)
DLLEXPORT void jsSetMemoryLimit(JSRuntime *rt, size_t limit);
final
jsTagIsFloat64 int Function(int val)
DLLEXPORT bool jsTagIsFloat64(int32_t tag)
final
jsThrow Pointer<JSValue> Function(Pointer<JSContext> ctx, Pointer<JSValue> val)
DLLEXPORT JSValue *jsThrow(JSContext *ctx, JSValue *obj)
final
jsToBool int Function(Pointer<JSContext> ctx, Pointer<JSValue> val)
int32_t jsToBool(JSContext *ctx, JSValueConst *val)
final
jsToFloat64 double Function(Pointer<JSContext> ctx, Pointer<JSValue> val)
double jsToFloat64(JSContext *ctx, JSValueConst *val)
final
jsToInt64 int Function(Pointer<JSContext> ctx, Pointer<JSValue> val)
int64_t jsToFloat64(JSContext *ctx, JSValueConst *val)
final
jsUNDEFINED Pointer<JSValue> Function()
JSValue *jsUNDEFINED()
final
jsValueGetPtr int Function(Pointer<JSValue> val)
void *jsValueGetPtr(JSValue *val)
final
jsValueGetTag int Function(Pointer<JSValue> val)
DLLEXPORT int32_t jsValueGetTag(JSValue *val)
final
jsValueToAtom int Function(Pointer<JSContext> ctx, Pointer<JSValue> val)
JSAtom jsValueToAtom(JSContext *ctx, JSValueConst *val)
final
runtimeOpaques Map<Pointer<JSRuntime>, _RuntimeOpaque>
final
setJSValueList → void Function(Pointer<JSValue> list, int i, Pointer<JSValue> val)
void setJSValueList(JSValue *list, int i, JSValue *val)
final
sizeOfJSValue int
final

Functions

channelDispacher(Pointer<JSContext> ctx, int type, Pointer<JSValue> argv) Pointer<JSValue>
jsCall(Pointer<JSContext> ctx, Pointer<JSValue> funcObj, Pointer<JSValue> thisObj, List<Pointer<JSValue>> argv) Pointer<JSValue>
jsComputeMemoryUsage(Pointer<JSRuntime> rt) JsMemoryUsage
jsEval(Pointer<JSContext> ctx, String input, String filename, int evalFlags) Pointer<JSValue>
jsFreeRuntime(Pointer<JSRuntime> rt) → void
jsFreeValue(Pointer<JSContext> ctx, Pointer<JSValue> val, {bool free = true}) → void
jsFreeValueRT(Pointer<JSRuntime> rt, Pointer<JSValue> val, {bool free = true}) → void
jsNewClass(Pointer<JSContext> ctx, String name) int
jsNewContext(Pointer<JSRuntime> rt) Pointer<JSContext>
jsNewRuntime(_JSChannel callback, int timeout, ReceivePort port, {int? memoryLimit}) Pointer<JSRuntime>
jsNewString(Pointer<JSContext> ctx, String str) Pointer<JSValue>
jsReleaseRuntimeRefs(Pointer<JSRuntime> rt, Pointer<JSContext> ctx) String?
Release Dart-side references while ctx is still valid.
jsRuntimeReferenceCount(Pointer<JSRuntime> rt) int
jsToCString(Pointer<JSContext> ctx, Pointer<JSValue> val) String
readBridgeStats() Map<String, int>