anchor.diff:        return internalMain(args);
       })
       .catchError((exception, trace) {
  -      exitCode = 253;
  +      if (!identical(exception, _EXIT_SIGNAL)) {
  +        exitCode = 253;
  +      }
       })
       .whenComplete(() {
         // The testing framework waits for a status line on stdout and stderr
  
positive.code:   }
  }
  
  void batchMain(List<String> batchArguments) {
    int exitCode;
  
    exitFunc = (errorCode) {
      // Crash shadows any other error code.
      if (exitCode == 253) return;
      exitCode = errorCode;
    };
  
    runJob() {
  
negative.code:     if (analyzeOnly) return;
      if (code == null) {
        fail('Compilation failed.');
      }
      writeString(Uri.parse('$out.deps'),
                  getDepsOutput(inputProvider.sourceFiles));
  