Note: from an implementation perspective, there's little to realistically gain from noexcept or anything similar in JS, as JS doesn't have anything like C++'s destructors which have to be invoked even when exceptions propagate due to the absence of explicit try/catch.
That is the real reason why C++ exceptions are largely avoided where pragmatically possible, and why a few languages (like Rust) deliberately split stack unwinding from standard error handling so they can just not call destructors during it (and avoid the gigantic performance cliff of having to set up a try/finally equivalent in almost every function that allocates things).