From 22426fee1ee37149175a564c6102a6a3ca99fb42 Mon Sep 17 00:00:00 2001 From: Yusuke Tanaka Date: Wed, 19 May 2021 00:24:01 +0900 Subject: chore: update deno_lint binary used in CI to v0.5.0 (#10652) --- runtime/js/11_workers.js | 1 - runtime/js/40_http.js | 1 + runtime/js/40_testing.js | 2 +- runtime/js/99_main.js | 2 -- 4 files changed, 2 insertions(+), 4 deletions(-) (limited to 'runtime') diff --git a/runtime/js/11_workers.js b/runtime/js/11_workers.js index dca83c818..641833778 100644 --- a/runtime/js/11_workers.js +++ b/runtime/js/11_workers.js @@ -7,7 +7,6 @@ const { getLocationHref } = window.__bootstrap.location; const { log, pathFromURL } = window.__bootstrap.util; const { defineEventHandler } = window.__bootstrap.webUtil; - const build = window.__bootstrap.build.build; function createWorker( specifier, diff --git a/runtime/js/40_http.js b/runtime/js/40_http.js index afc5635ac..eb3c58a63 100644 --- a/runtime/js/40_http.js +++ b/runtime/js/40_http.js @@ -77,6 +77,7 @@ } [Symbol.asyncIterator]() { + // deno-lint-ignore no-this-alias const httpConn = this; return { async next() { diff --git a/runtime/js/40_testing.js b/runtime/js/40_testing.js index f835a0cf7..8abb8a6c8 100644 --- a/runtime/js/40_testing.js +++ b/runtime/js/40_testing.js @@ -4,7 +4,7 @@ ((window) => { const core = window.Deno.core; const { parsePermissions } = window.__bootstrap.worker; - const { setExitHandler, exit } = window.__bootstrap.os; + const { setExitHandler } = window.__bootstrap.os; const { Console, inspectArgs } = window.__bootstrap.console; const { metrics } = window.__bootstrap.metrics; const { assert } = window.__bootstrap.util; diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js index 082c83593..796d5178f 100644 --- a/runtime/js/99_main.js +++ b/runtime/js/99_main.js @@ -59,8 +59,6 @@ delete Object.prototype.__proto__; } } - const encoder = new TextEncoder(); - function workerClose() { if (isClosing) { return; -- cgit v1.2.3 From 218ba031f06919b1871b4d360e5ae6c5cc777f35 Mon Sep 17 00:00:00 2001 From: Nayeem Rahman Date: Wed, 19 May 2021 13:39:52 +0100 Subject: fix(runtime/http): expose nextRequest() errors in respondWith() (#10384) --- runtime/js/40_http.js | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'runtime') diff --git a/runtime/js/40_http.js b/runtime/js/40_http.js index eb3c58a63..eb4d214ca 100644 --- a/runtime/js/40_http.js +++ b/runtime/js/40_http.js @@ -14,6 +14,8 @@ return new HttpConn(rid); } + const connErrorSymbol = Symbol("connError"); + class HttpConn { #rid = 0; @@ -35,10 +37,16 @@ this.#rid, ); } catch (error) { + // A connection error seen here would cause disrupted responses to throw + // a generic `BadResource` error. Instead store this error and replace + // those with it. + this[connErrorSymbol] = error; if (error instanceof errors.BadResource) { return null; } else if (error instanceof errors.Interrupted) { return null; + } else if (error.message.includes("connection closed")) { + return null; } throw error; } @@ -66,7 +74,7 @@ ); const request = fromInnerRequest(innerRequest, "immutable"); - const respondWith = createRespondWith(responseSenderRid, this.#rid); + const respondWith = createRespondWith(this, responseSenderRid); return { request, respondWith }; } @@ -97,7 +105,7 @@ ); } - function createRespondWith(responseSenderRid) { + function createRespondWith(httpConn, responseSenderRid) { return async function respondWith(resp) { if (resp instanceof Promise) { resp = await resp; @@ -145,6 +153,11 @@ innerResp.headerList, ], respBody instanceof Uint8Array ? respBody : null); } catch (error) { + const connError = httpConn[connErrorSymbol]; + if (error instanceof errors.BadResource && connError != null) { + // deno-lint-ignore no-ex-assign + error = new connError.constructor(connError.message); + } if (respBody !== null && respBody instanceof ReadableStream) { await respBody.cancel(error); } @@ -173,6 +186,11 @@ value, ); } catch (error) { + const connError = httpConn[connErrorSymbol]; + if (error instanceof errors.BadResource && connError != null) { + // deno-lint-ignore no-ex-assign + error = new connError.constructor(connError.message); + } await reader.cancel(error); throw error; } @@ -180,7 +198,9 @@ } finally { // Once all chunks are sent, and the request body is closed, we can // close the response body. - await Deno.core.opAsync("op_http_response_close", responseBodyRid); + try { + await Deno.core.opAsync("op_http_response_close", responseBodyRid); + } catch { /* pass */ } } } }; -- cgit v1.2.3 From 7b1fd3d146292df01f61e9eb0202779be8d7da33 Mon Sep 17 00:00:00 2001 From: Yoshiya Hinosawa Date: Fri, 21 May 2021 10:11:53 +0900 Subject: fix(runtime/http): fix empty blob response (#10689) --- runtime/js/40_http.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'runtime') diff --git a/runtime/js/40_http.js b/runtime/js/40_http.js index eb4d214ca..d4b658314 100644 --- a/runtime/js/40_http.js +++ b/runtime/js/40_http.js @@ -132,10 +132,13 @@ } else { const reader = innerResp.body.stream.getReader(); const r1 = await reader.read(); - if (r1.done) throw new TypeError("Unreachable"); - respBody = r1.value; - const r2 = await reader.read(); - if (!r2.done) throw new TypeError("Unreachable"); + if (r1.done) { + respBody = new Uint8Array(0); + } else { + respBody = r1.value; + const r2 = await reader.read(); + if (!r2.done) throw new TypeError("Unreachable"); + } } } else { innerResp.body.streamOrStatic.consumed = true; -- cgit v1.2.3 From 283e7ca92bb009a950211ad0ab701288ff62c009 Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Sat, 29 May 2021 00:19:26 +0200 Subject: chore: release web extension@0.38.0 (#10773) --- runtime/Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'runtime') diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 5758219d8..b14c926f9 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -25,7 +25,7 @@ deno_fetch = { version = "0.29.0", path = "../extensions/fetch" } deno_file = { version = "0.6.0", path = "../extensions/file" } deno_timers = { version = "0.5.0", path = "../extensions/timers" } deno_url = { version = "0.7.0", path = "../extensions/url" } -deno_web = { version = "0.37.0", path = "../extensions/web" } +deno_web = { version = "0.38.0", path = "../extensions/web" } deno_webgpu = { version = "0.8.0", path = "../extensions/webgpu" } deno_webidl = { version = "0.7.0", path = "../extensions/webidl" } deno_websocket = { version = "0.12.0", path = "../extensions/websocket" } @@ -43,7 +43,7 @@ deno_fetch = { version = "0.29.0", path = "../extensions/fetch" } deno_file = { version = "0.6.0", path = "../extensions/file" } deno_timers = { version = "0.5.0", path = "../extensions/timers" } deno_url = { version = "0.7.0", path = "../extensions/url" } -deno_web = { version = "0.37.0", path = "../extensions/web" } +deno_web = { version = "0.38.0", path = "../extensions/web" } deno_webgpu = { version = "0.8.0", path = "../extensions/webgpu" } deno_webidl = { version = "0.7.0", path = "../extensions/webidl" } deno_websocket = { version = "0.12.0", path = "../extensions/websocket" } -- cgit v1.2.3 From 475bc35646bc25d796b2638768cd5a79e3a0033e Mon Sep 17 00:00:00 2001 From: Yusuke Tanaka Date: Sat, 29 May 2021 20:18:24 +0900 Subject: chore: upgrade Tokio to 1.6.1 (#10782) --- runtime/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime') diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index b14c926f9..c2cf00b0b 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -68,7 +68,7 @@ rustls = "0.19.0" serde = { version = "1.0.125", features = ["derive"] } sys-info = "0.9.0" termcolor = "1.1.2" -tokio = { version = "1.6.0", features = ["full"] } +tokio = { version = "1.6.1", features = ["full"] } tokio-util = { version = "0.6", features = ["io"] } uuid = { version = "0.8.2", features = ["v4"] } webpki = "0.21.4" -- cgit v1.2.3 From 1567c1013cc8ff12cf039137792da66a1d0015b5 Mon Sep 17 00:00:00 2001 From: Bert Belder Date: Mon, 31 May 2021 17:39:24 +0000 Subject: v1.10.3 --- runtime/Cargo.toml | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) (limited to 'runtime') diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index c2cf00b0b..786b7f552 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno_runtime" -version = "0.15.0" +version = "0.15.1" license = "MIT" authors = ["the Deno authors"] edition = "2018" @@ -18,36 +18,36 @@ name = "hello_runtime" path = "examples/hello_runtime.rs" [build-dependencies] -deno_console = { version = "0.7.0", path = "../extensions/console" } -deno_core = { version = "0.88.0", path = "../core" } -deno_crypto = { version = "0.21.0", path = "../extensions/crypto" } -deno_fetch = { version = "0.29.0", path = "../extensions/fetch" } -deno_file = { version = "0.6.0", path = "../extensions/file" } -deno_timers = { version = "0.5.0", path = "../extensions/timers" } -deno_url = { version = "0.7.0", path = "../extensions/url" } -deno_web = { version = "0.38.0", path = "../extensions/web" } -deno_webgpu = { version = "0.8.0", path = "../extensions/webgpu" } -deno_webidl = { version = "0.7.0", path = "../extensions/webidl" } -deno_websocket = { version = "0.12.0", path = "../extensions/websocket" } -deno_webstorage = { version = "0.2.0", path = "../extensions/webstorage" } +deno_console = { version = "0.7.1", path = "../extensions/console" } +deno_core = { version = "0.88.1", path = "../core" } +deno_crypto = { version = "0.21.1", path = "../extensions/crypto" } +deno_fetch = { version = "0.29.1", path = "../extensions/fetch" } +deno_file = { version = "0.6.1", path = "../extensions/file" } +deno_timers = { version = "0.5.1", path = "../extensions/timers" } +deno_url = { version = "0.7.1", path = "../extensions/url" } +deno_web = { version = "0.38.1", path = "../extensions/web" } +deno_webgpu = { version = "0.8.1", path = "../extensions/webgpu" } +deno_webidl = { version = "0.7.1", path = "../extensions/webidl" } +deno_websocket = { version = "0.12.1", path = "../extensions/websocket" } +deno_webstorage = { version = "0.2.1", path = "../extensions/webstorage" } [target.'cfg(windows)'.build-dependencies] winres = "0.1.11" winapi = "0.3.9" [dependencies] -deno_console = { version = "0.7.0", path = "../extensions/console" } -deno_core = { version = "0.88.0", path = "../core" } -deno_crypto = { version = "0.21.0", path = "../extensions/crypto" } -deno_fetch = { version = "0.29.0", path = "../extensions/fetch" } -deno_file = { version = "0.6.0", path = "../extensions/file" } -deno_timers = { version = "0.5.0", path = "../extensions/timers" } -deno_url = { version = "0.7.0", path = "../extensions/url" } -deno_web = { version = "0.38.0", path = "../extensions/web" } -deno_webgpu = { version = "0.8.0", path = "../extensions/webgpu" } -deno_webidl = { version = "0.7.0", path = "../extensions/webidl" } -deno_websocket = { version = "0.12.0", path = "../extensions/websocket" } -deno_webstorage = { version = "0.2.0", path = "../extensions/webstorage" } +deno_console = { version = "0.7.1", path = "../extensions/console" } +deno_core = { version = "0.88.1", path = "../core" } +deno_crypto = { version = "0.21.1", path = "../extensions/crypto" } +deno_fetch = { version = "0.29.1", path = "../extensions/fetch" } +deno_file = { version = "0.6.1", path = "../extensions/file" } +deno_timers = { version = "0.5.1", path = "../extensions/timers" } +deno_url = { version = "0.7.1", path = "../extensions/url" } +deno_web = { version = "0.38.1", path = "../extensions/web" } +deno_webgpu = { version = "0.8.1", path = "../extensions/webgpu" } +deno_webidl = { version = "0.7.1", path = "../extensions/webidl" } +deno_websocket = { version = "0.12.1", path = "../extensions/websocket" } +deno_webstorage = { version = "0.2.1", path = "../extensions/webstorage" } atty = "0.2.14" bytes = "1" -- cgit v1.2.3