diff options
author | Leo Kettmeir <crowlkats@toaxl.com> | 2022-03-19 13:57:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-19 13:57:37 +0100 |
commit | e55dee7fd894f705a0268a4734b00197021f0617 (patch) | |
tree | f6232128259430ba943da2c1d9ade6ad17697adc /ext/web/00_infra.js | |
parent | ad8e2383487e8ef4f15e7b86df80f6dc98fdcc79 (diff) |
refactor: cleanup assert() & AssertionError definitions (#13859)
Diffstat (limited to 'ext/web/00_infra.js')
-rw-r--r-- | ext/web/00_infra.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/ext/web/00_infra.js b/ext/web/00_infra.js index a250dd69b..f46316bfe 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); |