Milly
fa27350977
fix(ext/web): ReadableStream.from()
ignores null Symbol.asyncIterator
( #23910 )
...
If `@@asyncIterator` is `null` or `undefined`, it should ignores and
fallback to `@@iterator`.
Tests have been merged into WPT.
https://github.com/web-platform-tests/wpt/pull/46374
The proposal of `ReadableStream.from` uses TC39 [GetIterator][] and
[GetMethod][] within it.
GetMethod treats null as undefined.
So if `@@asyncIterator` is `null` it should be ignored and fallback to
`@@iterator`.
[GetIterator]: https://tc39.es/ecma262/#sec-getiterator
[GetMethod]: https://tc39.es/ecma262/#sec-getmethod
```bash
> deno eval "ReadableStream.from({ [Symbol.asyncIterator]: null, [Symbol.iterator]: () => ({ next: () => ({ done: true }) }) }).pipeTo(new WritableStream())"
error: Uncaught (in promise) TypeError: obj[SymbolAsyncIterator] is not a function
ReadableStream.from({ [Symbol.asyncIterator]: null, [Symbol.iterator]: () => ({ next: () => ({ done: true }) }) }).pipeTo(new WritableStream())
^
at getIterator (ext:deno_web/06_streams.js:5105:38)
at Function.from (ext:deno_web/06_streams.js:5207:22)
at file:///D:/work/js/deno/tests/wpt/suite/$deno$eval:1:16
```
---------
Co-authored-by: Asher Gomez <ashersaupingomez@gmail.com>
2024-05-23 13:55:07 +02:00
Luca Casonato
971f09abe4
fix(runtime): use more null proto objects ( #23921 )
...
This is a primordialization effort to improve resistance against users
tampering with the global `Object` prototype.
---------
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-05-23 00:03:35 +02:00
Bartek Iwańczuk
fabd9a214b
chore: forward v1.43.6 release commit to main ( #23936 )
...
Bumped versions for 1.43.6
Co-authored-by: denobot <33910674+denobot@users.noreply.github.com>
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2024-05-22 01:35:04 +00:00
Matt Mastracci
625d09937a
fix(ext/web): fix potential leak of unread buffers ( #23923 )
...
Because the buffers are `MaybeUninit<V8Slice<u8>`, and the owner of the
`BoundedBufferChannel` is not obligated to read each and every bit of
data, we may find that some buffers were not automatically dropped if
unread by the time the `BoundedBufferChannelInner` is dropped.
Possible repro:
```
Deno.serve(() => new Response(new ReadableStream({ start(controller) { controller.enqueue(new Uint8Array(100_000_000)) } })));
```
```bash
while true; do curl localhost:8000 | dd count=1; done
```
2024-05-21 17:45:33 +00:00
Bartek Iwańczuk
2b560be83f
chore: forward v1.43.4 commit to main ( #23861 )
...
Co-authored-by: denobot <33910674+denobot@users.noreply.github.com>
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2024-05-17 03:57:53 +02:00
Mattias Buelens
9338770a70
fix(ext/web): update ongoing promise in async iterator return()
method ( #23642 )
...
See https://github.com/whatwg/webidl/pull/1387 for context.
There are new WPT tests for this change in
https://github.com/web-platform-tests/wpt/pull/44456 . They pass on my
local machine, but I'm not sure if I should update the WPT submodule for
all of Deno as part of this PR?
Fixes #22389
---------
Co-authored-by: Asher Gomez <ashersaupingomez@gmail.
2024-05-13 23:34:25 +00:00
Leo Kettmeir
df879f9f74
chore: cleanup unused dependencies ( #23787 )
2024-05-13 14:23:39 -07:00
denobot
dac49a116e
chore: forward v1.43.3 release commit to main ( #23771 )
...
Co-authored-by: David Sherret <dsherret@gmail.com>
2024-05-10 19:20:34 -04:00
denobot
e6dc4dfbff
chore: forward v1.43.2 release commit to main ( #23749 )
...
**THIS PR HAS GIT CONFLICTS THAT MUST BE RESOLVED**
This is the release commit being forwarded back to main for 1.43.2
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.43.2 && git checkout -b forward_v1.43.2 upstream/forward_v1.43.2
```
Don't need this PR? Close it.
cc @nathanwhit
Co-authored-by: nathanwhit <nathanwhit@users.noreply.github.com>
Co-authored-by: Nathan Whitaker <nathan@deno.com>
2024-05-09 00:45:01 +00:00
David Sherret
0e9b7f64f7
chore: speed up test_multi_task test on Windows ( #23737 )
...
Previously it was around 30s to run: 1024*2*15 = 30720ms
2024-05-08 15:46:12 +00:00
Bartek Iwańczuk
25fcfe5d79
fix: DOMException doesn't throw on __callSitesEvals ( #23729 )
2024-05-07 21:02:29 +00:00
Jo Franchetti
a69b4646a0
docs: update categories to match new planned sitemap ( #23677 )
...
Updating categories for new sitemap as documented here:
https://lucid.app/lucidspark/744b0498-a133-494d-981c-76059dd18885/edit?view_items=jpvBwFdYlNdB&invitationId=inv_50c83415-2aa5-423f-b438-ea156695c08b
2024-05-05 18:56:55 -07:00
denobot
5ff881a073
1.43.0 ( #23629 )
...
Bumped versions for 1.43.0
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-05-01 12:16:39 +05:30
Satya Rohith
455cf1743f
fix(ext/node): add support for MessagePort.removeListener/off ( #23598 )
...
Closes https://github.com/denoland/deno/issues/23564
2024-04-29 08:53:54 +00:00
Matt Mastracci
084eafe508
perf(ext/http): recover memory for serve and optimize AbortController ( #23559 )
...
Max rps without a signal is unchanged, however we can drastically reduce
memory usage by not creating the signal until needed, and we can
optimize the rps in the case where the signal is created.
With a quick memory benchmark, it looks like this helps pretty
drastically with # of GCs when benchmarking w/wrk:
- 1.42.4: 1763
- canary: 1093
- this patch: 874
This branch:
```
Running 10s test @ http://localhost:8080/
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 87.33us 439.95us 20.68ms 99.67%
Req/Sec 66.70k 6.39k 74.11k 83.66%
1340255 requests in 10.10s, 191.73MB read
Requests/sec: 132696.90
Transfer/sec: 18.98MB
cpu: Apple M2 Pro
runtime: deno 1.43.0 (aarch64-apple-darwin)
file:///Users/matt/Documents/scripts/bench_request.js
benchmark time (avg) iter/s (min … max) p75 p99 p995
----------------------------------------------------------------------------------------------- -----------------------------
newRequest 986.5 ns/iter 1,013,682.6 (878.2 ns … 1.18 µs) 1.01 µs 1.18 µs 1.18 µs
newAbortController 18 ns/iter 55,541,104.1 (15.6 ns … 42.62 ns) 17.71 ns 25.05 ns 26.27 ns
newAbortControllerSignal 18.66 ns/iter 53,578,966.7 (16.49 ns … 32.16 ns) 18.71 ns 25.67 ns 26.39 ns
newAbortControllerSignalOnAbort 106.49 ns/iter 9,390,164.9 (97.87 ns … 120.61 ns) 108.6 ns 114.24 ns 115.89 ns
newAbortControllerSignalAddEventListener 86.92 ns/iter 11,504,880.2 (81.88 ns … 103.15 ns) 90 ns 98.28 ns 99.55 ns
newAbortControllerSignalOnAbortNoListener 3.01 µs/iter 331,964.4 (2.97 µs … 3.1 µs) 3.06 µs 3.1 µs 3.1 µs
newAbortControllerSignalOnAbortAbort 3.26 µs/iter 306,662.6 (3.22 µs … 3.36 µs) 3.27 µs 3.36 µs 3.36 µs
```
Latest canary:
```
Running 10s test @ http://localhost:8080/
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 72.86us 71.23us 4.47ms 99.05%
Req/Sec 64.66k 5.54k 72.48k 82.18%
1299015 requests in 10.10s, 185.83MB read
Requests/sec: 128616.02
Transfer/sec: 18.40MB
cpu: Apple M2 Pro
runtime: deno 1.43.0+bc4aa5f (aarch64-apple-darwin)
file:///Users/matt/Documents/scripts/bench_request.js
benchmark time (avg) iter/s (min … max) p75 p99 p995
----------------------------------------------------------------------------------------------- -----------------------------
newRequest 1.25 µs/iter 800,005.2 (1.01 µs … 4.18 µs) 1.16 µs 4.18 µs 4.18 µs
newAbortController 18.56 ns/iter 53,868,204.3 (16.04 ns … 38.73 ns) 18.38 ns 26.1 ns 26.63 ns
newAbortControllerSignal 18.72 ns/iter 53,430,746.1 (16.13 ns … 36.71 ns) 18.71 ns 26.19 ns 26.98 ns
newAbortControllerSignalOnAbort 193.91 ns/iter 5,156,992.4 (184.25 ns … 211.41 ns) 194.96 ns 207.87 ns 209.4 ns
newAbortControllerSignalAddEventListener 171.45 ns/iter 5,832,569.2 (153 ns … 182.03 ns) 176.17 ns 180.75 ns 181.05 ns
newAbortControllerSignalOnAbortNoListener 3.07 µs/iter 326,263.3 (2.98 µs … 3.17 µs) 3.08 µs 3.17 µs 3.17 µs
newAbortControllerSignalOnAbortAbort 3.32 µs/iter 301,344.6 (3.29 µs … 3.4 µs) 3.33 µs 3.4 µs 3.4 µs
```
2024-04-25 14:52:24 -04:00
denobot
8321106b78
1.43.0 ( #23549 )
...
Bumped versions for 1.43.0
Co-authored-by: littledivy <littledivy@users.noreply.github.com>
2024-04-25 15:14:26 +05:30
Kenta Moriuchi
aff7a64544
fix: Float16Array support ( #23512 )
...
Ref #23490 , #23277
* remove `--js-float16array` flag (This flag has already added to
deno_core)
* add some `Float16Array` support
2024-04-23 22:54:19 +02:00
Bartek Iwańczuk
b0d3b20f23
feat: enable Float16Array support ( #23490 )
...
Closes https://github.com/denoland/deno/issues/23450
2024-04-23 15:18:27 +00:00
Bartek Iwańczuk
760d64bc6b
fix(ext/node): worker_threads.receiveMessageOnPort doesn't panic ( #23406 )
...
Follow up to https://github.com/denoland/deno/pull/23386 .
Instead of using async `recv()` method, it was replaced
with a poll based function that doesn't hold onto
RefCell borrow across await point.
Fixes https://github.com/denoland/deno/issues/23362
2024-04-16 18:41:03 +00:00
Bartek Iwańczuk
0a7f46b8c2
chore: forward v1.42.4 commit to main
( #23394 )
...
Co-authored-by: denobot <33910674+denobot@users.noreply.github.com>
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2024-04-16 02:41:59 +00:00
Bartek Iwańczuk
0b8d7d1d4b
fix(ext/node): panic on 'worker_threads.receiveMessageOnPort' ( #23386 )
...
Closes https://github.com/denoland/deno/issues/23362
Previously we were panicking if there was a pending read on a
port and `receiveMessageOnPort` was called. This is now fixed
by cancelling the pending read, trying to read a message and
resuming reading in a loop.
2024-04-16 01:06:39 +02:00
denobot
c92f118652
chore: forward v1.42.3 release commit to main ( #23335 )
...
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2024-04-12 04:19:46 +00:00
denobot
ca7432b86b
chore: forward v1.42.2 release commit to main ( #23315 )
...
Co-authored-by: Satya Rohith <me@satyarohith.com>
2024-04-11 13:37:24 +05:30
林炳权
9304126be5
chore: update to Rust 1.77.2 ( #23262 )
...
update to Rust 1.77.2
---------
Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2024-04-10 22:08:23 +00:00
Satya Rohith
5a3ee6d9af
fix(ext/node): implement MessagePort.unref() ( #23278 )
...
Closes https://github.com/denoland/deno/issues/23252
Closes https://github.com/denoland/deno/issues/23264
2024-04-09 20:15:55 +02:00
Satya Rohith
e01bc09573
fix(ext/node): count MessagePort message listeners in hasMessageEventListener ( #23209 )
2024-04-04 17:08:51 +02:00
Satya Rohith
4d66ec91c1
fix(ext/node): MessagePort works ( #22999 )
...
Closes https://github.com/denoland/deno/issues/22951
Closes https://github.com/denoland/deno/issues/23001
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-04-02 17:06:09 +05:30
denobot
8d158058e5
chore: forward v1.42.1 release commit to main ( #23162 )
...
This is the release commit being forwarded back to main for 1.42.1
Co-authored-by: littledivy <littledivy@users.noreply.github.com>
2024-04-01 13:35:46 +05:30
denobot
9c6eca1064
1.42.0 ( #23105 )
...
Bumped versions for 1.42.0
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-03-28 01:47:33 +01:00
Viktor Marinho
fb1aa4e6d2
fix(ext/web): Fix structuredClone Web API type declaration (any -> generic) ( #22968 )
...
Closes #22958
Used the same type as in:
https://github.com/microsoft/TypeScript/blob/main/src/lib/dom.generated.d.ts#L26114
---------
Signed-off-by: Viktor Marinho <56888067+viktormarinho@users.noreply.github.com>
2024-03-25 22:44:49 +01:00
Bartek Iwańczuk
b688b61036
refactor(ext/web): use relative specifiers ( #23024 )
2024-03-22 17:21:05 +01:00
Bartek Iwańczuk
2166aa8fb6
chore: upgrade deno_core to 0.272.0 ( #23022 )
2024-03-21 13:57:32 -07:00
Bartek Iwańczuk
92576fdcfd
fix(ext/node): support MessagePort in WorkerOptions.workerData
( #22950 )
...
This commit fixes passing `MessagePort` instances to
`WorkerOptions.workerData`.
Before they were not serialized and deserialized properly when spawning
a worker thread.
Closes https://github.com/denoland/deno/issues/22935
2024-03-16 01:59:18 +01:00
Nathan Whitaker
85116226b3
chore: Forward 1.41.3 release commit ( #22930 )
...
Forward 1.41.3 release commit
Co-authored-by: denobot <33910674+denobot@users.noreply.github.com>
Co-authored-by: nathanwhit <nathanwhit@users.noreply.github.com>
2024-03-14 21:23:24 +00:00
David Sherret
ad6b00a2bf
chore: enable clippy unused_async rule ( #22834 )
2024-03-11 23:48:00 -04:00
mash-graz
80dbcd3ddf
fix(ext/node) implement receiveMessageOnPort for node:worker_threads ( #22766 )
...
Implementation of `receiveMessageOnPort` for `node:worker_threads`
Fixes: #22702
2024-03-11 00:23:06 +01:00
Kenta Moriuchi
84db80642a
chore: replace 'call' to 'execute' in error messages ( #22579 )
...
Since both "call" and "execute" were used in error messages, I replaced them with "execute," which is more used.
2024-03-10 02:23:14 +00:00
denobot
44da066359
chore: forward v1.41.2 release commit to main ( #22793 )
...
This is the release commit being forwarded back to main for 1.41.2
Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com>
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-03-08 09:12:36 +00:00
Matt Mastracci
736b91edd0
perf(cli): use new deno_core timers ( #22569 )
...
Improves #19100
Fixes #20356
Replaces #20428
Changes made in deno_core to support this:
- [x] Errors must be handled in setTimeout callbacks
- [x] Microtask ordering is not-quite-right
- [x] Timer cancellation must be checked right before dispatch
- [x] Timer sanitizer
- [x] Move high-res timer to deno_core
- [x] Timers need opcall tracing
2024-03-01 11:15:18 -07:00
denobot
404422519c
chore: forward v1.41.1 release commit to main ( #22643 )
...
Co-authored-by: dsherret <dsherret@users.noreply.github.com>
2024-02-29 20:56:08 -05:00
denobot
118445103b
1.41.0 ( #22524 )
...
Bumped versions for 1.41.0
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-02-22 02:44:05 +01:00
Matt Mastracci
f705906256
chore(ext/web): refactor timer ops before landing op sanitizer ( #22435 )
...
Splitting the sleep and interval ops allows us to detect an interval
timer. We also remove the use of the `op_async_void_deferred` call.
A future PR will be able to split the op sanitizer messages for timers
and intervals.
2024-02-16 15:35:51 +00:00
denobot
7d47a85b57
chore: forward v1.40.5 release commit to main ( #22424 )
...
This is the release commit being forwarded back to main for 1.40.5
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-02-15 12:15:36 +05:30
Florian Schwalm
082f8128b8
fix(ext/web): Prevent (De-)CompressionStream resource leak on stream cancellation ( #21199 )
...
Based on #21074 and #20741 I was looking for further potential use cases
of `TransformStream` `cancel()` method, so here go `CompressionStream`
and `DecompressionStream`.
Fixes #14212
2024-02-13 21:45:23 +00:00
denobot
ed34429a5f
chore: forward v1.40.4 release commit to main ( #22345 )
...
This is the release commit being forwarded back to main for 1.40.4
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-02-08 12:39:39 +00:00
Bartek Iwańczuk
043fee48fd
chore: upgrade deno_core to 0.259.0 ( #22311 )
...
This update brings number of ops available to user code down to 45.
2024-02-07 02:16:08 +01:00
Leo Kettmeir
1007358768
refactor: move ImageData to web extension ( #22295 )
...
Signed-off-by: Leo Kettmeir <crowlkats@toaxl.com>
2024-02-07 01:11:15 +01:00
Bartek Iwańczuk
7c111da5f6
fix: Support Symbol.metadata ( #22282 )
...
This commit adds support for "Symbol.metadata" which was
omitted when adding support for the Decorators Proposal.
Closes https://github.com/denoland/deno/issues/22111
2024-02-06 14:57:25 +01:00
Matt Mastracci
56f58a047e
chore: bump deno core ( #22243 )
...
Migrations:
- Error registration no longer required for Interrupted or BadResource
(these are core exception)
- `include_js_files!`/`ExtensionFileSource` changes
2024-02-04 17:03:14 -07:00
Divy Srivastava
ca11536f3f
chore: forward v1.40.3 release commit to main ( #22220 )
...
This is the release commit being forwarded back to main for 1.40.3
Ref https://github.com/denoland/deno/pull/22219
2024-02-01 18:11:35 +09:00