Commit graph

1045 commits

Author SHA1 Message Date
Leo Kettmeir 4bc95427b9
chore: update wpt (#19422) 2023-06-08 22:56:05 +02:00
Matt Mastracci 40d77c5605
chore(core): build_bench tool (#19387)
This is a quick tool that I've been using to build benchmarking builds
for Deno.

Usage:

Build a benchmark `HEAD~1` and `origin/main` executable:

```sh
deno run tools/build_bench.ts HEAD~1 origin/main
```

Build debug benchmark executables of the last three commits:

```sh
deno run tools/build_bench.ts --profile debug HEAD HEAD~1 HEAD~2
```
2023-06-06 18:53:41 +00:00
Levente Kurusa 11dd5a0ae7
fix(ext/crypto): fix JWK import of Ed25519 (#19279)
Fixes: #18049

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-06-05 14:52:02 +02:00
Aapo Alasuutari 98461e2559
chore(tools): Add core import-map (#19346)
Adds an import map of the core and ext JavaScript files. This was
created manually but a script to create one automatically wouldn't be
too much of a big thing either.

This should make working on especially the Node polyfills much more
pleasant, as it gives you feedback on if your imports are correct.
Unfortunately the TypeScript declaration files of some of the internal
modules clash with the import map and override the data from the actual
files with data from the declaration files. Those do not contain all
exports nor is their data always up to date. Still, this is much better
than not having one.
2023-06-02 09:38:36 -04:00
Hirotaka Tagawa / wafuwafu13 0104741d6f
chore(node_compat): fix path strings generated by setup.ts (#19347) 2023-06-02 15:05:32 +09:00
Matt Mastracci 11791ee260
chore(core): Update certs for WPT (#19351) 2023-06-01 21:32:07 -06:00
Hirotaka Tagawa / wafuwafu13 1a0445dc6b
chore(node_compat): add deno task for setting up and running tests (#19293) 2023-06-01 17:31:06 +09:00
David Sherret 047edf6a75
ci: bump CI cache version on CLI version bump (#19318)
Automatically bump the CI cache version
2023-05-30 17:09:07 -04:00
Bartek Iwańczuk d90a75c036
fix: use proper ALPN protocols if HTTP client is HTTP/1.1 only (#19303)
Closes https://github.com/denoland/deno/issues/16923

---------

Co-authored-by: crowlkats <crowlkats@toaxl.com>
Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2023-05-29 23:05:45 +02:00
Leo Kettmeir be59e93220
refactor(node/http): don't use readablestream for writing to request (#19282)
Refactors the internal usage of a readablestream to write to the
resource directly

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-05-27 15:42:20 +02:00
Hirotaka Tagawa / wafuwafu13 0a3d355ce6
chore(node_compat): fix broken link and typo (#19265) 2023-05-26 05:00:29 +02:00
Bartek Iwańczuk 5874fc3d0a
feat: add support for globs in the config file and CLI arguments for files (#19102)
Follow up to https://github.com/denoland/deno/pull/19084.

This commit adds support for globs in the configuration file as well 
as CLI arguments for files. 

With this change users can now use glob syntax for "include" and 
"exclude" fields, like so:

```json
{
  "lint": {
    "include": [
      "directory/test*.ts",
      "other_dir/"
    ],
    "exclude": [
      "other_dir/foo*.ts",
      "nested/nested2/*"
    ]
  },
  "test": {
    "include": [
      "data/test*.ts",
      "nested/",
      "tests/test[1-9].ts"
    ],
    "exclude": [
      "nested/foo?.ts",
      "nested/nested2/*"
    ]
  }
}
```

Or in CLI args like so:
```
// notice quotes here; these values will be passed to Deno verbatim
// and deno will perform glob expansion

$ deno fmt --ignore="data/*.ts"
$ deno lint "data/**/*.ts"
```

Closes https://github.com/denoland/deno/issues/17971
Closes https://github.com/denoland/deno/issues/6365
2023-05-23 03:39:59 +02:00
Marcos Casagrande b0f13560cb
fix(ext/webidl): change createPromiseConverter (#16367) 2023-05-18 17:05:11 +03:00
Yoshiya Hinosawa 243d9c846d
fix(ext/node): fix whatwg url formatting (#19146) 2023-05-17 14:51:51 +09:00
Leo Kettmeir 867a6d3032
refactor(node): reimplement http client (#19122)
This commit reimplements most of "node:http" client APIs using
"ext/fetch".

There is some duplicated code and two removed Node compat tests that
will be fixed in follow up PRs.

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-05-17 01:20:32 +02:00
Levente Kurusa 1171c54952
feat(node/crypto): Builtin Diffie-Hellman Groups (#19137)
Towards #18455
2023-05-16 00:07:58 +02:00
Levente Kurusa 3356173d00
feat(node/crypto): Diffie Hellman Support (#18943)
Support crypto.DiffieHellman class in ext/node/crypto
2023-05-15 19:41:53 +02:00
Yoshiya Hinosawa 0ccfccdcd2
chore: check node_compat config diff in CI (#19119) 2023-05-15 21:22:53 +09:00
Matt Mastracci 9845361153
refactor(core): bake single-thread assumptions into spawn/spawn_blocking (#19056)
Partially supersedes #19016.

This migrates `spawn` and `spawn_blocking` to `deno_core`, and removes
the requirement for `spawn` tasks to be `Send` given our single-threaded
executor.

While we don't need to technically do anything w/`spawn_blocking`, this
allows us to have a single `JoinHandle` type that works for both cases,
and allows us to more easily experiment with alternative
`spawn_blocking` implementations that do not require tokio (ie: rayon).

Async ops (+~35%):

Before: 

```
time 1310 ms rate 763358
time 1267 ms rate 789265
time 1259 ms rate 794281
time 1266 ms rate 789889
```

After:

```
time 956 ms rate 1046025
time 954 ms rate 1048218
time 924 ms rate 1082251
time 920 ms rate 1086956
```

HTTP serve (+~4.4%):

Before:

```
Running 10s test @ http://localhost:4500
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    68.78us   19.77us   1.43ms   86.84%
    Req/Sec    68.78k     5.00k   73.84k    91.58%
  1381833 requests in 10.10s, 167.36MB read
Requests/sec: 136823.29
Transfer/sec:     16.57MB
```

After:

```
Running 10s test @ http://localhost:4500
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    63.12us   17.43us   1.11ms   85.13%
    Req/Sec    71.82k     3.71k   77.02k    79.21%
  1443195 requests in 10.10s, 174.79MB read
Requests/sec: 142921.99
Transfer/sec:     17.31MB
```

Suggested-By: alice@ryhl.io
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-05-14 15:40:01 -06:00
Bartek Iwańczuk cf6f965e25
chore: upgrade rusty_v8 to 0.71.2 (#19116)
Closes https://github.com/denoland/deno/issues/19021
2023-05-13 21:11:40 +02:00
Yoshiya Hinosawa ab88dc2c68
chore(ext/node): removed skipped compat test cases (#19109) 2023-05-13 15:26:16 +09:00
Yoshiya Hinosawa 2a0c664840
chore: fix & update node compat config (#19106) 2023-05-13 14:49:11 +09:00
Matt Mastracci d55e07f627
chore(core): Parallelize all WPT tests and reduce timeouts for expected failures (#19061)
This speeds up WPT tests in two ways:

1. The `WebCryptoAPI` tests are slow, so create a parallel bucket for
each individual test instead of one for all the `WebCryptoAPI` tests.
2. If a test is expected to fail, use a shorter timeout (1 minute rather
than 4).
2023-05-10 21:35:42 +02:00
Bartek Iwańczuk 8e6c104907
chore: update release doc template (#18974) 2023-05-03 15:05:53 +00:00
denobot 6369098ad7
chore: forward v1.33.1 release commit to main (#18897)
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-04-28 21:14:26 +02:00
Bartek Iwańczuk 6cd62ea5e9
chore: upgrade rusty_v8 to 0.71.0 (#18868) 2023-04-27 20:50:46 +02:00
Leo Kettmeir 78b630d92a
ci: switch release doc to mention dotcom (#18845) 2023-04-26 03:38:49 +00:00
Yoshiya Hinosawa 63befe9377
fix(ext/node): fix hash.flush (#18818) 2023-04-25 11:21:26 +09:00
Levente Kurusa a8ca09f78a
chore(tools/release): make things a bit more obvious (#18753) 2023-04-19 20:11:23 +02:00
Yoshiya Hinosawa 53c9f5918c
fix(ext/node): improve vm.runInThisContext (#18767) 2023-04-19 23:26:16 +09:00
Yoshiya Hinosawa de21a780fd
fix(ext/node): add req.socket.remoteAddress (#18733) 2023-04-18 16:00:51 +09:00
Yoshiya Hinosawa 559a61b879
chore: update node compat config (#18736) 2023-04-18 00:36:49 +09:00
Bartek Iwańczuk 52d235391c
chore: add test duration to WPT (#18680)
To make it easier to debug which tests are slowing us down.

Tests taking more than 5s have duration printed in red,
taking more than 1s in yellow and less than 1s are printed 
without color.
2023-04-13 10:03:15 -04:00
Kenta Moriuchi 2dc2016837
feat(ext/url): URL.canParse (#18286) 2023-04-04 13:34:12 +02:00
David Sherret d939a5e96c
ci: improve release docs (#18562) 2023-04-02 17:53:52 +00:00
Kenta Moriuchi 03edd48edd
chore: Turn back on dlintPreferPrimordials (#17715)
Closes #17709
2023-04-02 19:41:41 +02:00
David Sherret 30065af0f2
chore(release): improve merge commit back to main for patch releases (#18554)
This change commits with conflicts that can then be resolved manually.
2023-04-01 16:58:55 +00:00
Bartek Iwańczuk 381f5801f9
Revert "refactor(ext/node): Use Deno.inspect (#17960)" (#18491)
This reverts commit a3529d0232.

This change made debugging Node tests very hard - `AssertionError` is
now printed as `[Circular *1]` giving no visibility what failed.

We need to align two implementations together and remove this one then.
2023-03-30 15:33:28 +00:00
Yoshiya Hinosawa 8b596cbae1
chore: document Node.js compat test setup script (#18381) 2023-03-26 12:22:09 +03:00
Kenta Moriuchi 255b06d793
chore: update wpt again (#18384)
This reverts commit 4c2269d64a.

> This update introduced more flakiness to the tests on CI, we are going
> to investigate and reland this update after Deno 1.32.0 is released.
2023-03-25 03:27:49 +00:00
Ryan Dahl a3529d0232
refactor(ext/node): Use Deno.inspect (#17960)
No need for two almost identical implementations of the same thing

---------

Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
Co-authored-by: Aapo Alasuutari <aapo.alasuutari@gmail.com>
2023-03-23 10:01:07 -04:00
Bartek Iwańczuk 4c2269d64a
Revert "chore: update wpt (#18335)" (#18355)
This reverts commit 29fb7709ed.

This update introduced more flakiness to the tests on CI, we are going
to investigate and reland this update after Deno 1.32.0 is released.
2023-03-22 17:17:52 +00:00
Kenta Moriuchi 29fb7709ed
chore: update wpt (#18335) 2023-03-22 15:43:20 +01:00
Cre3per fd0658fb42
feat(cli): --ext parameter for run, compile, and bundle (#17172)
Adds `--ext` to `deno run`, closes #5088

Additionally

- Adds `--ext` to `deno compile` and `deno bundle`
2023-03-22 10:15:53 -04:00
Matt Mastracci 08849a48ca
chore(tools): Copyright checker had a bad interpolation (#18328)
The copyright checker was erroring out with a bad interpolation if
errors existed.
2023-03-21 10:31:34 -06:00
David Sherret 0366d6833f
docs(release): update to include deno_docker release workflow (#18323) 2023-03-21 11:38:59 -04:00
Yoshiya Hinosawa aa729a42b4
chore(tools): restore node compat test setup script (#18290) 2023-03-21 22:38:07 +09:00
Bartek Iwańczuk a5ad3a44b5
chore(ci): allow 'Reland' PR title prefix (#18273) 2023-03-18 21:15:45 +00:00
Leo Kettmeir 35196eab27
BREAKING(unstable): remove WebGPU (#18094)
This PR _**temporarily**_ removes WebGPU (which has behind the
`--unstable` flag in Deno), due to performance complications due to its
presence.

It will be brought back in the future; as a point of reference, Chrome
will ship WebGPU to stable on 26/04/2023.

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-03-17 00:29:32 +01:00
Bartek Iwańczuk 8efda832e2
chore(ci): allow 'BREAKING' PR title prefix (#18238)
So that we can land PRs like https://github.com/denoland/deno/pull/18237
or https://github.com/denoland/deno/pull/18094
2023-03-16 22:42:29 +00:00
David Sherret b9d9cd17c9
chore: upgrade deno_automation to 0.19.0 (#18213)
I updated the lockfile with:

```
deno cache --lock=tools/deno.lock.json --lock-write ./tools/wpt.ts ./tools/upload_wptfyi.js ./tools/release/deps.ts
```
2023-03-16 09:26:30 -04:00
Bartek Iwańczuk 392f91da00
test: ignore global-immutable-prototype.any.worker.html (#18208)
This test is very flaky on CI, ignoring it for now.

https://github.com/denoland/deno/issues/17405
2023-03-15 22:40:56 -04:00
David Sherret 6c05b776e0
chore: parallelize lint steps (#18214) 2023-03-15 22:39:40 -04:00
Filip Skokan 72ced37821
fix(wpt): set META_TITLE on global for the testharness (#18193)
Fixes hopefully the last mismatch of reported test titles.

-
[redirect-schemes.any.html](https://wpt.fyi/results/fetch/api/redirect/redirect-schemes.any.html?run_id=5139017526411264&run_id=5093839906275328)
-
[redirect-schemes.any.worker.html](https://wpt.fyi/results/fetch/api/redirect/redirect-schemes.any.worker.html?run_id=5139017526411264&run_id=5093839906275328)
-
ebf6814ebd/resources/testharness.js (L4754-L4756)
2023-03-15 14:03:07 +01:00
Lino Le Van eb990efcce
feat(ext/url): URLSearchParams.size (#17884) 2023-03-14 20:28:33 +00:00
David Sherret b9d2ac32d5
chore(ci): verify the PR title as part of linting (#18163)
This verifies the PR title as part of the lint step.
2023-03-13 18:59:13 +00:00
Filip Skokan 92c388761a
wpt: only tag daily runs as master (#18155)
This PR updates the WPT upload script so that it only labels runs that
come from the daily WPT job as "master".

This is so that only the daily synchronized runs get selected when
viewing dashboards such as
[this](https://wpt.fyi/results/?label=master&label=experimental&product=deno&product=node.js&product=chrome&product=edge&product=firefox&product=safari&aligned&view=subtest&q=deno%3A%21missing).
2023-03-13 13:24:16 +01:00
Bartek Iwańczuk 215528f499
build: run clippy with --all-features (#18115) 2023-03-10 21:07:28 +09:00
Bartek Iwańczuk 72fe9bb470
refactor: rename InternalModuleLoader to ExtModuleLoader, use ext: scheme for snapshotted modules (#18041)
This commit renames "deno_core::InternalModuleLoader" to
"ExtModuleLoader" and changes the specifiers used by the 
modules loaded from this loader to "ext:".

"internal:" scheme was really ambiguous and it's more characters than
"ext:", which should result in slightly smaller snapshot size.

Closes https://github.com/denoland/deno/issues/18020
2023-03-08 12:44:54 +01:00
Filip Skokan 7d13d65468
fix(ext/crypto): correctly limit ECDSA and hash algorithms (#18030)
Closes #18029
2023-03-05 12:34:07 +00:00
Filip Skokan 1b42ab4605
wpt: unlock nightly with --no-ignore (#17998)
When I was testing the code in #17892 I had updated expectations and
didn't catch this.

This PR fixes the the expectation file format to not be checked when
--no-ignore is passed during
[nightly](https://github.com/denoland/deno/actions/runs/4319520368/jobs/7538796572#step:9:46)
runs.
2023-03-03 14:50:18 +01:00
Filip Skokan 64503fabd8
test(wpt): implement process timeout, fix expectations update, and more... (#17892)
- relands #17872
- updates the timeouts to be re-configurable just for CI
- fixes `./tools/wpt.ts update`
- adds option not "ignore" during, applied to wpt epoch runs only
2023-03-02 23:05:17 +01:00
Bartek Iwańczuk 93a712fbac
Revert "test(wpt): implement process timeout (#17872)" (#17886)
This reverts commit 5fcbdd6228.
2023-02-23 02:34:19 +01:00
Filip Skokan 5fcbdd6228
test(wpt): implement process timeout (#17872)
```
response-consume-stream.any.js
Blob-stream.any.js
```

These tests just hang whenever they get to use byob mode. This PR adds a
timeout to the spawned process so that the WPTs finish running.

This first broke the daily run due to
7b49c547d4

Also fixes "Untitled" test names in
https://wpt.fyi/results/dom/events/Event-constructors.any.html?label=experimental&label=master&product=deno&product=chrome&aligned&view=subtest
2023-02-22 21:45:21 +01:00
Yoshiya Hinosawa a01af067d7
test: add node compat tests (#17805) 2023-02-17 23:58:52 +09:00
Bartek Iwańczuk 4c2380af5c
test: add unit tests from std/node (#17794)
Adds two test files: "cli/tests/unit_node/process_test.ts" and
"cli/tests/unit_node/child_process_test.ts"

---------

Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2023-02-16 14:30:14 +01:00
David Sherret b3e88e0681
refactor: deno_graph 0.43 upgrade (#17692) 2023-02-09 22:00:23 -05:00
Leo Kettmeir 49af1ab18d
refactor: remove prefix from include_js_files & use extension name (#17683) 2023-02-07 21:09:50 +00:00
Leo Kettmeir b4aa153097
refactor: Use ES modules for internal runtime code (#17648)
This PR refactors all internal js files (except core) to be written as
ES modules.
`__bootstrap`has been mostly replaced with static imports in form in
`internal:[path to file from repo root]`.
To specify if files are ESM, an `esm` method has been added to
`Extension`, similar to the `js` method.
A new ModuleLoader called `InternalModuleLoader` has been added to
enable the loading of internal specifiers, which is used in all
situations except when a snapshot is only loaded, and not a new one is
created from it.

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-02-07 20:22:46 +01:00
Leo Kettmeir 84a96110cd
refactor: rename deno specifiers to internal (#17655) 2023-02-05 17:49:20 +01:00
David Sherret 09d9437897
chore: add release checklist step to check the benchmarks page (#17632)
The 1.30.1 release had a performance regression that would have been
caught by looking at the benchmarks page. This adds a pre-flight step to
the release checklist for the person doing the release to go to this
page and look at the output.

This would have prevented #17629
2023-02-02 23:41:46 +00:00
Leo Kettmeir 3035dee9f1
chore: update webgpu (#17534) 2023-01-30 15:14:16 +01:00
Kenta Moriuchi 7b6339da6a
fix(core): Add lint check for core (#17223)
The prefer-primordials lint was skipped for `core/*.js`.
2023-01-26 16:56:42 +05:30
Bartek Iwańczuk abd9610530
refactor: remove Deno.core (#16881)
This commit removes "Deno.core" namespace. It is strictly private API
that has no stability guarantees, we were supposed to remove it long time ago.

Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2023-01-24 18:54:10 +01:00
Kenta Moriuchi 6da958d7ec
chore: update dlint to v0.37.0 for GitHub Actions (#17295)
Updated third_party dlint to v0.37.0 for GitHub Actions. This PR
includes following changes:
 
* fix(prefer-primordials): Stop using array pattern assignments
* fix(prefer-primordials): Stop using global intrinsics except for
`SharedArrayBuffer`
* feat(guard-for-in): Apply new guard-for-in rule
2023-01-16 17:17:18 +01:00
Asher Gomez 7683ba5e90
chore: update std submodule and its imports (#17408) 2023-01-15 21:09:26 +01:00
David Sherret 3d423e114e
chore: small cleanup of scripts in ./tools and run copyright checker in lint.js (#17393) 2023-01-13 13:42:15 -05:00
Yiyu Lin a00e432297
chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
David Sherret b4f32c8d14
chore(ci): try some wpt parallelism (#17375) 2023-01-12 19:12:20 -05:00
David Sherret e246f06cfb
chore(ci): ci refactor - Part 1 - Generate ci yaml by js (#17335) 2023-01-10 19:16:11 -05:00
Marcos Casagrande 45768f0e83
fix(ext/web/streams): fix ReadableStream asyncIterator (#16276) 2023-01-09 21:17:36 +01:00
David Sherret 10e4b2e140
chore: update copyright year to 2023 (#17247)
Yearly tradition of creating extra noise in git.
2023-01-02 21:00:42 +00:00
Luca Casonato 923370f18f
fix(ext/fetch): new Request should soft clone (#16869)
Previously the inner request object of the original and the new request
were the same, causing the requests to be entangled and mutable changes
to one to be visible to the other. This fixes that.
2022-12-06 09:39:04 +01:00
Bartek Iwańczuk 4d07ed0efa
chore: rewrite tests and utils to use Deno.Command API (#16895)
Since "Deno.spawn()", "Deno.spawnSync()" and "Deno.spawnChild"
are getting deprecated, this commits rewrites all tests and utilities to
use "Deno.Command" API instead.
2022-12-02 14:43:17 +01:00
Geert-Jan Zwiers 0a82f3c0e9
chore(tools): update deprecated commands in format and lint tool (#16864)
Updates tools/format.js and tools/lint.js from Deno.spawn to
Deno.Command API.
2022-12-01 16:51:47 +01:00
David Sherret 623dbe7a57
chore: remove unnecessary lifetimes (#16878)
It seems we don't really need to allow these clippy rules.
2022-11-30 19:19:32 +00:00
David Sherret 2d4c46c975
refactor: create util folder, move nap_sym to napi/sym, move http_cache to cache folder (#16857) 2022-11-28 17:28:54 -05:00
David Sherret e0dd275935
refactor: move generated_symbol_exports_list_* files to napi folder (#16822) 2022-11-25 18:49:02 -05:00
David Sherret dcb4ffb93a
refactor: move dts files, diagnostics.rs, and tsc.rs to tsc folder (#16820) 2022-11-25 18:29:48 -05:00
Leo Kettmeir 13e3acf71d
chore: workspace inheritance (#16343) 2022-11-22 21:07:35 +01:00
Divy Srivastava 5b9620df7a
feat(ops): implement fast lazy async ops (#16579)
Implements fast scheduling of deferred op futures. 

```rs
#[op(fast)]
async fn op_read(
  state: Rc<RefCell<OpState>>,
  rid: ResourceId,
  buf: &mut [u8],
) -> Result<u32, Error> {
  // ...
}
```

The future is scheduled via a fast API call and polled by the event loop
after being woken up by its waker.
2022-11-11 19:14:53 +05:30
Divy Srivastava bc33a4b2e0
refactor(ops): Rewrite fast call optimizer and codegen (#16514) 2022-11-10 17:23:31 +05:30
Marcos Casagrande 7bd2c607dd
fix(ext/response): make error, json, redirect enumerable (#16497) 2022-11-10 00:31:14 +01:00
Divy Srivastava 6cd9343e8b
perf(ext/web): optimize transferArrayBuffer (#16294)
Avoid copying enqueued data + misc optimizations to skip webidl
converter.
2022-10-26 18:28:25 +05:30
David Sherret e203bd9c5a
fix: upgrade swc_ecma_parser to 0.122.19 - deno_ast 0.20 (#16406) 2022-10-25 11:55:57 -04:00
Andreu Botella dbcbf53ab5
experiment(ext/web): Don't expose event classes during the bootstrap phase (#16213) 2022-10-24 16:14:17 +02:00
Marcos Casagrande 5828ce7675
test(wpt): add mimesniff tests (#16225)
This PR enables 1027/1911
[mimesniff](https://wpt.fyi/results/mimesniff/mime-types?label=master&product=chrome%5Bexperimental%5D&product=firefox%5Bexperimental%5D&product=safari%5Bexperimental%5D&product=deno&aligned&view=subtest)
tests.
2022-10-24 16:11:24 +02:00
Leo Kettmeir e4940135e6
chore: update release checklist for apiland (#16334) 2022-10-18 16:46:19 +02:00
Bartek Iwańczuk b560246f30
fix: move generated napi symbols to cli/ (#16330)
<!--
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-18 13:20:11 +02:00
Marcos Casagrande d0e78ca5c6
fix(ext/fetch): set accept-encoding: identity if range header is present (#16197)
https://fetch.spec.whatwg.org/#http-network-or-cache-fetch

> If httpRequest’s header list contains `Range`, then append
(`Accept-Encoding`, `identity`)
> to httpRequest’s header list.
> 
> This avoids a failure when handling content codings with a part of an
encoded response.
> Additionally, many servers mistakenly ignore `Range` headers if a
non-identity encoding is accepted.
2022-10-17 15:39:41 +02:00
Luke Channings d2c8b5f087
fix(build) fix linux symbols export list format (#16313)
Fixes the error reported in #16304.

> = note:
/usr/bin/ld:/home/abotella/Projects/deno/cli/generated_symbol_exports_list_linux.def:1:
syntax error in dynamic list
          collect2: error: ld returned 1 exit status

This was caused by the format of the symbols list on Linux being
malformed (as the error implies).
The format is documented in ld's
[VERSION](https://sourceware.org/binutils/docs/ld/VERSION.html) as well
as:

>  --export-dynamic-symbol-list=file
           Specify a --export-dynamic-symbol for each pattern in the
           file.  The format of the file is the same as the version node
           without scope and node name.  See VERSION for more
           information.

Previously, the format for the Linux symbols list was simply a list of
symbols, now it follows the format:

```
{ symbol_name_a;  ...; symbol_name_z };
```
2022-10-17 00:53:35 +02:00
Marcos Casagrande 5252ff5dbd
fix(ext/cache): illegal constructor (#16205) 2022-10-16 23:03:17 +05:30
Luke Channings fa22956a86
refactor(build): better handle old glibc (#16238)
Follow-up to #16208.

- Refactors build.rs behaviour to use `-exported_symbols_list` /
`--export-dynamic-symbol-list`
- Since all build systems now rely on a symbols list file, I have added
`generate_exported_symbols_list`, which derives the symbol list file
depending on the platform, which makes `tools/napi/generate_link_win.js`
redundant.
- Fixes a missed instance of `i8` being used instead of `c_char`

Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2022-10-15 20:51:04 +05:30
Marcos Casagrande e6e2898190
fix(ext/web/streams): enqueue to second branch before closing (#16269)
Co-authored-by: Luca Casonato <hello@lcas.dev>
2022-10-14 09:51:39 +00:00
Marcos Casagrande 0d6dbc08be
fix(ext/fetch): throw TypeError on non-Uint8Array chunk (#16262) 2022-10-14 11:38:17 +02:00
Marcos Casagrande 50c7b89369
fix(ext/web/streams): resolve cancelPromise in ReadableStreamTee (#16266) 2022-10-14 11:29:01 +02:00
Marcos Casagrande d47b17d37d
fix(ext/fetch): throw TypeError on read failure (#16219) 2022-10-12 09:23:33 +02:00
Marcos Casagrande cc3e2b9b1a
fix(ext/fetch): reject immediately on aborted signal (#16190)
Enabled the following test:

edc428e8e2/fetch/api/abort/general.any.js (L185-L201)
2022-10-08 16:08:47 -04:00
Marcos Casagrande 1fc1ae0005
test(ext/fetch): enable fetch/content-type/multipart.window WPT (#16209)
This PR enables the following test:

https://github.com/web-platform-tests/wpt/blob/master/fetch/content-type/multipart.window.js
2022-10-08 15:57:31 -04:00
Marcos Casagrande a5d55fe6ea
fix(ext/fetch): support empty formdata (#16165)
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-07 13:59:30 +02:00
Colin Ihrig c27234888f
fix(napi): move napi symbols file (#16179)
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-07 09:21:43 +05:30
Divy Srivastava 0b016a7fb8
feat(npm): implement Node API (#13633)
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-05 19:36:44 +05:30
Marcos Casagrande 569287b15b
perf(ext/fetch): consume body using ops (#16038)
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-04 15:48:50 +02:00
Filip Skokan aa710aac98
fix(ext/crypto): ecdh spki key import/export roundtrip (#16152) 2022-10-04 17:09:41 +05:30
Filip Skokan 7742ad77fa
fix(ext/crypto): curve25519 import export (#16140) 2022-10-03 23:06:25 -07:00
Bartek Iwańczuk 9c861ec430
chore(wpt): ignore some flaky tests (#16073) 2022-09-28 17:37:26 +02:00
Satya Rohith b312279e58
feat: implement Web Cache API (#15829) 2022-09-28 17:41:12 +05:30
Bartek Iwańczuk abdb6aad6e
chore(wpt): add ability to ignore a test file (#16056) 2022-09-27 23:32:17 +02:00
Divy Srivastava f02f2425d5
feat(ext/crypto): add x25519 and Ed25519 CFRG curves (#14119) 2022-09-27 17:43:42 +05:30
Divy Srivastava 11ced3c10e
chore: update wpt (#15979) 2022-09-22 14:37:50 +05:30
David Sherret 1464b756a4
refactor: move out test files from root testdata directory into sub directories (#15949) 2022-09-19 10:32:21 -04:00
Divy Srivastava 5fe660ecd7
perf(web): optimize encodeInto() (#15922) 2022-09-17 16:48:15 +05:30
Divy Srivastava 429759fe8b
chore: bump url crate to 2.3.0 (#15800) 2022-09-07 19:07:46 +05:30
Bartek Iwańczuk b62ef4d37b
refactor(cli): Remove cli/node dependency on cli/compat (#15654) 2022-08-29 20:19:54 +02:00
David Sherret 376665d115
fix: avoid global declaration collisions in cjs (#15608)
* Use a default stack size * 2 in debug for Windows because swc using so much stack size. We should look into this more later though.
2022-08-25 20:24:18 -04:00
David Sherret 0fe590bbcb
chore: fix publish for circular dependencies (#15598) 2022-08-25 17:01:02 -04:00
Nayeem Rahman 97954003cc
feat: queueMicrotask() error handling (#15522)
Adds error event dispatching for queueMicrotask(). Consequently unhandled errors are now reported with Deno.core.terminate(), which is immune to the existing quirk with plainly thrown errors (#14158).
2022-08-21 20:16:42 +02:00
Mathias Lafeldt 1848c7e361
Fix: Honor linter rules in CI and locally (#15492)
RUSTFLAGS take precedence over `target.<triple>.rustflags`. Therefore,
setting the env var globally in CI would always override whatever linter
rules are allowed or denied in .cargo/config.toml.

With this change, we ensure that problems are detected both in CI and
locally, using either cargo clippy or lint.js.
2022-08-19 08:17:18 -04:00
Divy Srivastava 25a109d9ea
chore(bench): add flash router benchmarks (#15495) 2022-08-19 15:54:54 +05:30
Divy Srivastava cd21cff299
feat(ext/flash): An optimized http/1.1 server (#15405)
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: Ben Noordhuis <info@bnoordhuis.nl>
Co-authored-by: crowlkats <crowlkats@toaxl.com>
Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
2022-08-18 17:35:02 +05:30
Bartek Iwańczuk 5a4f84a0e1
chore: upgrade rusty_v8 to 0.48.1 (#15310) 2022-08-15 14:12:11 +02:00
Mathias Lafeldt 883269f1f1
chore: move lint rules to cargo config for better editor integration (#15453) 2022-08-11 19:13:27 +05:30
David Sherret af618e3b8f
chore: make the start_release workflow go faster (#15416) 2022-08-08 19:31:45 -04:00
David Sherret 102595976f
chore: use gist for release instruction checklist (#15414) 2022-08-06 09:45:34 -04:00
Nayeem Rahman bfdce3cc35
chore(tools): update wpt setup to new spawn api (#15407) 2022-08-05 12:48:54 +02:00
Satya Rohith e98e0da8b2
fix(tools): upgrade to new Deno.spawn api (#15265) 2022-07-21 14:15:15 +05:30
Bartek Iwańczuk d53936eb7d
Reland "feat: add "unhandledrejection" event support" (#15211) 2022-07-20 20:28:19 +02:00
Dante Issaias 2b1f145c3e
chore(ext): update webgpu (#15059) 2022-07-20 02:22:26 +02:00
David Sherret 9b4ae0868d
chore: update deno automation to 0.12 (#15248) 2022-07-19 16:35:58 -04:00
David Sherret c79ab64b5d
chore: update docland and dotland release instructions (#15238) 2022-07-18 19:24:11 -04:00
Bartek Iwańczuk f9b692e68e
Revert "feat: add "unhandledrejection" event support (#12994) (#15080)" (#15210)
This reverts commit 1a7259b04b.
2022-07-15 01:06:20 +02:00
Bartek Iwańczuk 1a7259b04b
feat: add "unhandledrejection" event support (#12994) (#15080)
Relanding #12994 

This commit adds support for "unhandledrejection" event.

This event will trigger event listeners registered using:

"globalThis.addEventListener("unhandledrejection")
"globalThis.onunhandledrejection"
This is done by registering a default handler using
"Deno.core.setPromiseRejectCallback" that allows to
handle rejected promises in JavaScript instead of Rust.

This commit will make it possible to polyfill
"process.on("unhandledRejection")" in the Node compat
layer.

Co-authored-by: Colin Ihrig <cjihrig@gmail.com>
2022-07-14 22:39:20 +02:00
David Sherret be837ed70f
chore(ci): fix post publish for forwarding release commit back to main (#15088) 2022-07-05 15:15:45 -04:00
denobot ef312e0050 1.23.3 (#15081)
Co-authored-by: David Sherret <dsherret@gmail.com>
2022-07-05 14:24:40 -04:00
Bartek Iwańczuk 06934db883
Revert "feat: add "unhandledrejection" event support (#12994)" (#15075)
This reverts commit f7af0b01a5.
2022-07-04 23:34:39 +02:00
Bartek Iwańczuk f7af0b01a5
feat: add "unhandledrejection" event support (#12994)
This commit adds support for "unhandledrejection" event.

This event will trigger event listeners registered using:

"globalThis.addEventListener("unhandledrejection")
"globalThis.onunhandledrejection"
This is done by registering a default handler using
"Deno.core.setPromiseRejectCallback" that allows to
handle rejected promises in JavaScript instead of Rust.

This commit will make it possible to polyfill
"process.on("unhandledRejection")" in the Node compat
layer.

Co-authored-by: Colin Ihrig <cjihrig@gmail.com>
2022-07-04 21:14:58 +02:00
Rafael Ávila de Espíndola 2d15e926f9
fix: update to TypeScript 4.7.4 (#15022) 2022-07-04 15:13:50 +10:00
David Sherret 3d8ba30ea0
chore: forward 1.23.2 to main (#15027)
Co-authored-by: David Sherret <dsherret@gmail.com>
2022-06-30 18:01:08 -04:00
Mark Ladyshau 6743b3227b
fix(ext/web): remove ErrorEventInit's error default (#14809) 2022-06-29 14:29:08 +02:00
Luca Casonato 8d82ba7299
build: require safety comments on unsafe code (#13870)
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2022-06-26 00:13:24 +02:00
Mark Ladyshau 60869c2598
fix(ext/fetch): add accept-language default header to fetch (#14882) 2022-06-19 23:33:24 +02:00
David Sherret f564497630
fix(fmt): should fail --check on parse error (#14907) 2022-06-18 12:44:43 -04:00
Colin Ihrig 367e006e06
fix(ext/web): add EventTarget brand checking (#14637)
This commit adds brand checking to EventTarget. It also fixes a
bug where deno would crash if an abort signal was aborted on the
global addEventListener().
2022-06-17 11:05:02 -04:00
cjihrig 231b8fe27a update expectations 2022-06-16 12:05:33 -04:00
cjihrig 95312ab53a fix: make Performance global an EventTarget
This commit updates the Performance global to extend
EventTarget.
2022-06-16 12:05:33 -04:00
Kayla Washburn e1d488ab88
feature(web): enable deflate-raw compression format (#14863) 2022-06-14 10:10:28 -06:00
Divy Srivastava 4305bb4bd8
chore(bench): generalized HTTP benchmarks framework (#14815) 2022-06-08 17:33:38 +05:30
Luca Casonato bcff2d787b
tests: re-generate WPT certificates (#14774) 2022-06-02 00:50:48 +02:00
David Sherret da416f0249
fix(scripts/release): add unstable flag when running ./tools/format.js (#14743) 2022-05-27 12:14:37 -04:00
Mark Ladyshau 402b497299
fix(core): rethrow exception during structured cloning serialization (#14671)
- Introduced optional callback for Deno.core.serialize API, that returns
cloning error if there is one.
- Removed try/catch in seralize structured clone function and throw error from
callback.
- Removed "Object with a getter that throws" assertion from WPT.
2022-05-26 17:14:38 +02:00
Bartek Iwańczuk 3aa6d5d8b0
chore: upgrade rusty_v8 to 0.43.1 (#14713) 2022-05-26 13:13:01 +02:00
Leo Kettmeir 3c97bbe165
fix(ext/websocket): WebSocket dispatch single close event (#13443) 2022-05-23 13:21:11 +02:00
Leo Kettmeir 4e1ca1d178
refactor: use spawn API across codebase (#14414) 2022-05-18 22:00:11 +02:00
Colin Ihrig 1fa75f75c9
fix(ext/web): throw if listener and signal are null (#14601)
This commit fixes a failing WPT test by making EventTarget's
addEventListener() method throw if both the listener and the
signal option are null.

Fixes: https://github.com/denoland/deno/issues/14593
2022-05-16 10:46:39 -04:00
Geert-Jan Zwiers 0568be863b
feat(ext/web): add performance.toJSON (#14548) 2022-05-13 18:36:00 +02:00
Luca Casonato a5b50d0915
feat(ext/web): implement static Response.json (#14566)
This commit adds support for the static `Response.json` method.
2022-05-13 14:28:05 +02:00
Luca Casonato eed7afc3aa
chore: update wpt (#14592) 2022-05-13 13:34:53 +02:00
Luca Casonato 2f7f41533b
fix(ext/web): brand check in performance.timeOrigin (#14550) 2022-05-10 02:31:35 +02:00
Colin Ihrig ff49bd9e32
chore: improve release docs (#14506)
This commit fixes a typo and the test command used in deno_std.
2022-05-06 15:09:33 -04:00
Geert-Jan Zwiers dd1d6a0f67
feat(web): add performance.timeOrigin (#14489)
Add support for the `performance.timeOrigin` web API.

Co-authored-by: Jovi De Croock <decroockjovi@gmail.com>
2022-05-06 19:37:18 +02:00
Kitson Kelly ef26a267ae
fix(cli): add dom.extras lib (#14430)
Closes: #12558
Fixes: #14344
2022-04-29 13:47:58 +10:00
David Sherret 2724235ec7
chore: add release step failure instructions (#14352) 2022-04-21 12:33:37 -04:00
David Sherret 0cd61f2260
chore(scripts): allow running version_bump workflow without releasing deno_std yet (#14341) 2022-04-21 09:51:12 -04:00
denobot 29c8cd8aae
1.21.0 (#14336)
Co-authored-by: ry <ry@users.noreply.github.com>
Co-authored-by: David Sherret <dsherret@gmail.com>
2022-04-20 21:50:16 -04:00
Nayeem Rahman c30d95f2e3
feat(ext/web): add globalThis.reportError() (#13799) 2022-04-19 10:59:51 +02:00
Luca Casonato ca3b20df3c
chore: update wpt (#14313) 2022-04-18 21:17:19 +02:00
Feng Yu 32aaefd9ee
fix(tools/wpt): replace deprecated writeAllSync and writeAll (#14282) 2022-04-16 17:28:15 +02:00
David Sherret b4af648c15
chore: release fixes based on doing the v1.20.6 release (#14289) 2022-04-15 09:39:41 -04:00
Bartek Iwańczuk f7e7f54849
chore: use lock file for tooling scripts (#14253)
This commit adds lock file for maintenance scripts in "tools/"
directory. 

The lock file is stored in "tools/deno.lock.json".
2022-04-13 18:51:16 +02:00
Bartek Iwańczuk c154ac5168
chore: use local copy of std in tools/bench/ scripts (#14251) 2022-04-11 11:46:23 +02:00
David Sherret a4eee007ef
chore: update release instructions based on 1.20.5 release (#14239) 2022-04-08 12:32:25 -04:00
David Sherret b2aaf708ab
chore: forward v1.20.5 release commit to main (#14232) 2022-04-07 14:40:20 -04:00
David Sherret e33329b47e
chore(ci): automatically open PR to forward patch release back to main (#14180) 2022-04-04 14:56:29 -04:00
David Sherret fcd986875a
chore(ci): update deno_std release steps (#14178) 2022-04-04 09:37:54 -04:00
David Sherret c0ee027d34
chore(ci): automatically include releases notes in release draft (#14179) 2022-04-02 11:25:12 -04:00
David Sherret 8ca4c1819f
chore(ci): fix Releases.md creation and tag name (#14166) 2022-04-01 11:11:53 -04:00
David Sherret 5cab3e7dba
build: use workflows for bumping versions and cargo publishing on the CI (#13995) 2022-03-30 16:37:00 -04:00
David Sherret 92bb251058
chore: release script should automatically figure out CLI crate dependencies (#13992) 2022-03-16 20:33:14 -04:00
Ryan Dahl 163e1d6192
disable flakes (#13962) 2022-03-15 11:19:59 -04:00
Andreu Botella 9f494dc405
feat(ext/web): Add AbortSignal.timeout() (#13687) 2022-03-14 20:19:22 +01:00
Yoshiya Hinosawa 99816ad506
chore: fix file permissions of release scripts (#13901) 2022-03-10 23:29:49 +09:00
David Sherret a3d6be025c
chore: reduce release PRs from 2 to 1 (#13878) 2022-03-08 18:10:03 -05:00
David Sherret 96dc7421ae
chore: automatically update Releases.md when doing a release (#13837)
Co-authored-by: Aaron O'Mullan <aaron.omullan@gmail.com>
2022-03-04 22:28:23 -05:00
Satya Rohith 70690f54af
chore: update deps (#13821) 2022-03-05 03:38:04 +05:30
Satya Rohith 99904a668e
chore: update cut_a_release.md (#13822) 2022-03-04 09:00:55 +05:30
Kitson Kelly 1db7566e2a
docs: information about updating TypeScript version (#13810) 2022-03-03 13:08:01 +11:00
Divy Srivastava 8b2989c417
feat(ext/crypto): AES-GCM support for 128bit IVs (#13805) 2022-03-02 10:56:10 +05:30
David Sherret 4be0365fb8
chore(tools): use automation scripts from automation repo (#13796) 2022-03-01 15:40:32 -05:00
David Sherret 877c0b724e
chore: use rustfmt cli via dprint for faster format (#13735) 2022-02-21 12:47:08 -05:00
Andreu Botella 665ea9b5f0
chore: update wpt (#13679) 2022-02-16 14:33:34 +01:00