Skip to content

Commit 2def067

Browse files
committed
Remove await with timeout to simplify runtime interface
1 parent d1fff95 commit 2def067

File tree

3 files changed

+2
-44
lines changed

3 files changed

+2
-44
lines changed

Runtime/src/index.ts

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -144,16 +144,6 @@ class SwiftRuntimeHeap {
144144
// Helper methods for asyncify
145145
const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));
146146

147-
const promiseWithTimout = (promise: Promise<any>, timeout: number) => {
148-
let timeoutPromise = new Promise((resolve, reject) => {
149-
let timeoutID = setTimeout(() => {
150-
clearTimeout(timeoutID);
151-
reject(Error(`Promise timed out in ${timeout} ms`));
152-
}, timeout);
153-
});
154-
return Promise.race([promise, timeoutPromise]);
155-
};
156-
157147
export class SwiftRuntime {
158148
private instance: WebAssembly.Instance | null;
159149
private heap: SwiftRuntimeHeap;
@@ -658,16 +648,6 @@ export class SwiftRuntime {
658648
const promise: Promise<any> = this.heap.referenceHeap(promiseRef);
659649
syncAwait(promise, kind_ptr, payload1_ptr, payload2_ptr);
660650
},
661-
swjs_sync_await_with_timeout: (
662-
promiseRef: ref,
663-
timeout: number,
664-
kind_ptr: pointer,
665-
payload1_ptr: pointer,
666-
payload2_ptr: pointer
667-
) => {
668-
const promise: Promise<any> = this.heap.referenceHeap(promiseRef);
669-
syncAwait(promiseWithTimout(promise, timeout), kind_ptr, payload1_ptr, payload2_ptr);
670-
},
671651
};
672652
}
673653
}

Sources/JavaScriptKit/PauseExecution.swift

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,12 @@ extension JSPromise where Success == JSValue, Failure == JSError {
1818
///
1919
/// **Important**: Wasm module must be [asyncified](https://emscripten.org/docs/porting/asyncify.html),
2020
/// otherwise JavaScriptKit's runtime will throw an exception.
21-
public func syncAwait(timeout: Int32? = nil) -> Result<Success, Failure> {
21+
public func syncAwait() -> Result<Success, Failure> {
2222
var kindAndFlags = JavaScriptValueKindAndFlags()
2323
var payload1 = JavaScriptPayload1()
2424
var payload2 = JavaScriptPayload2()
2525

26-
if let timout = timeout {
27-
_syncAwaitWithTimout(jsObject.id, timout, &kindAndFlags, &payload1, &payload2)
28-
} else {
29-
_syncAwait(jsObject.id, &kindAndFlags, &payload1, &payload2)
30-
}
26+
_syncAwait(jsObject.id, &kindAndFlags, &payload1, &payload2)
3127
let result = RawJSValue(kind: kindAndFlags.kind, payload1: payload1, payload2: payload2).jsValue()
3228
if kindAndFlags.isException {
3329
if let error = JSError(from: result) {

Sources/_CJavaScriptKit/include/_CJavaScriptKit.h

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -283,24 +283,6 @@ extern void _syncAwait(const JavaScriptObjectRef promise,
283283
JavaScriptPayload1 *result_payload1,
284284
JavaScriptPayload2 *result_payload2);
285285

286-
/// Unwind Wasm module execution stack and rewind it after promise is fulfilled or timeout is reached.
287-
/// **Important**: Wasm module must be [asyncified](https://emscripten.org/docs/porting/asyncify.html),
288-
/// otherwise JavaScriptKit's runtime will throw an exception.
289-
///
290-
/// @param promise target JavaScript promise.
291-
/// @param ms Length of timeout in milliseconds.
292-
/// @param result_kind A result pointer of JavaScript value kind of returned result or thrown exception.
293-
/// @param result_payload1 A result pointer of first payload of JavaScript value of returned result or thrown exception.
294-
/// @param result_payload2 A result pointer of second payload of JavaScript value of returned result or thrown exception.
295-
__attribute__((__import_module__("javascript_kit"),
296-
__import_name__("swjs_sync_await_with_timeout")))
297-
extern void _syncAwaitWithTimout(const JavaScriptObjectRef promise,
298-
const int ms,
299-
JavaScriptValueKindAndFlags *result_kind,
300-
JavaScriptPayload1 *result_payload1,
301-
JavaScriptPayload2 *result_payload2);
302-
303-
304286
#endif
305287

306288
#endif /* _CJavaScriptKit_h */

0 commit comments

Comments
 (0)