summaryrefslogtreecommitdiff
path: root/runtime
AgeCommit message (Collapse)Author
2021-06-22feat(core): support AbortSignal in readFile (#10943)Benjamin Gruenbaum
2021-06-22feat: transfer MessagePort between workers (#11076)Luca Casonato
Add support for transferring `MessagePort`s between workers.
2021-06-22fix(runtime): fix signal promise API (#11069)Yoshiya Hinosawa
2021-06-22feat(fetch): add programmatic proxy (#10907)Tomofumi Chiba
This commit adds new options to unstable "Deno.createHttpClient" API. "proxy" and "basicAuth" options were added that allow to use custom proxy when client instance is passed to "fetch" API.
2021-06-22fix: move stable/unstable types/APIs to their correct places (#10880)Muthu Kumar
- Moved ppid and memoryUsage types from deno.unstable to deno.ns. - Moved sleepSync to unstable object, shutdown to stable object.
2021-06-22refactor: unify JavaScript script execution method (#11043)Bartek Iwańczuk
This commit renames "JsRuntime::execute" to "JsRuntime::execute_script". Additionally same renames were applied to methods on "deno_runtime::Worker" and "deno_runtime::WebWorker". A new macro was added to "deno_core" called "located_script_name" which returns the name of Rust file alongside line no and col no of that call site. This macro is useful in combination with "JsRuntime::execute_script" and allows to provide accurate place where "one-off" JavaScript scripts are executed for internal runtime functions. Co-authored-by: Nayeem Rahman <nayeemrmn99@gmail.com>
2021-06-22feat: Deno namespace configurable and unfrozen (#11062)Kitson Kelly
Closes #11033
2021-06-21feat: `MessageChannel` and `MessagePort` (#11051)Luca Casonato
This commit introduces support for MessageChannel and MessagePort. MessagePorts can be transfered across other MessagePorts.
2021-06-21refactor(core): always attach inspector to isolate (#11042)Bartek Iwańczuk
This commit changes "deno_core::JsRuntime" to always create "deno_core::JsRuntimeInspector" instance.
2021-06-21chore: release crates (#11068)Bartek Iwańczuk
2021-06-19chore: upgrade Tokio to 1.7.1 (#11045)Yusuke Tanaka
2021-06-17chore: upgrade Rust to 1.53.0 (#11021)Yusuke Tanaka
2021-06-16chore: upgrade Tokio to 1.7.0 (#11008)Yusuke Tanaka
2021-06-15chore: release crates (#10976)Bartek Iwańczuk
2021-06-15Remove various unnecessary allow(clippy) declarations (#10971)Ryan Dahl
2021-06-15fix: make WHATWG streams more compliant (#10967)Luca Casonato
2021-06-14fix: poll connection after writing response chunk in Deno.serveHttp() (#10961)Bartek Iwańczuk
This commit changes "op_http_response_write" to first send response chunk and then poll the underlying HTTP connection. Previously after writing a chunk of response HTTP connection wasn't polled and thus data wasn't written to the socket until after next op interacting with the connection.
2021-06-14fix: hang in Deno.serveHttp() (#10923)Bartek Iwańczuk
Waiting on next request in Deno.serveHttp() API hanged when responses were using ReadableStream. This was caused by op_http_request_next op that was never woken after response was fully written. This commit adds waker field to DenoService which is called after response is finished.
2021-06-10refactor: merge deno_file crate into deno_web (#10914)Bartek Iwańczuk
This refactor makes it so there's one less crate to publish on each release.
2021-06-09fix(runtime): early binding to dispatchEvent in workers (#10904)Kitson Kelly
2021-06-08chore: release crates (#10896)Bartek Iwańczuk
2021-06-07chore(tools): Fix stdout buffer of launched process getting full causing ↵David Sherret
tools/lint.js to hang on Windows (#10888) Also fix Windows only clippy issues.
2021-06-07refactor(runtime): move performance API to timers extension (#10818)Satya Rohith
Co-authored-by: Luca Casonato <hello@lcas.dev>
2021-06-06feat(fetch): implement abort (#10863)Luca Casonato
This commit introduces fetch aborting via an AbortSignal.
2021-06-06feat(extensions/crypto): implement subtle.digest (#10796)Casper Beyer
Co-authored-by: Yacine Hmito yacinehmito@users.noreply.github.com
2021-06-06feat(web): Implement TextDecoderStream and TextEncoderStream (#10842)Andreu Botella
2021-06-05refactor(web): use encoding_rs for text encoding (#10844)Luca Casonato
This commit removes all JS based text encoding / text decoding. Instead encoding now happens in Rust via encoding_rs (already in tree). This implementation retains stream support, but adds the last missing encodings. We are incredibly close to 100% WPT on text encoding now. This should reduce our baseline heap by quite a bit.
2021-06-05fix(crypto): change Crypto to interface (#10853)Leo K
Co-authored-by: Luca Casonato <hello@lcas.dev>
2021-06-05fix(streams): expose ReadableByteStreamController & ↵Leo K
TransformStreamDefaultController (#10855)
2021-06-05refactor(crypto): validate max random bytes in Rust (#10857)Leo K
2021-06-05webutil: replace cloneValue impl with serialize/deserialize (#10215)Elad Keyshawn
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-06-04fix: hang in op_http_next_request (#10836)Bartek Iwańczuk
This commit adds "CancelHandle" to "ConnResource" and changes "op_http_next_request" to await for the cancel signal. In turn when async iterating over "Deno.HttpConn" the iterator breaks upon closing of the resource.
2021-06-03feat(cli): support URL overload for `Deno.chdir` (#10793)Casper Beyer
2021-06-03feat(runtime): support URL overloads for `Deno.symlink` and ↵Casper Beyer
`Deno.symlinkSync` (#10664)
2021-06-03feat(runtime): support URL overloads for Deno.rename/Deno.renameSync (#10512)Casper Beyer
2021-06-01feat: add FsWatcher interface (#10798)Yoshiya Hinosawa
2021-05-31Merge v1.10.3 into main (#10801)Bert Belder
2021-05-31v1.10.3Bert Belder
2021-05-31feat(cli): support URL overloads for `Deno.utime` and `Deno.utimeSync` (#10792)Casper Beyer
2021-05-31chore: upgrade Tokio to 1.6.1 (#10782)Yusuke Tanaka
2021-05-31chore: release web extension@0.38.0 (#10773)Luca Casonato
2021-05-31fix(runtime/http): fix empty blob response (#10689)Yoshiya Hinosawa
2021-05-31fix(runtime/http): expose nextRequest() errors in respondWith() (#10384)Nayeem Rahman
2021-05-31chore: update deno_lint binary used in CI to v0.5.0 (#10652)Yusuke Tanaka
2021-05-29chore: upgrade Tokio to 1.6.1 (#10782)Yusuke Tanaka
2021-05-29chore: release web extension@0.38.0 (#10773)Luca Casonato
2021-05-28feat(cli): upgrade to TypeScript 4.3 (#9960)Kitson Kelly
2021-05-27feat(cli): add origin data dir to deno info (#10589)crowlKats
Co-authored-by: Nayeem Rahman <nayeemrmn99@gmail.com> Co-authored-by: Luca Casonato <lucacasonato@yahoo.com> Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2021-05-26refactor: move JsRuntimeInspector to deno_core (#10763)Bartek Iwańczuk
This commit moves implementation of "JsRuntimeInspector" to "deno_core" crate. To achieve that following changes were made: * "Worker" and "WebWorker" no longer own instance of "JsRuntimeInspector", instead it is now owned by "deno_core::JsRuntime". * Consequently polling of inspector is no longer done in "Worker"/"WebWorker", instead it's done in "deno_core::JsRuntime::poll_event_loop". * "deno_core::JsRuntime::poll_event_loop" and "deno_core::JsRuntime::run_event_loop", now accept "wait_for_inspector" boolean that tells if event loop should still be "pending" if there are active inspector sessions - this change fixes the problem that inspector disconnects from the frontend and process exits once the code has stopped executing.
2021-05-26refactor: Rewrite Inspector implementation (#10725)Bartek Iwańczuk
This commit refactors implementation of inspector. The intention is to be able to move inspector implementation to "deno_core". Following things were done to make that possible: * "runtime/inspector.rs" was split into "runtime/inspector/mod.rs" and "runtime/inspector/server.rs", separating inspector implementation from Websocket server implementation. * "DenoInspector" was renamed to "JsRuntimeInspector" and reference to "server" was removed from the structure, making it independent of Websocket server used to connect to Chrome Devtools. * "WebsocketSession" was renamed to "InspectorSession" and rewritten in such a way that it's not tied to Websockets anymore; instead it accepts a pair of "proxy" channel ends that allow to integrate the session with different "transports". * "InspectorSession" was renamed to "LocalInspectorSession" to better indicate that it's an "in-memory" session and doesn't require Websocket server. It was also rewritten in such a way that it uses "InspectorSession" from previous point instead of reimplementing "v8::inspector::ChannelImpl" trait; this is done by using the "proxy" channels to communicate with the V8 session. Consequently "LocalInspectorSession" is now a frontend to "InspectorSession". This introduces a small inconvenience that awaiting responses for "LocalInspectorSession" requires to concurrently poll worker's event loop. This arises from the fact that "InspectorSession" is now owned by "JsRuntimeInspector", which in turn is owned by "Worker" or "WebWorker". To ease this situation "Worker::with_event_loop" helper method was added, that takes a future and concurrently polls it along with the event loop (using "tokio::select!" macro inside a loop).