if (++numWeirdErrors >= maxWeirdErrors) { VM.sysExit(99); }
this.tallyWeirdError();
  public void printStackTrace () {    //    static boolean ranOut = false;    boolean useSysWrite = false;    if (this instanceof OutOfMemoryError) {      VM.sysWriteln("Throwable.printStackTrace(): We are trying to dump the stack of an OutOfMemoryError in the default fashion.");      VM.sysWriteln("Throwable.printStackTrace(): We'll use the VM.sysWriteln() function instead of the System.err stream, to avoid trouble");      useSysWrite = true;    } else if (System.err == null) {      VM.sysWriteln("Throwable.printStackTrace() can't write to the uninitialized System.err stream; it's early in booting.  Trying VM.sysWriteln()");      useSysWrite = true;    }    if (useSysWrite) {      PrintLN pln;      try {	pln = new PrintContainer.VMSysWriteln();      } catch (OutOfMemoryError oom) {	VM.sysWriteln("Throwable.printStackTrace(): Out of memory while trying to allocate a simple 'PrintContainer.VMSysWriteln' object to print the trace.  Giving up.");	return;      } catch (Throwable dummy) {	if (++numWeirdErrors >= maxWeirdErrors) {	  VM.sysExit(99);	}	VM.sysWriteln("Throwable.printStackTrace(PrintLN) caught an unexpected exception while allocating a simple 'PrintContainer.VMSysWriteln' object to print a stack trace.  Giving up.");	return;      }      // We catch exceptions deeper down the call stack.      printStackTrace(pln);    } else {      // We catch exceptions deeper down the call stack.      printStackTrace(System.err);    }  }