Interface: QuickJSFFI

February 16, 2026 ยท View on GitHub

quickjs-emscripten


quickjs-emscripten / quickjs-emscripten-core / QuickJSFFI

Interface: QuickJSFFI

Defined in: packages/quickjs-ffi-types/src/ffi.ts:37

Low-level FFI bindings to QuickJS's Emscripten module. See instead QuickJSContext, the public Javascript interface exposed by this library.

Contents

Unstable

The FFI interface is considered private and may change.

Properties

DEBUG

readonly DEBUG: boolean

Defined in: packages/quickjs-ffi-types/src/ffi.ts:39

Set at compile time.


QTS_ArgvGetJSValueConstPointer()

QTS_ArgvGetJSValueConstPointer: (argv, index) => JSValueConstPointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:207

Parameters

argv

JSValuePointer | JSValueConstPointer

index

number

Returns

JSValueConstPointer


QTS_bjson_decode()

QTS_bjson_decode: (ctx, data) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:219

Parameters

ctx

JSContextPointer

data

JSValuePointer | JSValueConstPointer

Returns

JSValuePointer


QTS_bjson_encode()

QTS_bjson_encode: (ctx, val) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:215

Parameters

ctx

JSContextPointer

val

JSValuePointer | JSValueConstPointer

Returns

JSValuePointer


QTS_BuildIsAsyncify()

QTS_BuildIsAsyncify: () => number

Defined in: packages/quickjs-ffi-types/src/ffi.ts:199

Returns

number


QTS_BuildIsDebug()

QTS_BuildIsDebug: () => number

Defined in: packages/quickjs-ffi-types/src/ffi.ts:198

Returns

number


QTS_BuildIsSanitizeLeak()

QTS_BuildIsSanitizeLeak: () => number

Defined in: packages/quickjs-ffi-types/src/ffi.ts:47

Returns

number


QTS_Call()

QTS_Call: (ctx, func_obj, this_obj, argc, argv_ptrs) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:143

Parameters

ctx

JSContextPointer

func_obj

JSValuePointer | JSValueConstPointer

this_obj

JSValuePointer | JSValueConstPointer

argc

number

argv_ptrs

JSValueConstPointerPointer

Returns

JSValuePointer


QTS_DefineProp()

QTS_DefineProp: (ctx, this_val, prop_name, prop_value, get, set, configurable, enumerable, has_value) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:125

Parameters

ctx

JSContextPointer

this_val

JSValuePointer | JSValueConstPointer

prop_name

JSValuePointer | JSValueConstPointer

prop_value

JSValuePointer | JSValueConstPointer

get

JSValuePointer | JSValueConstPointer

set

JSValuePointer | JSValueConstPointer

configurable

boolean

enumerable

boolean

has_value

boolean

Returns

void


QTS_Dump()

QTS_Dump: (ctx, obj) => JSBorrowedCharPointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:151

Parameters

ctx

JSContextPointer

obj

JSValuePointer | JSValueConstPointer

Returns

JSBorrowedCharPointer


QTS_DupValuePointer()

QTS_DupValuePointer: (ctx, val) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:63

Parameters

ctx

JSContextPointer

val

JSValuePointer | JSValueConstPointer

Returns

JSValuePointer


QTS_Eval()

QTS_Eval: (ctx, js_code, js_code_length, filename, detectModule, evalFlags) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:155

Parameters

ctx

JSContextPointer

js_code

BorrowedHeapCharPointer

js_code_length

number

filename

string

detectModule

EvalDetectModule

evalFlags

EvalFlags

Returns

JSValuePointer


QTS_ExecutePendingJob()

QTS_ExecutePendingJob: (rt, maxJobsToExecute, lastJobContext) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:104

Parameters

rt

JSRuntimePointer

maxJobsToExecute

number

lastJobContext

JSContextPointerPointer

Returns

JSValuePointer


QTS_FreeContext()

QTS_FreeContext: (ctx) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:58

Parameters

ctx

JSContextPointer

Returns

void


QTS_FreeCString()

