From e55dee7fd894f705a0268a4734b00197021f0617 Mon Sep 17 00:00:00 2001 From: Leo Kettmeir Date: Sat, 19 Mar 2022 13:57:37 +0100 Subject: [PATCH] refactor: cleanup assert() & AssertionError definitions (#13859) --- ext/web/00_infra.js | 21 +++++++++++++++++++++ ext/web/02_timers.js | 21 +-------------------- ext/web/06_streams.js | 20 +------------------- runtime/js/06_util.js | 16 ---------------- runtime/js/13_buffer.js | 2 +- runtime/js/40_process.js | 3 ++- runtime/js/40_testing.js | 4 ++-- runtime/js/99_main.js | 3 ++- 8 files changed, 30 insertions(+), 60 deletions(-) diff --git a/ext/web/00_infra.js b/ext/web/00_infra.js index a250dd69b93e59..f46316bfed7e93 100644 --- a/ext/web/00_infra.js +++ b/ext/web/00_infra.js @@ -11,6 +11,7 @@ ((window) => { const core = Deno.core; const { + Error, RegExp, ArrayPrototypeMap, StringPrototypeCharCodeAt, @@ -275,6 +276,24 @@ return StringPrototypeMatch(s, HTTP_BETWEEN_WHITESPACE)?.[1] ?? ""; } + class AssertionError extends Error { + constructor(msg) { + super(msg); + this.name = "AssertionError"; + } + } + + /** + * @param {unknown} cond + * @param {string=} msg + * @returns {asserts cond} + */ + function assert(cond, msg = "Assertion failed.") { + if (!cond) { + throw new AssertionError(msg); + } + } + window.__bootstrap.infra = { collectSequenceOfCodepoints, ASCII_DIGIT, @@ -299,5 +318,7 @@ collectHttpQuotedString, forgivingBase64Encode, forgivingBase64Decode, + AssertionError, + assert, }; })(globalThis); diff --git a/ext/web/02_timers.js b/ext/web/02_timers.js index a0b1deb457bc95..808d995638e242 100644 --- a/ext/web/02_timers.js +++ b/ext/web/02_timers.js @@ -6,7 +6,6 @@ const { ArrayPrototypePush, ArrayPrototypeShift, - Error, FunctionPrototypeCall, Map, MapPrototypeDelete, @@ -22,25 +21,7 @@ TypeError, } = window.__bootstrap.primordials; const { webidl } = window.__bootstrap; - - // Shamelessly cribbed from extensions/fetch/11_streams.js - class AssertionError extends Error { - constructor(msg) { - super(msg); - this.name = "AssertionError"; - } - } - - /** - * @param {unknown} cond - * @param {string=} msg - * @returns {asserts cond} - */ - function assert(cond, msg = "Assertion failed.") { - if (!cond) { - throw new AssertionError(msg); - } - } + const { assert } = window.__bootstrap.infra; function opNow() { return core.opSync("op_now"); diff --git a/ext/web/06_streams.js b/ext/web/06_streams.js index 777ad152b74716..7ef5a613177426 100644 --- a/ext/web/06_streams.js +++ b/ext/web/06_streams.js @@ -21,7 +21,6 @@ BigInt64ArrayPrototype, BigUint64ArrayPrototype, DataView, - Error, Int8ArrayPrototype, Int16ArrayPrototype, Int32ArrayPrototype, @@ -58,24 +57,7 @@ WeakMapPrototypeSet, } = globalThis.__bootstrap.primordials; const consoleInternal = window.__bootstrap.console; - - class AssertionError extends Error { - constructor(msg) { - super(msg); - this.name = "AssertionError"; - } - } - - /** - * @param {unknown} cond - * @param {string=} msg - * @returns {asserts cond} - */ - function assert(cond, msg = "Assertion failed.") { - if (!cond) { - throw new AssertionError(msg); - } - } + const { AssertionError, assert } = window.__bootstrap.infra; /** @template T */ class Deferred { diff --git a/runtime/js/06_util.js b/runtime/js/06_util.js index c643f758a0b0d4..277e83ec5946ef 100644 --- a/runtime/js/06_util.js +++ b/runtime/js/06_util.js @@ -4,7 +4,6 @@ ((window) => { const { decodeURIComponent, - Error, ObjectPrototypeIsPrototypeOf, Promise, SafeArrayIterator, @@ -34,19 +33,6 @@ } } - class AssertionError extends Error { - constructor(msg) { - super(msg); - this.name = "AssertionError"; - } - } - - function assert(cond, msg = "Assertion failed.") { - if (!cond) { - throw new AssertionError(msg); - } - } - function createResolvable() { let resolve; let reject; @@ -154,8 +140,6 @@ log, setLogDebug, createResolvable, - assert, - AssertionError, pathFromURL, writable, nonEnumerable, diff --git a/runtime/js/13_buffer.js b/runtime/js/13_buffer.js index d620920104e5c5..49d7a1cdd0ccdc 100644 --- a/runtime/js/13_buffer.js +++ b/runtime/js/13_buffer.js @@ -6,7 +6,7 @@ "use strict"; ((window) => { - const { assert } = window.__bootstrap.util; + const { assert } = window.__bootstrap.infra; const { TypedArrayPrototypeSubarray, TypedArrayPrototypeSlice, diff --git a/runtime/js/40_process.js b/runtime/js/40_process.js index 14c31fa8d1da98..c33ce1c04df0a0 100644 --- a/runtime/js/40_process.js +++ b/runtime/js/40_process.js @@ -5,7 +5,8 @@ const core = window.Deno.core; const { FsFile } = window.__bootstrap.files; const { readAll } = window.__bootstrap.io; - const { assert, pathFromURL } = window.__bootstrap.util; + const { pathFromURL } = window.__bootstrap.util; + const { assert } = window.__bootstrap.infra; const { ArrayPrototypeMap, TypeError, diff --git a/runtime/js/40_testing.js b/runtime/js/40_testing.js index b79939f4b92c07..2ec60ca444f7a8 100644 --- a/runtime/js/40_testing.js +++ b/runtime/js/40_testing.js @@ -6,7 +6,7 @@ const { setExitHandler } = window.__bootstrap.os; const { Console, inspectArgs } = window.__bootstrap.console; const { serializePermissions } = window.__bootstrap.permissions; - const { assert } = window.__bootstrap.util; + const { assert } = window.__bootstrap.infra; const { AggregateErrorPrototype, ArrayPrototypeFilter, @@ -82,7 +82,7 @@ "op_fdatasync_async": ["flush pending data operations for a file to disk", "awaiting the result of a `Deno.fdatasync` call"], "op_fetch_send": ["send a HTTP request", "awaiting the result of a `fetch` call"], "op_ffi_call_nonblocking": ["do a non blocking ffi call", "awaiting the returned promise"] , - "op_ffi_call_ptr_nonblocking": ["do a non blocking ffi call", "awaiting the returned promise"], + "op_ffi_call_ptr_nonblocking": ["do a non blocking ffi call", "awaiting the returned promise"], "op_flock_async": ["lock a file", "awaiting the result of a `Deno.flock` call"], "op_fs_events_poll": ["get the next file system event", "breaking out of a for await loop looping over `Deno.FsEvents`"], "op_fstat_async": ["get file metadata", "awaiting the result of a `Deno.File#fstat` call"], diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js index a0f05960314fcd..3a37abeab8cb2a 100644 --- a/runtime/js/99_main.js +++ b/runtime/js/99_main.js @@ -25,6 +25,7 @@ delete Object.prototype.__proto__; PromisePrototypeThen, TypeError, } = window.__bootstrap.primordials; + const infra = window.__bootstrap.infra; const util = window.__bootstrap.util; const eventTarget = window.__bootstrap.eventTarget; const globalInterfaces = window.__bootstrap.globalInterfaces; @@ -705,7 +706,7 @@ delete Object.prototype.__proto__; ObjectFreeze(globalThis.Deno.core); } else { delete globalThis.Deno; - util.assert(globalThis.Deno === undefined); + infra.assert(globalThis.Deno === undefined); } }