anchor.diff:     * [element].  Can be nested.
      */
     withCurrentElement(Element element, f()) {
  +    String tryToString(object) {
  +      try {
  +        return object.toString();
  +      } catch (_) {
  +        return '<exception in toString()>';
  +      }
  +    }
  +
       Element old = currentElement;
       _currentElement = element;
       try {
         return f();
       } on SpannableAssertionFailure catch (ex, s) {
         if (!hasCrashed) {
  +        String message = (ex.message != null) ? tryToString(ex.message)
  +                                              : tryToString(ex);
           SourceSpan span = spanFromSpannable(ex.node);
  -        reportError(ex.node, MessageKind.GENERIC, {'text': ex.message});
  -        pleaseReportCrash(s);
  +        reportError(ex.node, MessageKind.GENERIC, {'text': message});
  +        pleaseReportCrash(s, 'The compiler crashed: $message.');
         }
         hasCrashed = true;
         throw new CompilerCancelledException('The compiler crashed.');
  
positive.code:     internalError(message, element: element);
    }
  
    void unhandledExceptionOnElement(Element element, StackTrace stackTrace) {
      if (hasCrashed) return;
      hasCrashed = true;
      reportDiagnostic(spanFromElement(element),
                       MessageKind.COMPILER_CRASHED.error().toString(),
                       api.Diagnostic.CRASH);
      pleaseReportCrash(stackTrace);
    }
  
    void pleaseReportCrash(StackTrace stackTrace) {
      print(MessageKind.PLEASE_REPORT_THE_CRASH.message({'buildId': buildId}));
      if (stackTrace != null) {
        print(stackTrace);
      }
  
negative.code:           reportDiagnostic(new SourceSpan(uri, 0, 0),
                             MessageKind.COMPILER_CRASHED.error().toString(),
                             api.Diagnostic.CRASH);
            String message = 'The compiler crashed.';
            pleaseReportCrash(getAttachedStackTrace(error), message);
          }
        } catch (doubleFault) {
          // Ignoring exceptions in exception handling.
  