summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-09-26perf(web): optimize Event constructor (#12231)Aaron O'Mullan
Assign in constructor instead of using class initializers which are currently ~10x slower
2021-09-26perf(webidl/ByteString): 3x faster ASCII check (#12230)Aaron O'Mullan
2021-09-26perf(fetch): optimize InnerBody constructor (#12232)Aaron O'Mullan
Avoid initializers due to overhead
2021-09-26fix(ext/http): include port number in h2 urls (#12181)Ben Noordhuis
2021-09-26perf(fetch/headers): optimize appendHeader (#12234)Aaron O'Mullan
Use a single regex to check for `\0`, `\n`, `\r` instead of 3 `String.includes(...)` calls
2021-09-25perf(ext/fetch): Use the WebIDL conversion to DOMString rather than ↵Luis Malheiro
USVString for Response constructor (#12201)
2021-09-25fix(ext/web): FileReader error messages (#12218)Dan Rose
2021-09-25chore: update wpt (#12206)Andreu Botella
2021-09-25fix(http): panic when responding to a closed conn (#12216)Aaron O'Mullan
Our oneshot receiver in `HyperService::call` would unwrap and panic, the `.await` on the oneshot receiver happens when the sender is dropped. The sender is dropped in `op_http_response` because: 1. We take `ResponseSenderResource` 2. Then get `ConnResource` and early exit on failure (conn already closed) 3. The taken sender then gets dropped in this early exit before any response is sent over the channel Fallbacking to returning a dummy response to hyper seems to be a fine quickfix
2021-09-25fix(ext/http): fortify "is websocket?" check (#12179)Ben Noordhuis
Check for expected headers more rigorously and check that it's a HTTP/1.1 GET request. The logic mirrors what Deno Deploy and the tungstenite crate do. The presence of "Sec-Websocket-Version: 13" is now also enforced. I don't expect that to break anything: conforming clients already send it and tungstenite can't talk to older clients anyway. The new code is more efficient due to heap-allocating less and aligns more closely with the checks in ext/http/01_http.js now.
2021-09-24chore(workers): Test that closing a worker closes any child workers (#12215)Andreu Botella
Before #12156, closing a worker which had children would cause a panic (https://github.com/denoland/deno/issues/11342#issuecomment-918327693). After that PR, closing a worker will also close any child workers.
2021-09-25cleanup(runtime): flatten op_kill's args (#12214)Aaron O'Mullan
2021-09-25refactor: Remove unused code (#12210)Ryan Dahl
2021-09-24chore(runtime): minor comment improvement (#12191)Aaron O'Mullan
2021-09-25fix(ext/webidl): correctly apply [SymbolToStringTag] to interfaces (#11851)李瑞丰
Co-authored-by: Luca Casonato <hello@lcas.dev> Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2021-09-24refactor: Remove op_state parameter (#12202)Ryan Dahl
2021-09-24refactor: Rename ProgramState to ProcState (#12204)Ryan Dahl
Move Arc into struct
2021-09-24docs: fix native http jsdoc examples (#12207)Leo K
2021-09-24fix(cli/permissions): ensure revoked permissions are no longer granted (#12159)Nayeem Rahman
Fixes #12153
2021-09-23refactor: Remove depreated Worker::execute_module (#12203)Ryan Dahl
2021-09-23refactor: clean up watcher tests (#12200)Ryan Dahl
2021-09-23feat(cli/fmt): support more markdown extensions (#12195)Satya Rohith
2021-09-23perf(ext/fetch): skip USVString webidl conv on string constructor (#12168)Aaron O'Mullan
* perf(ext/fetch): skip USVString webidl conv on string constructor * Rename webidl convert to RequestInfo_DOMString To disambiguate and hint that it normalizes to DOMString instead of USVString since DOMString => USVString is handled by `op_url_parse` when calling `new URL(...)`
2021-09-23test(cli): align unit test permissions with runtime test permissions (#12189)Casper Beyer
2021-09-23docs(tools): updates to cutting a release (#12177)Kitson Kelly
2021-09-23perf(ops): optimize permission check (#11800)Aaron O'Mullan
* perf(ops): optimize permission check Removes the overhead of permission check on access granted (should be common case): Delta measured on `perf_now` from `deno_common` bench: - before: `528ns/op - after: `166ns/op` So ~3x faster
2021-09-22ci: enable cache for fastci (#12186)Aaron O'Mullan
2021-09-22refactor: simplify FetchFuture (#12185)Ryan Dahl
No need for static lifetime
2021-09-22quickfix(ci): only run "Build product size info" on main/tag (#12184)Aaron O'Mullan
2021-09-22upgrade serde_v8 and rusty_v8 (#12175)Ryan Dahl
* upgrade serde_v8 and rusty_v8 * rusty_v8 0.30.0 * cycle keys
2021-09-22fix(workers): Don't panic when a worker's parent thread stops running (#12156)Andreu Botella
This panic could happen in the following cases: - A non-fatal error being thrown from a worker, that doesn't terminate the worker's execution, but propagates to the main thread without being handled, and makes the main thread terminate. - A nested worker being alive while its parent worker gets terminated. - A race condition if the main event loop terminates the worker as part of its last task, but the worker doesn't fully terminate before the main event loop stops running. This panic happens because a worker's event loop should have pending ops as long as the worker isn't closed or terminated – but if an event loop finishes running while it has living workers, its associated `WorkerThread` structs will be dropped, closing the channels that keep those ops pending. This change adds a `Drop` implementation to `WorkerThread`, which terminates the worker without waiting for a response. This fixes the panic, and makes it so nested workers are automatically terminated once any of their ancestors is closed or terminated. This change also refactors a worker's termination code into a `WorkerThread::terminate()` method. Closes #11342. Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-09-22ci: experiment mac & windows debug builds (#11884)Aaron O'Mullan
Will be tweaked, but possibly have this "fastci" profile for further optimizations
2021-09-22chore: replace calls to assertThrowsAsync with assertRejects (#12176)Casper Beyer
2021-09-22chore(ext/net): improve embedder friendliness (#12178)Ben Noordhuis
Default to None if UnsafelyIgnoreCertificateErrors is not present in the OpState. Embedders may not have a need for restricting outgoing TLS connections and having them hunt through the source code for the magic incantation that makes the borrow panics go away, is less user friendly.
2021-09-221.14.1Kitson Kelly
2021-09-22chore: bump crate versions for 1.14.1 (#12172)Kitson Kelly
2021-09-21cleanup(ext/fetch): drop redundant webidl converters in fetch() (#12167)Aaron O'Mullan
Since those inputs are passed to `new Request(...)` which applies webidl converters
2021-09-21perf(ext/web): optimize EventTarget (#12166)Aaron O'Mullan
and all its subclasses including `AbortSignal` ... Instead of storing associated data in a global `WeakMap` we store them as private attributes (via a Symbol) on the object instances
2021-09-21perf(web): optimize AbortController (#12165)Aaron O'Mullan
- Use regular class constructor and symbol "private" attributes - Lazy init Set of follower signals
2021-09-21fix(runtime/ops/signal.rs): Add FreeBSD signal definitions (#12084)MikaelUrankar
2021-09-21bench(deno_common): track new Request() (#12164)Aaron O'Mullan
Indirectly tests for: - url parsing - abort signal no-ops - webidl & other overhead
2021-09-21chore: bump deno_net (#12157)Satya Rohith
2021-09-20chore(tests): windows pty tests (#12091)David Sherret
2021-09-20test(ext/ffi): add tests for different parameter and return types (#12158)Elias Sjögreen
2021-09-20fix(config-schema): correct default value of "lib" (#12145)Eyal Shalev
Changed it from `"deno.window"` to `["deno.window"]`
2021-09-20refactor(ext/net): make op_connect & op_connect_tls public (#12150)Satya Rohith
2021-09-19fix(cli): move Deno.flock and Deno.funlock to unstable types (#12138)Casper Beyer
2021-09-18refactor(cli): don't generate a module for side loading tests (#12129)Casper Beyer
2021-09-18fix(cli/fmt_errors): Abbreviate long data URLs in stack traces (#12127)Nayeem Rahman
Co-authored-by: Mike White <mike.white@auctane.com>
2021-09-18fix(core): prevent multiple main module loading (#12128)Bartek Iwańczuk
This commit fixes a problem where loading and executing multiple modules leads to all of the having "import.meta.main" set to true. Following Rust APIs were deprecated: - deno_core::JsRuntime::load_module - deno_runtime::Worker::execute_module - deno_runtime::WebWorker::execute_module Following Rust APIs were added: - deno_core::JsRuntime::load_main_module - deno_core::JsRuntime::load_side_module - deno_runtime::Worker::execute_main_module - deno_runtime::Worker::execute_side_module - deno_runtime::WebWorker::execute_main_module Trying to load multiple "main" modules into the runtime now results in an error. If user needs to load additional "non-main" modules they should use APIs for "side" module.