Bartek Iwańczuk
8f46dc2c0f
chore: release extension crates, unpin tokio ( #18954 )
2023-05-04 16:19:04 +02:00
Kenta Moriuchi
ec1fb08a88
refactor(core): Use ObjectHasOwn
instead of ObjectPrototypeHasOwnProperty
( #18952 )
...
ES2022 `Object.hasOwn` can be used in snapshot, so I migrate to use it.
2023-05-04 16:19:02 +02:00
Yarden Shoham
2a14ac58fa
fix(ext/node): add missing release
property to node's process
( #18923 )
2023-05-04 16:18:59 +02:00
Bartek Iwańczuk
797f0ef42e
fix(npm): canonicalize filename before returning ( #18948 )
...
This commit changes how paths for npm packages are handled,
by canonicalizing them when resolving. This is done so that instead
of returning
"node_modules/<package_name>@<version>/node_modules/<dep>/index.js"
(which is a symlink) we "node_modules/<dep>@<dep_version>/index.js.
Fixes https://github.com/denoland/deno/issues/18924
Fixes https://github.com/bluwy/create-vite-extra/issues/31
---------
Co-authored-by: David Sherret <dsherret@gmail.com>
2023-05-04 16:18:57 +02:00
Levente Kurusa
348946aa5e
fix(node/http): Request.setTimeout(0) should clear ( #18949 )
...
Fixes: #18932
2023-05-04 16:18:55 +02:00
David Sherret
9c646ac6ed
perf: lazily create RootCertStore ( #18938 )
2023-05-04 16:18:49 +02:00
Bartek Iwańczuk
016b43441b
refactor: migrate async ops to generated wrappers ( #18937 )
...
Migrates some of existing async ops to generated wrappers introduced in
https://github.com/denoland/deno/pull/18887 . As a result "core.opAsync2"
was removed.
I will follow up with more PRs that migrate all the async ops to
generated wrappers.
2023-05-04 16:18:38 +02:00
Kenta Moriuchi
3d0b879c0d
fix(core): Use primordials for methods ( #18839 )
...
I would like to get this change into Deno before merging
https://github.com/denoland/deno_lint/pull/1152
2023-05-04 16:18:35 +02:00
Divy Srivastava
ff3dc7d79d
chore(ext/websocket): readd autobahn|testsuite fuzzingclient ( #18903 )
...
This reverts commit
17d1c7e444
.
The `Deno.serve` signature update in
https://github.com/denoland/deno/pull/18759 broke the testee server
right after this patch landed on `main`.
2023-05-04 16:18:29 +02:00
Leo Kettmeir
15a3abc2fd
refactor(webidl): move prefix & context out of converters options bag ( #18931 )
2023-05-04 16:18:26 +02:00
Divy Srivastava
3bd154efee
perf(ext/web): fast path for ws events ( #18905 )
...
- Do not use `ReflectHas` in `isNode`.
- Avoid copying handler array when handlers.length == 1
- Avoid searching for path target when path.length == 1
```
Linux divy-2 5.19.0-1022-gcp #24~22.04.1-Ubuntu SMP Sun Apr 23 09:51:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
32GiB System memory
Intel(R) Xeon(R) CPU @ 3.10GHz
# main + https://github.com/denoland/deno/pull/18904
Msg/sec: 89326.750000
Msg/sec: 90320.000000
Msg/sec: 89576.250000
# this patch
Msg/sec: 97250.000000
Msg/sec: 97125.500000
Msg/sec: 97964.500000
```
2023-05-04 16:18:24 +02:00
Divy Srivastava
36958ea7dc
perf(ext/websocket): use internal dispatch for msg events ( #18904 )
...
```
Linux divy-2 5.19.0-1022-gcp #24~22.04.1-Ubuntu SMP Sun Apr 23 09:51:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
32GiB System memory
Intel(R) Xeon(R) CPU @ 3.10GHz
# main
Msg/sec: 89398.250000
Msg/sec: 90079.750000
# this patch
Msg/sec: 91919.750000
Msg/sec: 91762.250000
```
2023-05-04 16:18:17 +02:00
Kenta Moriuchi
084e7c9560
fix(ext/url): throw TypeError
for empty argument ( #18896 )
...
Fixes #18893
2023-05-04 16:18:15 +02:00
Leo Kettmeir
fcb0ae62e9
refactor: remove ext/console/01_colors.js ( #18927 )
2023-05-04 16:18:12 +02:00
Matt Mastracci
dcd59e0974
perf(core): async op pseudo-codegen and performance work ( #18887 )
...
Performance:
```
async_ops.js: 760k -> 1030k (!)
async_ops_deferred.js: 730k -> 770k
Deno.serve bench: 118k -> 124k
WS test w/ third_party/prebuilt/mac/load_test 100 localhost 8000 0 0: unchanged
Startup time: approx 0.5ms slower (13.7 -> 14.2ms)
```
2023-05-04 16:18:10 +02:00
Leo Kettmeir
5f22a37f93
refactor: merge Deno & Node inspectors ( #18691 )
2023-05-04 16:17:51 +02:00
Luca Casonato
d9dfffa4c8
fix(ext/kv): stricter structured clone serializer ( #18914 )
2023-05-04 16:17:46 +02:00
Igor Zinkovsky
93b8c72d89
fix(ext/io) several sync fs fixes ( #18886 )
...
2 fixes related to sync fs:
* update the 2 sync methods on `Resource` trait to take `Rc<Self>`
(consistent with other methods)
* fix a bug in `StdFileResource::with_inner_and_metadata`, which
currently can trigger a panic if a sync method is called on a file with
a pending async operation. This could happen in the code path where
`File::try_clone`
[fails](39ece1fe0d/ext/io/lib.rs (L485-L489)
).
2023-05-04 16:17:43 +02:00
denobot
d5f52ef7ac
1.33.1 ( #18895 )
...
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-04-28 19:05:46 +02:00
Divy Srivastava
8739519ebc
fix(ext/websocket): client connect URI ( #18892 )
2023-04-28 18:00:27 +02:00
Bartek Iwańczuk
142c1ab9fc
fix(ext/websocket): restore op_ws_send_ping ( #18891 )
...
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2023-04-28 16:48:00 +02:00
Luca Casonato
84b921555f
fix(ext/fetch): subview Uint8Array in Req/Resp ( #18890 )
2023-04-28 14:26:21 +02:00
denobot
39ece1fe0d
1.33.0 ( #18879 )
...
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-04-28 01:18:57 +02:00
Levente Kurusa
c3d670dbc9
feat(node/crypto): Elliptic Curve Diffie-Hellman (ECDH) support ( #18832 )
...
- ECDH class
- crypto.createECDH()
- Supported curves:
- secp256k1
- prime256v1 / secp256r1
- secp384r1
- secp224r1
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-04-27 18:31:35 +02:00
Luca Casonato
3fbb31c3c1
feat(kv): return ok bool from atomic commit ( #18873 )
2023-04-27 16:59:02 +02:00
Divy Srivastava
b0264bea7d
fix(ext/node): prime generation ( #18861 )
...
Towards https://github.com/denoland/deno/issues/18455
`safe`, `add` and `rem` options are not implemented because there is no
rust crate that provides this functionality (except rust-openssl maybe)
and its just not clear if this API is used widely.
2023-04-27 19:40:59 +05:30
David Sherret
742cc3111c
refactor(cli): extract out ProcState from CliMainWorker ( #18867 )
2023-04-27 10:05:20 -04:00
Bartek Iwańczuk
d043a6d72c
perf(ext/websocket): various performance improvements ( #18862 )
...
- No need to wrap buffer in a `new DataView()`
- Deferred ops are still eagerly polled, but resolved on the next
tick of the event loop, we don't want them to be eagerly polled
- Using "core.opAsync"/"core.opAsync2" incurs additional cost
of looking up these functions on each call. Similarly with "ops.*"
---------
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2023-04-27 12:47:52 +02:00
Bartek Iwańczuk
1e331a4873
refactor(ext/node): migrate back to using "Deno.serve" API for HTTP server ( #18865 )
...
This commit fixes "node:http" API to properly handle "upgrade"
requests and thus marking Vite work again.
This is done by migrating back to "Deno.serve()" and internal
"upgradeHttpRaw" APIs for "node:http" module polyfill.
2023-04-27 12:45:13 +02:00
David Sherret
f4e442da4d
fix(dts): URLPatternComponentResult
groups should have possibly undefined key values ( #18643 )
...
Closes #18640
2023-04-26 19:15:25 -04:00
Matt Mastracci
e2761df3fe
fix(ext/http): internal upgradeHttpRaw works with "Deno.serve()" API ( #18859 )
...
Fix internal "upgradeHttpRaw" API restoring capability to upgrade HTTP
connection in polyfilles "node:http" API.
2023-04-27 00:58:18 +02:00
David Sherret
a8b4e346b4
refactor(ext/node): use a snapshottable global name for Node's globalThis ( #18860 )
2023-04-26 18:53:13 -04:00
Ryan Dahl
2df6db36c8
feat(ext/kv): add more atomic operation helpers ( #18854 )
...
Co-authored-by: losfair <zhy20000919@hotmail.com>
Co-authored-by: Luca Casonato <hello@lcas.dev>
2023-04-26 17:14:01 +00:00
Divy Srivastava
5f7db93d0b
perf(ext/http): optimize away code based on callback length ( #18849 )
...
hello world on macOS:
```
divy@mini ~> wrk -d 10s --latency http://127.0.0.1:4500
Running 10s test @ http://127.0.0.1:4500
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 80.82us 42.95us 2.91ms 96.40%
Req/Sec 56.91k 1.94k 60.77k 95.54%
Latency Distribution
50% 77.00us
75% 89.00us
90% 105.00us
99% 146.00us
1143455 requests in 10.10s, 138.49MB read
Requests/sec: 113212.38
Transfer/sec: 13.71MB
divy@mini ~> wrk -d 10s --latency http://127.0.0.1:4500
Running 10s test @ http://127.0.0.1:4500
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 88.63us 78.77us 2.55ms 98.72%
Req/Sec 54.84k 2.16k 57.35k 98.51%
Latency Distribution
50% 80.00us
75% 93.00us
90% 109.00us
99% 249.00us
1102313 requests in 10.10s, 133.51MB read
Requests/sec: 109136.61
Transfer/sec: 13.22MB
```
Expected to have a larger impact on Linux
2023-04-26 22:11:54 +05:30
Bartek Iwańczuk
17d1c7e444
Revert "chore(ext/websocket): Add autobahn|testsuite fuzzingclient (#… ( #18856 )
...
…18846)"
This reverts commit 036778c2e8
.
Keeps failing on `main` branch.
2023-04-26 15:48:23 +00:00
Matt Mastracci
38681dfa88
perf(ext/http): optimize for zero or one-packet response streams ( #18834 )
...
Improve `deno_reactdom_ssr_flash.jsx` by optimizing for zero/one-packet response streams.
2023-04-26 15:33:30 +02:00
Bartek Iwańczuk
1b450015e7
BREAKING(unstable): remove "Deno.serve(handler, options)" overload ( #18759 )
...
In preparation to stabilization of the API this overload was decided to
be removed.
2023-04-26 14:54:03 +02:00
Divy Srivastava
036778c2e8
chore(ext/websocket): Add autobahn|testsuite fuzzingclient ( #18846 )
...
Closes #17242
2023-04-26 17:55:48 +05:30
Divy Srivastava
fbefceeb56
perf(ext/http): use smi for slab IDs ( #18848 )
2023-04-26 15:38:13 +05:30
Divy Srivastava
18170f2326
perf(ext/http): avoid spread arg deopt in op_http_wait ( #18850 )
...
2% improvement on macOS hello world.
2023-04-26 15:37:57 +05:30
Divy Srivastava
9d7e3f84c8
chore(ext/websocket): remove ping frame handling ( #18847 )
...
Automatically done in the fastwebsockets crate
2023-04-26 15:37:38 +05:30
David Sherret
041d1e093b
refactor(cli): extract out NpmModuleLoader from CliModuleLoader ( #18842 )
...
Need to share this with the loader used in deno compile
2023-04-25 18:36:31 -04:00
Kenta Moriuchi
9b49de4644
fix(core): Wrap safe collections' argument of primordials ( #18750 )
2023-04-26 00:36:22 +02:00
Bartek Iwańczuk
97820fe8ab
refactor(ext/kv): don't use bigint literals ( #18841 )
...
This causes `DCHECK` fail in V8 when pointer compression
is disabled.
2023-04-25 20:43:39 +00:00
Bartek Iwańczuk
531754c354
refactor(ext/websocket): use specialized ops ( #18819 )
...
Instead of relying on `op_ws_send` to send different kinds of messages,
use specialized ops everywhere.
2023-04-25 13:53:06 +02:00
Matt Mastracci
21c888d4db
refactor(ext/http): comments for h2c code ( #18833 )
2023-04-25 12:41:01 +02:00
Yoshiya Hinosawa
63befe9377
fix(ext/node): fix hash.flush ( #18818 )
2023-04-25 11:21:26 +09:00
David Sherret
5b4a9b48ae
refactor(ext/node): enforce interior mutable for NodePermissions
to remove clones ( #18831 )
...
We can make `NodePermissions` rely on interior mutability (which the
`PermissionsContainer` is already doing) in order to not have to clone
everything all the time. This also reduces the chance of an accidental
`borrow` while `borrrow_mut`.
2023-04-24 21:07:48 -04:00
David Sherret
aa286fdecb
refactor(ext/node): allow injecting NodeFs
from CLI ( #18829 )
...
This allows providing a `NodeFs` as part of the `WorkerOptions`.
2023-04-24 19:44:35 -04:00
Matt Mastracci
bb74e75a04
feat(ext/http): h2c for http/2 ( #18817 )
...
This implements HTTP/2 prior-knowledge connections, allowing clients to
request HTTP/2 over plaintext or TLS-without-ALPN connections. If a
client requests a specific protocol via ALPN (`h2` or `http/1.1`),
however, the protocol is forced and must be used.
2023-04-24 23:24:40 +02:00