mirror of
https://github.com/denoland/deno.git
synced 2024-12-01 16:51:13 -05:00
cb2ca234bb
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
9 lines
434 B
Text
9 lines
434 B
Text
error: Uncaught (in worker "") Error
|
|
throw new Error();
|
|
^
|
|
at [WILDCARD]/workers/drop_handle_race.js:2:9
|
|
at Object.action (ext:deno_web/02_timers.js:[WILDCARD])
|
|
at handleTimerMacrotask (ext:deno_web/02_timers.js:[WILDCARD])
|
|
error: Uncaught (in promise) Error: Unhandled error in child worker.
|
|
at Worker.#pollControl (ext:runtime/11_workers.js:[WILDCARD])
|
|
at eventLoopTick (ext:core/01_core.js:[WILDCARD])
|