globalThis.assertOrThrow

Michael Haufe tno at thenewobjective.com
Sat Aug 31 19:53:04 UTC 2019


https://esdiscuss.org/topic/native-assertions

From: es-discuss <es-discuss-bounces at mozilla.org> On Behalf Of kai zhu
Sent: Saturday, August 31, 2019 2:22 PM
To: es-discuss <es-discuss at mozilla.org>
Subject: globalThis.assertOrThrow

having a universal assert function (similar to nodejs' assert builtin) might be useful.  it could be name "assertOrThrow" for web-compat.

this would simplify writing common-case "throwaway" error-handling behavior in both browsers and nodejs:

```js
// naive polyfill
globalThis.assertOrThrow = globalThis.assertOrThrow || function (passed, message) {
/*
 * this function will throw error <message> if <passed> is falsy
 */
    if (passed) {
        return;
    }
    throw (
        typeof message === "object" && message
        ? message
        : new Error(message)
    }
};

localforage.setItem("foo", "bar", function (err, data) {
    // validate no err occurred
    // this one-line statement makes writing test-coverage less tedious
    assertOrThrow(!err, err);
    ...
});
```

-kai

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20190831/9af6a04d/attachment.html>


More information about the es-discuss mailing list