Casper Beyer
ce79cb5797
refactor(testing): redirect console output via reporter ( #11911 )
...
This feeds console output to the reporter and handles silencing there
instead of in the JavaScript code.
2021-09-04 15:16:35 +02:00
David Sherret
987716798f
feat(fmt): add basic JS doc formatting ( #11902 )
2021-09-02 18:28:12 -04:00
Andreu Botella
c49eee551f
feat(workers): Make the Deno
namespace configurable and unfrozen ( #11888 )
...
This is the worker counterpart of PR #11062 .
2021-08-31 19:33:03 +02:00
Luca Casonato
5d814a4c24
feat: ArrayBuffer in structured clone transfer ( #11840 )
2021-08-25 13:48:53 +02:00
Tilman Roeder
93d83a84db
feat(unstable): Add file locking APIs ( #11746 )
...
This commit adds following unstable APIs:
- Deno.flock()
- Deno.flockSync()
- Deno.funlock()
- Deno.funlockSync()
2021-08-24 15:21:31 +02:00
Yusuke Tanaka
4ae57d185e
chore: upgrade dlint and run prefer-primordials
rule ( #11777 )
2021-08-20 01:14:20 +02:00
Andreu Botella
ddbb7b83f2
feat(runtime): support classic workers for internal testing ( #11338 )
...
This commit implements classic workers, but only when the `--enable-testing-features-do-not-use` flag is provided. This change is not user facing. Classic workers are used extensively in WPT tests. The classic workers do not support loading from disk, and do not support TypeScript.
Co-authored-by: Luca Casonato <hello@lcas.dev>
2021-08-16 14:29:54 +02:00
Leo K
2db381eba9
feat: add experimental WebSocketStream API ( #10365 )
...
This commit adds the experimental WebSocketStream API when
using the --unstable flag.
The explainer for the API can be found here:
https://github.com/ricea/websocketstream-explainer
2021-08-10 00:28:17 +02:00
Leo K
16ae4a0d57
feat(extensions/web): add structuredClone function ( #11572 )
...
Co-authored-by: Luca Casonato <hello@lcas.dev>
2021-08-09 10:39:00 +02:00
Elias Sjögreen
33c8d790c3
feat: ffi to replace plugins ( #11152 )
...
This commit removes implementation of "native plugins" and replaces
it with FFI API.
Effectively "Deno.openPlugin" API was replaced with "Deno.dlopen" API.
2021-08-06 23:28:10 +02:00
Bartek Iwańczuk
0d1a522a03
revert: allow URL for permissions ( #11600 )
...
Revert changes to "net" permissions in regards to handling URLs
introduced in 15b0e61de
.
2021-08-06 21:10:04 +02:00
Benjamin Gruenbaum
2b53602d3c
feat: support AbortSignal in writeFile ( #11568 )
2021-08-06 10:21:29 -07:00
Leo K
15b0e61de5
feat(runtime): allow URL for permissions ( #11578 )
2021-08-06 15:04:00 +02:00
Leo K
2ac031d6fd
feat(unstable): clean environmental variables for subprocess ( #11571 )
...
This commit adds "Deno.RunOptions.clearEnv" option, that allows
to clear environmental variables from parent process before spawning
a subprocess.
2021-08-04 21:47:43 +02:00
Bartek Iwańczuk
3a2e94492b
feat: stabilize Deno.serveHttp() ( #11544 )
...
This commit moves "Deno.serveHttp()" and related types
to stable namespace.
2021-08-02 14:40:46 +02:00
Divy Srivastava
2b13bb6945
feat(runtime): implement navigator.hardwareConcurrency ( #11448 )
...
This commit implements "navigator.hardwareConcurrency" API, which
supersedes "Deno.systemCpuInfo()" API (which was removed in this commit).
2021-07-29 21:45:11 +02:00
Yusuke Tanaka
865d9ddd51
refactor: use primordials
in runtime, extensions and core ( #11500 )
2021-07-26 13:52:59 +02:00
Aaron O'Mullan
3e08b6ae89
cleanup(runtime): remove last references to Deno.core.sharedQueue ( #11503 )
...
`Deno.core.sharedQueue` was killed in #9843
2021-07-23 10:53:51 -07:00
Casper Beyer
69ca44d8e2
refactor(cli/tools/test_runner): split reporter into distinct stages ( #11395 )
...
This splits up the reporter into smaller functions, one for each
distinct event that happens during the testing process.
2021-07-14 21:05:16 +02:00
Casper Beyer
9cb48bd8fe
refactor(runtime): apply permissions as a hook during registration ( #11347 )
2021-07-14 00:11:02 +02:00
Luca Casonato
f649960f87
refactor: deno_http op crate ( #11335 )
2021-07-12 12:44:49 +02:00
Ryan Dahl
511c48a03a
Revert "Remove unstable native plugins ( #10908 )"
...
This reverts commit 7dd4090c2a
.
2021-07-11 18:12:26 -07:00
Andreu Botella
eea6000ef6
fix: align DedicatedWorkerGlobalScope event handlers to spec ( #11353 )
2021-07-10 23:32:10 +02:00
Leo K
5e092b19fe
feat(runtime/http): server side websocket support ( #10359 )
...
Co-authored-by: Nayeem Rahman <nayeemrmn99@gmail.com>
Co-authored-by: Luca Casonato <hello@lcas.dev>
2021-07-08 13:33:01 +02:00
Luca Casonato
215f6f2c9e
chore: update wgpu to 0.9.0 ( #11315 )
2021-07-08 11:07:49 +02:00
Divy Srivastava
570309d795
feat(crypto): implement generateKey() and sign() ( #9614 )
...
Co-authored-by: Luca Casonato <hello@lcas.dev>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-07-06 14:16:04 +02:00
Casper Beyer
e8258e0210
feat(test): add --shuffle flag to randomize test ordering ( #11163 )
2021-07-05 21:20:33 -04:00
Casper Beyer
407de8b834
fix(runtime): ignored tests should not cause permission changes ( #11278 )
2021-07-05 18:36:43 +02:00
Casper Beyer
c4cc353d59
refactor(runtime): reduce duplication in test harness ( #11274 )
2021-07-05 10:26:57 +02:00
Simon Rask
a8f9ac654d
fix: primordials in extensions/net and runtime/js ( #11270 )
2021-07-04 17:26:38 +02:00
Bartek Iwańczuk
5addba2abc
refactor: use primordials in runtime/, part2 ( #11248 )
2021-07-04 00:17:52 +02:00
Andreu Botella
ffa75be480
feat: enable WebAssembly.instantiateStreaming and wasm async compilation ( #11200 )
...
The WebAssembly streaming APIs used to be enabled, but used to take
buffer sources as their first argument (see #6154 and #7259 ). This
change re-enables them, requiring a Promise<Response> instead, as well as
enabling asynchronous compilation of WebAssembly modules.
2021-07-03 23:33:36 +02:00
Luca Casonato
bf39b883d6
refactor: introduce primordials for ext/web ( #11228 )
2021-07-03 21:32:28 +02:00
Simon Rask
51de4e1f7c
refactor: use primordials for 13_buffer.js
and 30_fs.js
( #11247 )
2021-07-03 17:17:23 +02:00
Bartek Iwańczuk
6137c8046d
refactor: use primordials in runtime/, part1 ( #11241 )
2021-07-03 16:58:08 +02:00
Bartek Iwańczuk
7dd4090c2a
Remove unstable native plugins ( #10908 )
...
This commit removes implementation of native plugins
alongside the unstable "Deno.openPlugin()" API.
2021-07-02 16:11:23 +02:00
Bartek Iwańczuk
38a7128cdd
feat: Add "deno_net" extension ( #11150 )
...
This commits moves implementation of net related APIs available on "Deno"
namespace to "deno_net" extension.
Following APIs were moved:
- Deno.listen()
- Deno.connect()
- Deno.listenTls()
- Deno.serveHttp()
- Deno.shutdown()
- Deno.resolveDns()
- Deno.listenDatagram()
- Deno.startTls()
- Deno.Conn
- Deno.Listener
- Deno.DatagramConn
2021-06-29 01:43:03 +02:00
Bartek Iwańczuk
7b9737b9f4
feat(inspector): pipe console messages between terminal and inspector ( #11134 )
...
This commit adds support for piping console messages to inspector.
This is done by "wrapping" Deno's console implementation with default
console provided by V8 by the means of "Deno.core.callConsole" binding.
Effectively each call to "console.*" methods calls a method on Deno's
console and V8's console.
2021-06-27 02:27:50 +02:00
Luca Casonato
40b083c540
fix: specify AbortSignal for native http requests ( #11126 )
2021-06-26 00:01:25 +02:00
Yoshiya Hinosawa
d832d2bfd1
chore(ext/console): deprecate Deno.customInspect ( #10035 )
...
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-06-25 16:19:18 +09:00
Benjamin Gruenbaum
20b0a5125a
feat(core): support AbortSignal in readFile ( #10943 )
2021-06-22 11:45:26 -04:00
Luca Casonato
6261c89e04
feat: transfer MessagePort between workers ( #11076 )
...
Add support for transferring `MessagePort`s between workers.
2021-06-22 16:30:16 +02:00
Yoshiya Hinosawa
4e3ec47857
fix(runtime): fix signal promise API ( #11069 )
2021-06-22 15:17:44 +09:00
Muthu Kumar
388274e02e
fix: move stable/unstable types/APIs to their correct places ( #10880 )
...
- Moved ppid and memoryUsage types from deno.unstable to deno.ns.
- Moved sleepSync to unstable object, shutdown to stable object.
2021-06-22 03:03:00 +02:00
Kitson Kelly
cda15f2a98
feat: Deno namespace configurable and unfrozen ( #11062 )
...
Closes #11033
2021-06-22 07:17:35 +10:00
Luca Casonato
f9ff981daf
feat: MessageChannel
and MessagePort
( #11051 )
...
This commit introduces support for MessageChannel and MessagePort.
MessagePorts can be transfered across other MessagePorts.
2021-06-21 19:53:52 +02:00
Luca Casonato
4cbc4a7eb3
fix: make WHATWG streams more compliant ( #10967 )
2021-06-15 13:46:02 +02:00
Kitson Kelly
e779ea9565
fix(runtime): early binding to dispatchEvent in workers ( #10904 )
2021-06-09 22:21:02 +10:00
Satya Rohith
b6400a25a0
refactor(runtime): move performance API to timers extension ( #10818 )
...
Co-authored-by: Luca Casonato <hello@lcas.dev>
2021-06-07 14:19:33 +02:00
Luca Casonato
1fb2e23a67
feat(fetch): implement abort ( #10863 )
...
This commit introduces fetch aborting via an AbortSignal.
2021-06-06 15:37:17 +02:00
Casper Beyer
3f9187c366
feat(extensions/crypto): implement subtle.digest ( #10796 )
...
Co-authored-by: Yacine Hmito yacinehmito@users.noreply.github.com
2021-06-06 12:57:10 +02:00
Andreu Botella
62bf403157
feat(web): Implement TextDecoderStream and TextEncoderStream ( #10842 )
2021-06-06 03:23:16 +02:00
Luca Casonato
c73ef5fa14
refactor(web): use encoding_rs for text encoding ( #10844 )
...
This commit removes all JS based text encoding / text decoding. Instead
encoding now happens in Rust via encoding_rs (already in tree). This
implementation retains stream support, but adds the last missing
encodings. We are incredibly close to 100% WPT on text encoding now.
This should reduce our baseline heap by quite a bit.
2021-06-05 23:10:07 +02:00
Leo K
bb0c90cadb
fix(crypto): change Crypto to interface ( #10853 )
...
Co-authored-by: Luca Casonato <hello@lcas.dev>
2021-06-05 22:56:59 +02:00
Leo K
b748415baf
fix(streams): expose ReadableByteStreamController & TransformStreamDefaultController ( #10855 )
2021-06-05 19:32:05 +02:00
Elad Keyshawn
4b3d55b449
webutil: replace cloneValue impl with serialize/deserialize ( #10215 )
...
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-06-05 15:57:51 +02:00
Casper Beyer
55e962b688
feat(cli): support URL overload for Deno.chdir
( #10793 )
2021-06-03 16:32:18 +02:00
Casper Beyer
ece56d9935
feat(runtime): support URL overloads for Deno.symlink
and Deno.symlinkSync
( #10664 )
2021-06-03 16:16:00 +02:00
Casper Beyer
dc69b03339
feat(runtime): support URL overloads for Deno.rename/Deno.renameSync ( #10512 )
2021-06-03 16:14:37 +02:00
Yoshiya Hinosawa
595700c993
feat: add FsWatcher interface ( #10798 )
2021-06-01 15:35:06 +09:00
Casper Beyer
330cd6b7ea
feat(cli): support URL overloads for Deno.utime
and Deno.utimeSync
( #10792 )
2021-05-31 20:05:57 +02:00
Kitson Kelly
59237d195f
feat(cli): upgrade to TypeScript 4.3 ( #9960 )
2021-05-28 09:33:11 +10:00
Ben Noordhuis
8cf7f966f2
feat(extensions): add BroadcastChannel
...
Co-Authored-By: Ben Noordhuis <info@bnoordhuis.nl>
Fixes: #10354
2021-05-23 15:16:42 +02:00
Yoshiya Hinosawa
4a9b40b717
fix(runtime/http): fix empty blob response ( #10689 )
2021-05-21 10:11:53 +09:00
Nayeem Rahman
b43b639f45
fix(runtime/http): expose nextRequest() errors in respondWith() ( #10384 )
2021-05-19 21:39:52 +09:00
Yusuke Tanaka
cda09c166f
chore: update deno_lint binary used in CI to v0.5.0 ( #10652 )
2021-05-18 17:24:01 +02:00
Casper Beyer
910935c071
feat(runtime): support urls for Deno.realPath
and Deno.realPathSync
( #10626 )
2021-05-17 06:31:21 +02:00
Tim Ramlot
635253bd3a
feat(runtime/worker): Structured cloning worker message passing ( #9323 )
...
This commit upgrade "Worker.postMessage()" implementation to use
structured clone algorithm instead of non-spec compliant JSON serialization.
2021-05-11 21:09:09 +02:00
crowlKats
dfe528198d
feat: add WebStorage API ( #7819 )
...
This commit introduces localStorage and sessionStorage.
2021-05-10 12:02:47 +02:00
Elias Sjögreen
4ed1428c34
fix: align plugin api with Extension ( #10427 )
2021-05-07 09:45:07 -04:00
Luca Casonato
f208e6a26f
chore: update wgpu and realign to spec ( #9760 )
2021-05-06 16:48:45 +02:00
Aaron O'Mullan
d21380728f
fix(core): error registration could pollute constructors ( #10422 )
...
Co-authored-by: Luca Casonato <lucacasonato@yahoo.com>
2021-05-03 17:30:41 +02:00
Aaron O'Mullan
8922639c1d
refactor(core.js): provide window.__bootstrap ( #10423 )
2021-04-30 08:13:23 -04:00
Casper Beyer
c455c28b83
feat(test): run test modules in parallel ( #9815 )
...
This commit adds support for running test in parallel.
Entire test runner functionality has been rewritten
from JavaScript to Rust and a set of ops was added to support reporting in Rust.
A new "--jobs" flag was added to "deno test" that allows to configure
how many threads will be used. When given no value it defaults to 2.
2021-04-28 20:17:04 +02:00
Satya Rohith
2bd087ab1b
chore: upgrade dprint plugins ( #10397 )
2021-04-28 10:08:51 -04:00
Casper Beyer
f3751e498f
feat(cli): add test permissions to Deno.test ( #10188 )
...
This commits adds adds "permissions" option to the test definitions
which allows tests to run with different permission sets than
the process's permission.
The change will only be in effect within the test function, once the
test has completed the original process permission set is restored.
Test permissions cannot exceed the process's permission.
You can only narrow or drop permissions, failure to acquire a
permission results in an error being thrown and the test case will fail.
2021-04-25 23:38:59 +02:00
Nayeem Rahman
fb1ccc3d88
refactor(cli): rename Deno.emit() bundle options to "module" and "classic" ( #10332 )
2021-04-26 06:54:57 +10:00
Aaron O'Mullan
83bece56b0
refactor(core): move op cache sync responsibility to rust space ( #10340 )
...
Even if bootstrapping the JS runtime is low level, it's an abstraction leak of
core to require users to call `Deno.core.ops()` in JS space.
So instead we're introducing a `JsRuntime::sync_ops_cache()` method,
once we have runtime extensions a new runtime will ensure the ops
cache is setup (for the provided extensions) and then loading/unloading
plugins should be the only operations that require op cache syncs
2021-04-25 22:00:05 +02:00
Nayeem Rahman
8a416a5ba2
fix(runtime/js/http): cancel body on response failure ( #10225 )
2021-04-23 12:34:04 +02:00
Aaron O'Mullan
ff9ff4a377
refactor(core): simplify error handling ( #10297 )
...
- register builtin v8 errors in core.js so consumers don't have to
- remove complexity of error args handling (consumers must provide a
constructor with custom args, core simply provides msg arg)
2021-04-21 20:50:50 -04:00
Luca Casonato
9e6cd91014
chore: align fetch to spec ( #10203 )
...
This commit aligns the `fetch` API and the `Request` / `Response`
classes belonging to it to the spec. This commit enables all the
relevant `fetch` WPT tests. Spec compliance is now at around 90%.
Performance is essentially identical now (within 1% of 1.9.0).
2021-04-20 14:47:22 +02:00
Kitson Kelly
b6203cb465
revert: Conn type changes in #10012 and #10061 ( #10255 )
...
Fixes #10200 (again)
This reverts commit 9c7c9a35c1
and a8057e3e06
.
2021-04-20 10:12:33 +10:00
Kitson Kelly
9c7c9a35c1
fix( #10200 ): weaken types so non-breaking ( #10205 )
...
Fixes #10200
2021-04-16 22:34:29 +10:00
Ryan Dahl
fe9cee620a
fix( #10182 ): hang during http server response ( #10197 )
2021-04-15 18:48:56 -04:00
Luca Casonato
353e79c796
chore: align FormData to spec ( #10169 )
...
This PR aligns `FormData` to spec. All WPT tests are passing.
2021-04-14 22:49:16 +02:00
Ben Noordhuis
5214acd3d9
refactor: move timers to deno_timers op crate ( #10179 )
...
Move timers out of runtime/ and into a standalone op crate.
2021-04-14 21:10:48 +02:00
Aaron O'Mullan
83f6d4bf94
perf(js/http): avoid v8 deopt in async iterator ( #10160 )
2021-04-14 07:56:14 -04:00
Nayeem Rahman
df49a8462c
fix(cli/dts): Make respondWith() return a Promise ( #10128 )
2021-04-13 07:41:47 -04:00
Luca Casonato
dabce813e0
perf: lazy header instantiation for HTTP requests ( #10150 )
...
This commit introduces a performance optimization for the native HTTP
server. From my testing it is about 2-6% faster than `main`. Request
headers in the HTTP servers are now lazilly instatated when they are
accessed, rather than being preemptively wrapped in the `Headers` class.
2021-04-13 02:46:33 +02:00
Aaron O'Mullan
46b1c653c0
refactor(deno): remove concept of bin & json ops ( #10145 )
2021-04-12 15:55:05 -04:00
Nayeem Rahman
a20504642d
fix(runtime/js/http): Correctly parse user response headers ( #10076 )
2021-04-12 10:24:45 -04:00
Casper Beyer
9d53dab4df
feat(runtime): add truncate and truncateSync methods to Deno.File ( #10130 )
2021-04-12 14:32:58 +02:00
Casper Beyer
da9219341f
feat(runtime): add stat and statSync methods to Deno.File ( #10107 )
2021-04-12 13:33:05 +02:00
Casper Beyer
875ac73f1e
feat(runtime): stabilize Deno.fstat and Deno.fstatSync ( #10108 )
...
This commit stabilizes Deno.fstat and Deno.fstatSync
which are well known system calls and have a stable interface.
2021-04-12 11:27:38 +02:00
Aaron O'Mullan
bf99039ea9
feat: Add Deno.memoryUsage() ( #9986 )
2021-04-12 10:47:44 +02:00
Nayeem Rahman
8b49d948f5
fix(runtime/js/timers): Use (0, eval) instead of eval() ( #10103 )
2021-04-12 01:40:42 +02:00
Casper Beyer
f5a9474952
feat: stabilize Deno.ftruncate and Deno.ftruncateSync ( #10126 )
...
This stabilizes Deno.ftruncate and Deno.ftruncateSync.
This is a well known system call and the interface is
not going to change. Implicitly requires write permissions
as the file has to be opened with write to be truncated.
2021-04-11 14:05:22 +02:00
Luca Casonato
8d55d8b6be
feat(unstable): ALPN config in listenTls ( #10065 )
...
This commit adds the ability for users to configure ALPN protocols when
calling `Deno.listenTls`.
2021-04-10 22:04:44 +02:00
Ryan Dahl
c6e7a243d5
API change: Deno.startHttp -> Deno.serveHttp ( #10087 )
2021-04-09 11:54:27 -04:00
Bartek Iwańczuk
70af812876
feat: native HTTP bindings ( #9935 )
...
Co-authered-by: Luca Casonato <lucacasonato@yahoo.com>
Co-authered-by: Ben Noordhuis <info@bnoordhuis.nl>
Co-authered-by: Ryan Dahl <ry@tinyclouds.org>
2021-04-08 18:34:15 -04:00