QTS_FreeCString: (ctx, str) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:62

Parameters

ctx

JSContextPointer

str

JSBorrowedCharPointer

Returns

void


QTS_FreeRuntime()

QTS_FreeRuntime: (rt) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:56

Parameters

rt

JSRuntimePointer

Returns

void


QTS_FreeValuePointer()

QTS_FreeValuePointer: (ctx, value) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:59

Parameters

ctx

JSContextPointer

value

JSValuePointer

Returns

void


QTS_FreeValuePointerRuntime()

QTS_FreeValuePointerRuntime: (rt, value) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:60

Parameters

rt

JSRuntimePointer

value

JSValuePointer

Returns

void


QTS_FreeVoidPointer()

QTS_FreeVoidPointer: (ctx, ptr) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:61

Parameters

ctx

JSContextPointer

ptr

JSVoidPointer

Returns

void


QTS_GetArrayBuffer()

QTS_GetArrayBuffer: (ctx, data) => JSVoidPointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:85

Parameters

ctx

JSContextPointer

data

JSValuePointer | JSValueConstPointer

Returns

JSVoidPointer


QTS_GetArrayBufferLength()

QTS_GetArrayBufferLength: (ctx, data) => number

Defined in: packages/quickjs-ffi-types/src/ffi.ts:89

Parameters

ctx

JSContextPointer

data

JSValuePointer | JSValueConstPointer

Returns

number


QTS_GetDebugLogEnabled()

QTS_GetDebugLogEnabled: (rt) => number

Defined in: packages/quickjs-ffi-types/src/ffi.ts:196

Parameters

rt

JSRuntimePointer

Returns

number


QTS_GetFalse()

QTS_GetFalse: () => JSValueConstPointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:51

Returns

JSValueConstPointer


QTS_GetFloat64()

QTS_GetFloat64: (ctx, value) => number

Defined in: packages/quickjs-ffi-types/src/ffi.ts:79

Parameters

ctx

JSContextPointer

value

JSValuePointer | JSValueConstPointer

Returns

number


QTS_GetGlobalObject()

QTS_GetGlobalObject: (ctx) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:182

Parameters

ctx

JSContextPointer

Returns

JSValuePointer


QTS_GetHostRefId()

QTS_GetHostRefId: (value) => HostRefId

Defined in: packages/quickjs-ffi-types/src/ffi.ts:54

Parameters

value

JSValuePointer | JSValueConstPointer

Returns

HostRefId


QTS_GetLength()

QTS_GetLength: (ctx, out_len, value) => number

Defined in: packages/quickjs-ffi-types/src/ffi.ts:171

Parameters

ctx

JSContextPointer

out_len

UInt32Pointer

value

JSValuePointer | JSValueConstPointer

Returns

number


QTS_GetModuleNamespace()

QTS_GetModuleNamespace: (ctx, module_func_obj) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:163

Parameters

ctx

JSContextPointer

module_func_obj

JSValuePointer | JSValueConstPointer

Returns

JSValuePointer


QTS_GetNull()

QTS_GetNull: () => JSValueConstPointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:50

Returns

JSValueConstPointer


QTS_GetOwnPropertyNames()

QTS_GetOwnPropertyNames: (ctx, out_ptrs, out_len, obj, flags) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:136

Parameters

ctx

JSContextPointer

out_ptrs

JSValuePointerPointerPointer

out_len

UInt32Pointer

obj

JSValuePointer | JSValueConstPointer

flags

number

Returns

JSValuePointer


QTS_GetProp()

QTS_GetProp: (ctx, this_val, prop_name) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:109

Parameters

ctx

JSContextPointer

this_val

JSValuePointer | JSValueConstPointer

prop_name

JSValuePointer | JSValueConstPointer

Returns

JSValuePointer


QTS_GetPropNumber()

QTS_GetPropNumber: (ctx, this_val, prop_name) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:114

Parameters

ctx

JSContextPointer

this_val

JSValuePointer | JSValueConstPointer

prop_name

number

