of course, asserts should not crash the app once it's in production. instead they should be channeled to a log that gets sent back to the production support team for analysis.
but during development, I'd say crashing during small errors is a great thing.
A simple example can be done by writing a single function in the root scope or some global function (javascript)
function assert(assertion, description) { if(!assertion) { console.log(description); //could also have other application error handling code } }
Then in a function in your application:
function myFunc() { var x = 1; assert(x == 1, "x does not equal 1 in myFunc()“);
\\Continue code... }
This is obviously a very simple example and can definitely be iterated upon, but it gets the basic point across and I'm on my phone so writing code isn't the easiest :-P
Some systems have something like this built in, such as node which has more features.