/** * Handles an assertion failure in self-hosted code just like an assertion * failure in C++ code. Information about the failure can be provided in args[0]. */ static bool intrinsic_AssertionFailed(JSContext *cx, unsigned argc, Value *vp) { #ifdef DEBUG CallArgs args = CallArgsFromVp(argc, vp); if (args.length() > 0) { // try to dump the informative string JSString *str = ToString<CanGC>(cx, args[0]); if (str) { fprintf(stderr, "Self-hosted JavaScript assertion info: "); str->dumpCharsNoNewline(); fputc('\n', stderr); } } #endif JS_ASSERT(false); return false; }