Returns

JSValuePointer


QTS_GetString()

QTS_GetString: (ctx, value) => JSBorrowedCharPointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:81

Parameters

ctx

JSContextPointer

value

JSValuePointer | JSValueConstPointer

Returns

JSBorrowedCharPointer


QTS_GetSymbolDescriptionOrKey()

QTS_GetSymbolDescriptionOrKey: (ctx, value) => JSBorrowedCharPointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:98

Parameters

ctx

JSContextPointer

value

JSValuePointer | JSValueConstPointer

Returns

JSBorrowedCharPointer


QTS_GetTrue()

QTS_GetTrue: () => JSValueConstPointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:52

Returns

JSValueConstPointer


QTS_GetUndefined()

QTS_GetUndefined: () => JSValueConstPointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:49

Returns

JSValueConstPointer


QTS_IsEqual()

QTS_IsEqual: (ctx, a, b, op) => number

Defined in: packages/quickjs-ffi-types/src/ffi.ts:176

Parameters

ctx

JSContextPointer

a

JSValuePointer | JSValueConstPointer

b

JSValuePointer | JSValueConstPointer

op

IsEqualOp

Returns

number


QTS_IsGlobalSymbol()

QTS_IsGlobalSymbol: (ctx, value) => number

Defined in: packages/quickjs-ffi-types/src/ffi.ts:102

Parameters

ctx

JSContextPointer

value

JSValuePointer | JSValueConstPointer

Returns

number


QTS_IsJobPending()

QTS_IsJobPending: (rt) => number

Defined in: packages/quickjs-ffi-types/src/ffi.ts:103

Parameters

rt

JSRuntimePointer

Returns

number


QTS_NewArray()

QTS_NewArray: (ctx) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:72

Parameters

ctx

JSContextPointer

Returns

JSValuePointer


QTS_NewArrayBuffer()

QTS_NewArrayBuffer: (ctx, buffer, length) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:73

Parameters

ctx

JSContextPointer

buffer

JSVoidPointer

length

number

Returns

JSValuePointer


QTS_NewContext()

QTS_NewContext: (rt, intrinsics) => JSContextPointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:57

Parameters

rt

JSRuntimePointer

intrinsics

IntrinsicsFlags

Returns

JSContextPointer


QTS_NewError()

QTS_NewError: (ctx) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:42

Parameters

ctx

JSContextPointer

Returns

JSValuePointer


QTS_NewFloat64()

QTS_NewFloat64: (ctx, num) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:78

Parameters

ctx

JSContextPointer

num

number

Returns

JSValuePointer


QTS_NewFunction()

QTS_NewFunction: (ctx, name, arg_length, is_constructor, host_ref_id) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:200

Parameters

ctx

JSContextPointer

name

string

arg_length

number

is_constructor

boolean

host_ref_id

HostRefId

Returns

JSValuePointer


QTS_NewHostRef()

QTS_NewHostRef: (ctx, id) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:53

Parameters

ctx

JSContextPointer

id

HostRefId

Returns

JSValuePointer


QTS_NewObject()

QTS_NewObject: (ctx) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:67

Parameters

ctx

JSContextPointer

Returns

JSValuePointer


QTS_NewObjectProto()

QTS_NewObjectProto: (ctx, proto) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:68

Parameters

ctx

JSContextPointer

proto

JSValuePointer | JSValueConstPointer

Returns

JSValuePointer


QTS_NewPromiseCapability()

QTS_NewPromiseCapability: (ctx, resolve_funcs_out) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:183

Parameters

ctx

JSContextPointer

resolve_funcs_out

JSValuePointerPointer

Returns

JSValuePointer


QTS_NewRuntime()

QTS_NewRuntime: () => JSRuntimePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:55

Returns

JSRuntimePointer


QTS_NewString()

QTS_NewString: (ctx, string) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:80

Parameters

ctx

JSContextPointer

string

BorrowedHeapCharPointer

Returns

JSValuePointer


QTS_NewSymbol()

