javascript-kit-swift
Version:
A runtime library of JavaScriptKit which is Swift framework to interact with JavaScript through WebAssembly.
52 lines (51 loc) • 3.66 kB
TypeScript
import * as JSValue from "./js-value.js";
export declare type ref = number;
export declare type pointer = number;
export declare type bool = number;
export declare type JavaScriptValueKind = number;
export declare type JavaScriptValueKindAndFlags = number;
export interface ExportedFunctions {
swjs_library_version(): number;
swjs_library_features(): number;
swjs_prepare_host_function_call(size: number): pointer;
swjs_cleanup_host_function_call(argv: pointer): void;
swjs_call_host_function(host_func_id: number, argv: pointer, argc: number, callback_func_ref: ref): bool;
swjs_free_host_function(host_func_id: number): void;
swjs_enqueue_main_job_from_worker(unowned_job: number): void;
swjs_wake_worker_thread(): void;
}
export interface ImportedFunctions {
swjs_set_prop(ref: number, name: number, kind: JSValue.Kind, payload1: number, payload2: number): void;
swjs_get_prop(ref: number, name: number, payload1_ptr: pointer, payload2_ptr: pointer): JavaScriptValueKind;
swjs_set_subscript(ref: number, index: number, kind: JSValue.Kind, payload1: number, payload2: number): void;
swjs_get_subscript(ref: number, index: number, payload1_ptr: pointer, payload2_ptr: pointer): JavaScriptValueKind;
swjs_encode_string(ref: number, bytes_ptr_result: pointer): number;
swjs_decode_string(bytes_ptr: pointer, length: number): number;
swjs_load_string(ref: number, buffer: pointer): void;
swjs_call_function(ref: number, argv: pointer, argc: number, payload1_ptr: pointer, payload2_ptr: pointer): JavaScriptValueKindAndFlags;
swjs_call_function_no_catch(ref: number, argv: pointer, argc: number, payload1_ptr: pointer, payload2_ptr: pointer): JavaScriptValueKindAndFlags;
swjs_call_function_with_this(obj_ref: ref, func_ref: ref, argv: pointer, argc: number, payload1_ptr: pointer, payload2_ptr: pointer): JavaScriptValueKindAndFlags;
swjs_call_function_with_this_no_catch(obj_ref: ref, func_ref: ref, argv: pointer, argc: number, payload1_ptr: pointer, payload2_ptr: pointer): JavaScriptValueKindAndFlags;
swjs_call_new(ref: number, argv: pointer, argc: number): number;
swjs_call_throwing_new(ref: number, argv: pointer, argc: number, exception_kind_ptr: pointer, exception_payload1_ptr: pointer, exception_payload2_ptr: pointer): number;
swjs_instanceof(obj_ref: ref, constructor_ref: ref): boolean;
swjs_create_function(host_func_id: number, line: number, file: ref): number;
swjs_create_typed_array(constructor_ref: ref, elementsPtr: pointer, length: number): number;
swjs_load_typed_array(ref: ref, buffer: pointer): void;
swjs_release(ref: number): void;
swjs_i64_to_bigint(value: bigint, signed: bool): ref;
swjs_bigint_to_i64(ref: ref, signed: bool): bigint;
swjs_i64_to_bigint_slow(lower: number, upper: number, signed: bool): ref;
swjs_unsafe_event_loop_yield: () => void;
swjs_send_job_to_main_thread: (unowned_job: number) => void;
swjs_listen_message_from_main_thread: () => void;
swjs_wake_up_worker_thread: (tid: number) => void;
swjs_listen_message_from_worker_thread: (tid: number) => void;
swjs_terminate_worker_thread: (tid: number) => void;
swjs_get_worker_thread_id: () => number;
}
export declare const enum LibraryFeatures {
WeakRefs = 1
}
export declare type TypedArray = Int8ArrayConstructor | Uint8ArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | BigInt64ArrayConstructor | BigUint64ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor;
export declare function assertNever(x: never, message: string): void;