summaryrefslogtreecommitdiff
path: root/runtime/worker.rs
AgeCommit message (Collapse)Author
2023-01-08feat(core): allow specifying name and dependencies of an Extension (#17301)Leo Kettmeir
2023-01-07refactor(permissions): add PermissionsContainer struct for internal ↵Bartek Iwańczuk
mutability (#17134) Turns out we were cloning permissions which after prompting were discarded, so the state of permissions was never preserved. To handle that we need to store all permissions behind "Arc<Mutex<>>" (because there are situations where we need to send them to other thread). Testing and benching code still uses "Permissions" in most places - it's undesirable to share the same permission set between various test/bench files - otherwise granting or revoking permissions in one file would influence behavior of other test files.
2023-01-05refactor(cli,core,ext,rt): remove some unnecessary `clone` or `malloc` (#17274)Yiyu Lin
2023-01-02chore: update copyright year to 2023 (#17247)David Sherret
Yearly tradition of creating extra noise in git.
2022-12-19fix(runtime): expose `extensions_with_js` from WorkerOptions (#17109)Leo Kettmeir
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-12-18refactor(runtime): "Worker::execute_script" returns value (#17092)Fenix
This commit changes "Worker::execute_script" to return a global handle to "v8::Value".
2022-12-12feat: add `--inspect-wait` flag (#17001)Bartek Iwańczuk
This commit adds new "--inspect-wait" flag which works similarly to "--inspect-brk" in that it waits for inspector session to be established before running code. However it doesn't break on the first statement of user code, but instead runs it as soon as a session is established.
2022-11-28fix(npm): allow to inspect npm modules with --inspect-brk (#16841)Bartek Iwańczuk
2022-11-26fix(inspector): send "isDefault" in aux data (#16836)Bartek Iwańczuk
With trial and error I found that most debuggers expect "isDefault" to be sent in "auxData" field of "executionContextCreated" notification. This stems from the fact that Node.js sends this data and eg. VSCode requires it to close connection to the debugger when the program finishes execution.
2022-11-21feat(core): Ability to create snapshots from existing snapshots (#16597)Bartek Iwańczuk
Co-authored-by: crowlkats <crowlkats@toaxl.com>
2022-11-10feat: remove --unstable flag requirement for npm: specifiers (#16473)Bartek Iwańczuk
This commit makes "npm:" specifiers not require "--unstable" flag. At the moment some APIs used by Node polyfills still require "--unstable" which will be addressed in follow up PRs.
2022-11-10feat(runtime): support creating workers with custom v8 snapshots (#16553)Mathias Lafeldt
This PR makes it possible for applications to create workers from custom snapshots to improve runtime performance (without having to fork/copy `runtime/workers.rs`).
2022-11-08refactor: simplify deno_core's grab_global and ensure_objs (#16564)Ryan Dahl
- refactor: remove JsRuntime::ensure_objs - refactor: Replace JsRuntime::grab_global with JsRuntime::eval
2022-10-26perf(core): do not drive JsInspector by default (#16410)Divy Srivastava
Part of https://github.com/denoland/deno/pull/16377
2022-10-18feat: introduce navigator.language (#12322)Luca Matei Pintilie
Link to the spec: https://html.spec.whatwg.org/multipage/system-state.html#dom-navigator-language-dev Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-10-15refactor: Add default implementation for WorkerOptions (#14860)Christian Dürr
This adds an implementation of `Default` for both `WorkerOptions` and `BootstrapOptions`. Since both of these structs are rather big, this should make it easier for people unfamiliar with the internals to focus on the options relevant to them. As a user of `deno_runtime` I feel like these should serve as good defaults, getting people them started without having to tweak the runtime. Additionally even if some changes are made, the usage of `..Default::default()` will significantly help with code clarity and verbosity.
2022-10-05feat(npm): implement Node API (#13633)Divy Srivastava
This PR implements the NAPI for loading native modules into Deno. Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com> Co-authored-by: DjDeveloper <43033058+DjDeveloperr@users.noreply.github.com> Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
2022-09-28feat: implement Web Cache API (#15829)Satya Rohith
2022-09-19refactor: move out test files from root testdata directory into sub ↵David Sherret
directories (#15949)
2022-09-17perf(ext/console): avoid `wrapConsole` when not inspecting (#15931)Divy Srivastava
2022-09-13refactor(npm): create general use `NpmPackageResolver` (#15882)David Sherret
2022-09-02refactor(test): grab runTests() and runBenchmarks() from __bootstrap (#15420)Nayeem Rahman
2022-09-02fix(repl): don't terminate on unhandled error events (#15548)Nayeem Rahman
2022-08-24feat(unstable): add more permission checks for ext/node/ (#15581)Bartek Iwańczuk
2022-08-20feat(unstable): initial support for npm specifiers (#15484)David Sherret
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-08-18feat(ext/flash): An optimized http/1.1 server (#15405)Divy Srivastava
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com> Co-authored-by: Ben Noordhuis <info@bnoordhuis.nl> Co-authored-by: crowlkats <crowlkats@toaxl.com> Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
2022-08-16feat(runtime): add pre_execute_module_cb (#15485)David Sherret
2022-08-10refactor(runtime): split up `MainWorker` and `WebWorker`'s `preload_module` ↵David Sherret
method into two separate methods (#15451)
2022-08-09chore: temporarily disable `ext/node` and use unstable ops (#15438)David Sherret
2022-08-09feat: add ext/node for require support (#15362)Bartek Iwańczuk
This commit adds "ext/node" extension that implementes CommonJS module system. In the future this extension might be extended to actually contain implementation of Node compatibility layer in favor of "deno_std/node". Currently this functionality is not publicly exposed, it is available via "Deno[Deno.internal].require" namespace and is meant to be used by other functionality to be landed soon. This is a minimal first pass, things that still don't work: support for dynamic imports in CJS conditional exports
2022-07-05Revert "refactor(snapshots): to their own crate (#14794)" (#15076)Bartek Iwańczuk
This reverts commit fd5a12d7e25dc53238e2bbcffe970e646c1035f3.
2022-06-30fix(runtime): derive default for deno_runtime::ExitCode (#15017)Curtis Allen
2022-06-28feat(web): add beforeunload event (#14830)Colin Ihrig
This commit adds the 'beforeunload' event. Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-06-24refactor(snapshots): to their own crate (#14794)Aaron O'Mullan
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-06-19refactor: make MainWorker::evaluate_module public (#14892)Mathias Lafeldt
2022-06-08refactor: ensure exit code reference is passed to all workers (#14814)Bartek Iwańczuk
2022-05-14feat: add userAgent property to Navigator's prototype (#14415)randomicon00
2022-05-10fix(runtime/web_worker): Use biased select when getting module result (#14553)Nayeem Rahman
2022-04-27refactor: Remove PrettyJsError and js_error_create_fn (#14378)Nayeem Rahman
This commit: - removes "fmt_errors::PrettyJsError" in favor of "format_js_error" fn - removes "deno_core::JsError::create" and "deno_core::RuntimeOptions::js_error_create_fn" - adds new option to "deno_runtime::ops::worker_host::init"
2022-04-26fix(test): capture worker stdout and stderr in test output (#14410)David Sherret
2022-04-21feat(runtime): two-tier subprocess API (#11618)Leo Kettmeir
2022-04-15refactor: Move source map lookups to core (#14274)Nayeem Rahman
The following transformations gradually faced by "JsError" have all been moved up front to "JsError::from_v8_exception()": - finding the first non-"deno:" source line; - moving "JsError::script_resource_name" etc. into the first error stack in case of syntax errors; - source mapping "JsError::script_resource_name" etc. when wrapping the error even though the frame locations are source mapped earlier; - removing "JsError::{script_resource_name,line_number,start_column,end_column}" entirely in favour of "js_error.frames.get(0)". We also no longer pass a js-side callback to "core/02_error.js" from cli. I avoided doing this on previous occasions because the source map lookups were in an awkward place.
2022-04-13feat(ext/web): Add error events for event listener and timer errors (#14159)Nayeem Rahman
- feat: Add handleable error event for even listener errors - feat: Add handleable error event for setTimeout()/setInterval() errors - feat: Add Deno.core.destructureError() - feat: Add Deno.core.terminate() - fix: Don't throw listener errors from dispatchEvent() - fix: Use biased mode when selecting between mod_evaluate() and run_event_loop() results
2022-03-22feat(core): disableable extensions & ops (#14063)Aaron O'Mullan
Streamlines a common middleware pattern and provides foundations for avoiding variably sized v8::ExternalReferences & enabling fully monomorphic op callpaths
2022-03-01fix(runtime): disable console color for non tty stdout (#13782)Antonio Musolino
2022-02-15chore(ext/timers): move ext/timers to ext/web (#13665)Andreu Botella
2022-02-11compat: support --compat in web workers (#13629)Bartek Iwańczuk
Adds another callback to WebWorkerOptions that allows to execute some modules before actual worker code executes. This allows to set up Node global using std/node.
2022-01-18fix(runtime): don't crash when window is deleted (#13392)Bartek Iwańczuk
This commit fixes an error when user deletes "window" global JS variable. Instead of relying on "window" or "globalThis" to dispatch "load" and "unload" events, we are default to global scope of the worker.
2022-01-07chore: update copyright to 2022 (#13306)Ryan Dahl
Co-authored-by: Erfan Safari <erfanshield@outlook.com>
2021-12-21refactor: cleanup cli/main.rs (#13160)Bartek Iwańczuk