QTS_NewSymbol: (ctx, description, isGlobal) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:93

Parameters

ctx

JSContextPointer

description

BorrowedHeapCharPointer

isGlobal

number

Returns

JSValuePointer


QTS_PromiseResult()

QTS_PromiseResult: (ctx, promise) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:191

Parameters

ctx

JSContextPointer

promise

JSValuePointer | JSValueConstPointer

Returns

JSValuePointer


QTS_PromiseState()

QTS_PromiseState: (ctx, promise) => JSPromiseStateEnum

Defined in: packages/quickjs-ffi-types/src/ffi.ts:187

Parameters

ctx

JSContextPointer

promise

JSValuePointer | JSValueConstPointer

Returns

JSPromiseStateEnum


QTS_RecoverableLeakCheck()

QTS_RecoverableLeakCheck: () => number

Defined in: packages/quickjs-ffi-types/src/ffi.ts:46

Returns

number


QTS_ResolveException()

QTS_ResolveException: (ctx, maybe_exception) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:150

Parameters

ctx

JSContextPointer

maybe_exception

JSValuePointer

Returns

JSValuePointer


QTS_RuntimeComputeMemoryUsage()

QTS_RuntimeComputeMemoryUsage: (rt, ctx) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:44

Parameters

rt

JSRuntimePointer

ctx

JSContextPointer

Returns

JSValuePointer


QTS_RuntimeDisableInterruptHandler()

QTS_RuntimeDisableInterruptHandler: (rt) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:212

Parameters

rt

JSRuntimePointer

Returns

void


QTS_RuntimeDisableModuleLoader()

QTS_RuntimeDisableModuleLoader: (rt) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:214

Parameters

rt

JSRuntimePointer

Returns

void


QTS_RuntimeDumpMemoryUsage()

QTS_RuntimeDumpMemoryUsage: (rt) => OwnedHeapCharPointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:45

Parameters

rt

JSRuntimePointer

Returns

OwnedHeapCharPointer


QTS_RuntimeEnableInterruptHandler()

QTS_RuntimeEnableInterruptHandler: (rt) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:211

Parameters

rt

JSRuntimePointer

Returns

void


QTS_RuntimeEnableModuleLoader()

QTS_RuntimeEnableModuleLoader: (rt, use_custom_normalize) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:213

Parameters

rt

JSRuntimePointer

use_custom_normalize

number

Returns

void


QTS_RuntimeSetMaxStackSize()

QTS_RuntimeSetMaxStackSize: (rt, stack_size) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:48

Parameters

rt

JSRuntimePointer

stack_size

number

Returns

void


QTS_RuntimeSetMemoryLimit()

QTS_RuntimeSetMemoryLimit: (rt, limit) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:43

Parameters

rt

JSRuntimePointer

limit

number

Returns

void


QTS_SetDebugLogEnabled()

QTS_SetDebugLogEnabled: (rt, is_enabled) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:197

Parameters

rt

JSRuntimePointer

is_enabled

number

Returns

void


QTS_SetProp()

QTS_SetProp: (ctx, this_val, prop_name, prop_value) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:119

Parameters

ctx

JSContextPointer

this_val

JSValuePointer | JSValueConstPointer

prop_name

JSValuePointer | JSValueConstPointer

prop_value

JSValuePointer | JSValueConstPointer

Returns

void


QTS_TestStringArg()

QTS_TestStringArg: (string) => void

Defined in: packages/quickjs-ffi-types/src/ffi.ts:195

Parameters

string

string

Returns

void


QTS_Throw()

QTS_Throw: (ctx, error) => JSValuePointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:41

Parameters

ctx

JSContextPointer

error

JSValuePointer | JSValueConstPointer

Returns

JSValuePointer


QTS_Typeof()

QTS_Typeof: (ctx, value) => OwnedHeapCharPointer

Defined in: packages/quickjs-ffi-types/src/ffi.ts:167

Parameters

ctx

JSContextPointer

value

JSValuePointer | JSValueConstPointer

Returns

OwnedHeapCharPointer