summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-10-07fix(ext/fetch): support empty formdata (#16165)Marcos Casagrande
This PR adds support for empty `FormData` parsing in `Response`/`Request` ```js new Response(new FormData()).formData() ``` ref: https://github.com/web-platform-tests/wpt/issues/28607
2022-10-07perf(napi): optimize primitive napi functions (#16163)Divy Srivastava
This optimization applies on `napi_get_undefined`, `napi_get_null` & `napi_get_boolean`. ``` # main benchmark time (avg) (min … max) p75 p99 p995 ---------------------------------------------------------- ----------------------------- warmup 482.55 ps/iter (462.5 ps … 15.67 ns) 475 ps 525 ps 829.1 ps napi_get_undefined 25.07 ns/iter (24.03 ns … 36.87 ns) 25.37 ns 27.09 ns 34.85 ns ``` ``` # This patch benchmark time (avg) (min … max) p75 p99 p995 ---------------------------------------------------------- ----------------------------- warmup 484.78 ps/iter (462.5 ps … 14.4 ns) 475 ps 554.1 ps 583.3 ps napi_get_undefined 15.52 ns/iter (15.35 ns … 22.14 ns) 15.41 ns 17.18 ns 20.02 ns ```
2022-10-07chore(napi): Add README explainer for cli/napi_sym and cli/napi (#16187)Divy Srivastava
2022-10-07fix(ext/ffi): Fix usize and isize FFI callback parameters missing match arm ↵Aapo Alasuutari
(#16172) Mea culpa. Back when I re-introduced parameter and return value types to FFI callbacks I failed to properly account for the change in match arm logic. As a result, usize and isize parameters in FFI callbacks currently enter the branch meant for void only. This PR changes the match arms to all be explicit, making sure that void is the only arm marked unreachable and that it stays that way.
2022-10-07chore: upgrade rusty_v8 to 0.52.0 (#16183)Bartek Iwańczuk
2022-10-07fix(napi): move napi symbols file (#16179)Colin Ihrig
The current location was causing failures during v1.26.1 publication. <!-- Before submitting a PR, please read http://deno.land/manual/contributing 1. Give the PR a descriptive title. Examples of good title: - fix(std/http): Fix race condition in server - docs(console): Update docstrings - feat(doc): Handle nested reexports Examples of bad title: - fix #7123 - update docs - fix bugs 2. Ensure there is a related issue and it is referenced in the PR text. 3. Ensure there are tests that cover the changes. 4. Ensure `cargo test` passes. 5. Ensure `./tools/format.js` passes without changing files. 6. Ensure `./tools/lint.js` passes. -->
2022-10-07refactor(napi): simplify `napi_value` interface (#16170)Divy Srivastava
2022-10-06chore: forward v1.26.1 release commit to main (#16178)denobot
This is the release commit being forwarded back to main for 1.26.1 Please ensure: - [x] Everything looks ok in the PR - [x] The release has been published To make edits to this PR: ```shell git fetch upstream forward_v1.26.1 && git checkout -b forward_v1.26.1 upstream/forward_v1.26.1 ``` Don't need this PR? Close it. cc @cjihrig Co-authored-by: cjihrig <cjihrig@users.noreply.github.com>
2022-10-06fix(build): don't export all symbols to dynamic symbol table (#16171)Divy Srivastava
Currently, we use `-rdynamic` for exporting Node API symbols to the symbol table. `-rdynamic` will export *all* symbols, that means previously unused functions will not be optimized away introducing a lot of binary bloat. This patch uses `-exported_symbol` and `--export-dynamic-symbol` link flags (not as universal as `-rdynamic`) to only mark Node API symbols to be put in the dynamic symbol table.
2022-10-05fix(node): add dns/promises and stream/consumers (#16169)David Sherret
2022-10-05refactor(ext/fetch): simplify parseContentDisposition (#16162)Marcos Casagrande
Replaced `forEach`, `map`, `filter`, `map` with a single `for` loop
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-10-05fix(ext/cache): prevent cache insert if body is not fully written (#16138)Marcos Casagrande
2022-10-05fix(ext/flash): Avoid sending Content-Length when status code is 204 (#15901)ayame113
Currently Content-Length is sent when the status code is 204. However, according to the spec, this should not be sent. Modify the if statement below to prevent the Content-Length from being sent.
2022-10-04refactor: remove old Node compat code (#16142)Bartek Iwańczuk
This code was introduced in 808f797633ba82c0e9198481ddd742284a03cb9c and was needed for "compat mode". Since "compat mode" was removed in v1.26, this code is no longer needed.
2022-10-04perf(ext/fetch): consume body using ops (#16038)Marcos Casagrande
This commit adds a fast path to `Request` and `Response` that make consuming request bodies much faster when using `Body#text`, `Body#arrayBuffer`, and `Body#blob`, if the body is a FastStream. Because the response bodies for `fetch` are FastStream, this speeds up consuming `fetch` response bodies significantly.
2022-10-04chore: remove 'fix_exotic_specifier' test (#16143)Bartek Iwańczuk
It's a test that's been flaky for a week, and after offline discussion, we're no longer sure what it's testing.
2022-10-04fix(ext/crypto): interoperable import/export (#16153)Filip Skokan
This PR updates RSA key import/export to a state which is interoperable with other implementations. For RSA the only OID in and out is `rsaEncryption`. For EC the only OID in and out is `id-ecpublickey` (fixed in #16152). see https://github.com/w3c/webcrypto/issues/307#issuecomment-995813032 see https://github.com/w3c/webcrypto/issues/307 see https://github.com/w3c/webcrypto/pull/305 see https://github.com/nodejs/node/pull/42816
2022-10-04fix(ext/crypto): ecdh spki key import/export roundtrip (#16152)Filip Skokan
2022-10-04fix(ext/crypto): ECDH and X25519 non byte length and 0 length fixes (#16146)Filip Skokan
2022-10-03fix(ext/crypto): deriveBits for ECDH not taking length into account (#16128)Aurélien Bertron
Fixes #16047
2022-10-03fix(ext/crypto): curve25519 import export (#16140)Filip Skokan
2022-10-03feat(unstable): add support for npm specifier cli arguments for 'deno cache' ↵Bartek Iwańczuk
(#16141) This commit adds support for npm specifier in "deno cache" subcommand. ``` $ deno cache --unstable npm:vite npm:chalk https://deno.land/std/http/file_server.ts ``` Besides downloading requested npm package(s), it will also download necessary code from "std/node/".
2022-10-03fix(npm): better error is version is specified after subpath (#16131)Bartek Iwańczuk
2022-10-03fix(npm): panic on invalid package name (#16123)Bartek Iwańczuk
2022-10-03docs(fs): add default info of `OpenOptions` (#16104)Hirotaka Tagawa / wafuwafu13
2022-10-03refactor(ext/fetch): avoid extra headers copy in .clone (#16130)Marcos Casagrande
2022-10-03chore(serde_v8): Use SeqAccess in MapObjectAccess to avoid intermediate ↵Jakub Łabor
allocation (#16137) Existing implementation builds an intermediate vector of object keys when deserializing using `MapObjectAccess`. This logic is already handled by `SeqAccess` which can be used directly by `MapObjectAccess`.
2022-10-03chore(ext/cache): make helper functions public (#16117)Satya Rohith
2022-10-03fix(ext/cache): close resource on error (#16129)Marcos Casagrande
2022-10-03fix(ext/crypto): fix importKey error when leading zeroes (#16009)李瑞丰
Co-authored-by: Jason <m.jason.liu@outlook.com>
2022-10-02fix(serde_v8): serialize objects with numeric keys correctly (#15946)Darshan Sen
Signed-off-by: Darshan Sen <raisinten@gmail.com>
2022-10-02fix(serde_v8): Implement MapAccess for StructAccess (#15962)Jakub Łabor
`StructAccess` implements` serde::de::SeqAccess` instead of `serde::de::MapAccess` thus interpreting structs as sequences.
2022-10-02fix(ext/cache): acquire reader lock before async op (#16126)Marcos Casagrande
2022-10-01fix(npm): handle json files in require (#16125)Bartek Iwańczuk
2022-10-01lsp: use deno:/asset instead of deno:asset (#16023)sigmaSd
Make offering "virtual documents" via the lsp easier to parse. `deno:` can be ambiguous to parse by editors (can conflict with linux paths) Neovim recently landed a PR https://github.com/neovim/neovim/pull/19797 that allows it to parse `scheme:/` this PR should make deno lsp work correctly in neovim
2022-10-01perf: node cjs & esm analysis cache (#16097)David Sherret
This commit adds a cache for CJS and ESM analysis that is backed by an SQLite file. The connection to the DB is lazily created on first use, so shouldn't have impact on the startup time. Benched with running Vite Deno v1.26: ``` $ deno task dev Warning deno task is unstable and may drastically change in the future Task dev deno run -A --unstable --node-modules-dir npm:vite VITE v3.1.4 ready in 961 ms ➜ Local: http://localhost:5173/ ➜ Network: use --host to expose ``` This branch: ``` ../deno/target/release/deno task dev Warning deno task is unstable and may drastically change in the future Task dev deno run -A --unstable --node-modules-dir npm:vite VITE v3.1.4 ready in 330 ms ➜ Local: http://localhost:5173/ ➜ Network: use --host to expose ``` Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-09-30test(cli): add test cases (#16091)skanehira
Fixes: https://github.com/denoland/deno/issues/16090
2022-09-30fix(ext/crypto): use correct handle for public keys (#16099)Colin Ihrig
When storing public and private keys in the key store, use a different handle for each key so that they can be looked up in the future. Refs: https://github.com/denoland/deno/pull/14119 Refs: https://github.com/denoland/deno_std/issues/2631
2022-09-30refactor(ext/http): remove op_http_read (#16096)Luca Casonato
We can use Resource::read_return & op_read instead. This allows HTTP request bodies to participate in FastStream. To make this work, `readableStreamForRid` required a change to allow non auto-closing resources to be handled. This required some minor changes in our FastStream paths in ext/http and ext/flash.
2022-09-30fix(runtime): no FastStream for unrefable streams (#16095)Luca Casonato
2022-09-29fix(ext/fetch): `Body#bodyUsed` for static body (#16080)Marcos Casagrande
This fixes a bug where `Body#bodyUsed` incorrectly returns `false` for a body that has actually already been consumed, after `Body#body` is called.
2022-09-29refactor(cli): use shared sys kind parser in flags.rs (#16087)Yoshiya Hinosawa
2022-09-29fix: move Deno.hostname() from denoNsUnstable to denoNs (#16086)TrickyPi
2022-09-29refactor(ext/cache): remove extra headers iteration in cache.put (#16078)Agustin Casagrande
2022-09-29chore(ext/flash): Enabling disabled windows tests (#16081)ayame113
2022-09-291.26.0denobot
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-09-28chore: improve JSDoc for built-in APIs (#16048)Kitson Kelly
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-09-28fix(ext/flash): reregister socket on partial read on Windows (#16076)Divy Srivastava
2022-09-28chore: fix flaky integration::lint::compact (#16075)David Sherret