Skip to content

Commit afada10

Browse files
Cover the case where a JSObject is deinitialized on a different thread
1 parent dd0c977 commit afada10

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

IntegrationTests/lib.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ class ThreadRegistry {
128128

129129
worker.on("error", (error) => {
130130
console.error(`Worker thread ${tid} error:`, error);
131+
throw error;
131132
});
132133
this.workers.set(tid, worker);
133134
worker.postMessage({ selfFilePath, module, programName, memory, tid, startArg });

Tests/JavaScriptEventLoopTests/WebWorkerTaskExecutorTests.swift

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,5 +150,19 @@ final class WebWorkerTaskExecutorTests: XCTestCase {
150150
}
151151
executor.terminate()
152152
}
153+
154+
/*
155+
func testDeinitJSObjectOnDifferentThread() async throws {
156+
let executor = try await WebWorkerTaskExecutor(numberOfThreads: 1)
157+
158+
var object: JSObject? = JSObject.global.Object.function!.new()
159+
let task = Task(executorPreference: executor) {
160+
object = nil
161+
_ = object
162+
}
163+
await task.value
164+
executor.terminate()
165+
}
166+
*/
153167
}
154168
#endif

0 commit comments

Comments
 (0)