From cb2ca234bb39d8e02b08d2866860e8d3a00b5887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Fri, 14 Apr 2023 02:41:32 +0200 Subject: refactor(core): limit number of boundary crossings between Rust and V8 (#18652) This commit refactors "deno_core" to do fewer boundary crossings from Rust to V8. In other words we are now calling V8 from Rust fewer times. This is done by merging 3 distinct callbacks into a single one. Instead of having "op resolve" callback, "next tick" callback and "macrotask queue" callback, we now have only "Deno.core.eventLoopTick" callback, which is responsible for doing the same actions previous 3 callbacks. On each of the event loop we were doing at least 2 boundary crosses (timers macrotask queue callback and unhandled promise rejection callback) and up to 4 crosses if there were op response and next tick callbacks coming from Node.js compatibility layer. Now this is all done in a single callback. Closes https://github.com/denoland/deno/issues/18620 --- cli/tests/testdata/workers/nonexistent_worker.out | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cli/tests/testdata/workers/nonexistent_worker.out') diff --git a/cli/tests/testdata/workers/nonexistent_worker.out b/cli/tests/testdata/workers/nonexistent_worker.out index 08a7e74e7..a624c0b51 100644 --- a/cli/tests/testdata/workers/nonexistent_worker.out +++ b/cli/tests/testdata/workers/nonexistent_worker.out @@ -1,3 +1,3 @@ [WILDCARD]error: Uncaught (in worker "") Module not found "file:///[WILDCARD]/workers/doesnt_exist.js". error: Uncaught (in promise) Error: Unhandled error in child worker. - at Worker.#pollControl ([WILDCARD]) + at Worker.#pollControl[WILDCARD] -- cgit v1.2.3