summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-12-28fix(node): Add op_node_unstable_os_uptime to allow for node interop (#17208)Kamil Ogórek
2022-12-28fix(ext/net): Remove unstable check from op_node_unstable_net_listen_udp ↵Kamil Ogórek
(#17207) The whole point of creating this alternative operation was to allow usage in node, without `--unstable` flag. Introduced and I believe missed in https://github.com/denoland/deno/pull/16520/
2022-12-28feat(unstable): Add Deno.Conn.ref()/unref() (#17170)Bartek Iwańczuk
This commit adds "Deno.Conn.ref()" and "Deno.Conn.unref()" methods. These methods can be used to make connection block or not block the event loop from finishing. Refing/unrefing only influences "read" operations - ie. scheduling writes to a connection _do_ keep event loop alive. Required for https://github.com/denoland/deno/issues/16710
2022-12-27feat(unstable): Add "Deno.osUptime()" API (#17179)Kamil Ogórek
This PR adds support for `Deno.osUptime` which reports number of seconds since os was booted. It will allow us to be compatible with Node's `os.uptime` - https://nodejs.org/api/os.html#osuptime Partially based on https://docs.rs/uptime_lib/latest/src/uptime_lib/lib.rs.html
2022-12-26chore(core): Make `OpCtx` instances be realm-specific (#17174)Andreu Botella
2022-12-26chore(npm): fix typo in local.rs (#17186)Ikko Ashimine
2022-12-23fix(core): run macrotasks and next ticks after polling dynamic imports (#17173)Bartek Iwańczuk
This commit fixes handling of rejected promises in dynamic imports evaluation. Previously we were running callbacks for next ticks and macrotasks _before_ polling dynamic imports and checked for unhandled rejections immediately after. This is wrong, as `unhandledrejection` event is dispatched and its callbacks are run as macrotasks. This commit changes order of actions performed by the event loop to following: - poll async ops - poll dynamic imports - run next tick callbacks - run macrotask callbacks - check for unhandled promise rejections
2022-12-23fix(ext/fetch): Guard against invalid URL before its used by reqwest (#17164)Kamil Ogórek
2022-12-22fix: add missing verb in description (#17163)Geert-Jan Zwiers
2022-12-22fix: rejected dynamic import should retain error context (#17160)Bartek Iwańczuk
Found this while debugging https://github.com/denoland/deno/issues/16280. Before: ``` TypeError: Could not resolve 'file:///Users/ib/dev/test_rollup/mocha/rollup.config.js' from 'file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/rollup/3.7.3/dist/shared/loadConfigFile.js'. at async getConfigFileExport (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/rollup/3.7.3/dist/shared/loadConfigFile.js:432:17) at async Object.loadConfigFile (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/rollup/3.7.3/dist/shared/loadConfigFile.js:391:59) at async getConfigs (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/rollup/3.7.3/dist/bin/rollup:1679:39) at async runRollup (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/rollup/3.7.3/dist/bin/rollup:1656:43) ``` After: ``` TypeError: Could not resolve 'file:///Users/ib/dev/test_rollup/mocha/rollup.config.js' from 'file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/rollup/3.7.3/dist/shared/loadConfigFile.js'. Caused by: Reading /Users/ib/dev/test_rollup/mocha/package.json is not allowed at async getConfigFileExport (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/rollup/3.7.3/dist/shared/loadConfigFile.js:432:17) at async Object.loadConfigFile (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/rollup/3.7.3/dist/shared/loadConfigFile.js:391:59) at async getConfigs (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/rollup/3.7.3/dist/bin/rollup:1679:39) at async runRollup (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/rollup/3.7.3/dist/bin/rollup:1656:43) ```
2022-12-22fix(ext): Add checks for owning properties in for-in loops (#17139)Kenta Moriuchi
In the for-in loops, there were a few places where we forgot to check if objects owned some properties, so I added them.
2022-12-21fix(permissions): add information about import() API request (#17149)Bartek Iwańczuk
This commit changes permission prompt to show that "import()" API is requesting permissions. Given "dynamic_import.js" like so: ``` import("https://deno.land/std@0.170.0/version.ts"); ``` Before: ``` deno run dynamic_import.js ⚠️ ┌ Deno requests net access to "deno.land". ├ Run again with --allow-net to bypass this prompt. └ Allow? [y/n] (y = yes, allow; n = no, deny) > ``` After: ``` deno run dynamic_import.js ⚠️ ┌ Deno requests net access to "deno.land". ├ Requested by `import()` API ├ Run again with --allow-net to bypass this prompt. └ Allow? [y/n] (y = yes, allow; n = no, deny) > ```
2022-12-21fix(core): Do not print errors prop for non-AggregateError errors (#17123)Kamil Ogórek
This commit fixes formatting of JSError with "errors" property. Before this commit all instances of "Error" were treated as if they were "AggregateError" if they had "errors" property. After this commit only actual instances of "AggregateError" are formatted in such a way, while instances of "Error" that have "errors" property are formatted without showing details of "errors".
2022-12-20fix(lsp/format): language formatter used should be based on language id (#17148)David Sherret
Closes #11897
2022-12-20fix(core): Have custom errors be created in the right realm (#17050)Andreu Botella
Although PR #16366 did not fully revert `deno_core`'s support for realms, since `JsRealm` still existed after that, it did remove the `ContextState` struct, originally introduced in #14734. This change made `js_build_custom_error_cb`, among other properties, a per-runtime callback, rather than per-realm, which cause a bug where errors thrown from an op would always be constructed in the main realm, rather than in the current one. This change adds back `ContextState` to fix this bug, adds back the `known_realms` field of `JsRuntimeState` (needed to be able to drop the callback when snapshotting), and also relands #14750, which adds the `js_realm_sync_ops` test for this bug that was removed in #16366.
2022-12-20chore: update node compat layer to std@0.170.0 (#17147)Bartek Iwańczuk
Fixed a performance regression for express server
2022-12-20fix: ignore local lockfile for deno install and uninstall (#17145)David Sherret
Closes #17116
2022-12-20fix(npm): resolve npm specifiers when root redirected (#17144)David Sherret
Closes #17136
2022-12-20chore: bump deno_fetch and deno_http versions (#17124)Ryan Dahl
https://github.com/denoland/deno/pull/17081 https://github.com/denoland/deno/pull/17126
2022-12-20fix(ext/http): close stream on resp body error (#17126)Luca Casonato
Previously, errored streaming response bodies did not cause the HTTP stream to be aborted. It instead caused the stream to be closed gracefully, which had the result that the client could not detect the difference between a successful response and an errored response. This commit fixes the issue by aborting the stream on error.
2022-12-20chore: Update dlint (#17031)Kenta Moriuchi
Introduces `SafeSetIterator` and `SafeMapIterator` to primordials
2022-12-19chore(test): report correct cwd when running tests via itest macro (#17132)Kamil Ogórek
2022-12-19fix(cli): allow for specifying `noErrorTruncation` compiler option (#17127)Kamil Ogórek
Fixes https://github.com/denoland/deno/issues/16568
2022-12-19perf(lsp): concurrent reads and exclusive writes (#17135)David Sherret
2022-12-19fix(lsp/testing): fallback name for non-analyzable tests in collector (#17120)Leo Kettmeir
Closes #17054. The fallback is `Test lineNumber:columnNumber`
2022-12-19fix: display URL in invalid URL error (#17128)Leo Kettmeir
2022-12-19fix: hide progress bars when showing permission prompt (#17130)David Sherret
Also adds download bytes progress when downloading remote specifiers. Closes #16860
2022-12-19chore(test_util): use pty2 instead of pty (#17131)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/484 Removes dependency on winapi 0.2.x versions.
2022-12-19fix(cli): do not clear screen for non-TTY environments in watch mode (#17129)Kamil Ogórek
2022-12-19refactor(progress bars): global control for drawing (#17091)David Sherret
This PR adds the concept of a global `DrawThread`, which can receive multiple renderers to draw information on the screen (note: the underlying thread is released back to tokio when it's not rendering). It also separates the concept of progress bars from the existing "draw thread". This makes it trivial for us to do stuff like show permission prompts and progress bars at the same time in the future. The reason this is global is because the process' tty stderr is also a global concept.
2022-12-19fix(npm): conditional exports with --node-modules-dir (#17111)Bartek Iwańczuk
This commit fixes conditional exports in `require()` implementation if `--node-modules-dir` flag is used.
2022-12-19test(ext/fetch): fix test in release mode (#17125)Luca Casonato
2022-12-19fix(ext/fetch): handle errors in req body stream (#17081)Luca Casonato
Right now an error in a request body stream causes an uncatchable global promise rejection. This PR fixes this to instead propagate the error correctly into the promise returned from `fetch`. It additionally fixes errored readable stream bodies being treated as successfully completed bodies by Rust.
2022-12-19chore(lsp/testing): refactor collectors test (#17104)Leo Kettmeir
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-18refactor(permissions): factor out PermissionPrompter trait, add callbacks ↵Bartek Iwańczuk
(#16975) This commit refactors several things in "runtime/permissions" module: - splits it into "mod.rs" and "prompter.rs" - adds "PermissionPrompter" trait with two implementations: * "TtyPrompter" * "TestPrompter" - adds "before" and "after" prompt callback which can be used to hide progress bar in the CLI (to be done in a follow up) - "permissions_prompt" API returns "PromptResponse" enum, instead of a boolean; this allows to add "allow all"/"deny all" functionality for the prompt
2022-12-17fix(init): update comment style (#17074)Pig Fang
The output of `init` are commands, so this should be treated as a "Shell script". In Shell script, comments must start with `#`, not `//`. (This also makes the commands example easier to be copied to somewhere.)
2022-12-17fix(runtime): `Deno.memoryUsage().rss` should return correct value (#17088)David Sherret
This commit changes implementation of "Deno.memoryUsage()" to return correct value for "rss" field. To do that we implement a specialized function per os to retrieve this information.
2022-12-17chore: update to Rust 1.66.0 (#17078)linbingquan
2022-12-17fix(lint): column number for pretty reporting was off by 1 (#17107)David Sherret
Closes #17086
2022-12-17chore: remove im.json (#17095)Divy Srivastava
`im.json` was added in https://github.com/denoland/deno/commit/435948e47057a5d8f2ffffebf74b9f84e31770f8 cc @bartlomieju
2022-12-17fix(lsp/testing): support not needing to declare first arg function in test ↵Leo Kettmeir
declaration (#17097)
2022-12-17chore(core): Small realm-related fixes (#17044)Andreu Botella
- `JsRuntime::built_from_snapshot` was removed because it was redundant with `JsRuntime::snapshot_options`. - Updates to stale documentation of `JsRuntime::create_realm`. - `JsRuntime::create_realm` now calls `JsRuntime::init_extension_js` unconditionally, since if the runtime was built from a snapshot, `init_extension_js` will be a no-op. - Typo fix in the documentation for `JsRealm`.
2022-12-16fix(repl): doing two history searches exiting with ctrl+c should not exit ↵sigmaSd
repl (#17079) fix https://github.com/denoland/deno/issues/16147
2022-12-16fix(npm): fix require resolution if using --node-modules-dir (#17087)Bartek Iwańczuk
In our `require()` implementation we use a special logic to resolve "base path" when looking for matching packages, however this logic is in contradiction to what needs to happen if there's a local "node_modules" directory used. This commit changes require implementation to be aware if we're running off of global node modules cache or a local one.
2022-12-16fix(install): use a hidden file for the lockfile and config (#17084)David Sherret
Closes #17083
2022-12-16refactor(core): allow to listen for notifications in LocalInspectorSession ↵Bartek Iwańczuk
(#17040)
2022-12-16fix(repl): errors shouldn't terminate repl (#17082)Bartek Iwańczuk
This commit changes REPL to never surface errors coming from code execution, but instead print them as errors to the REPL itself.
2022-12-16 fix(lsp): handle template literal as first arg in test function (#17076)Leo Kettmeir