anchor.diff:        _editProgress.hidden(false);
       }
   
  -    if (_requestStored()) {
  -      new Future(() {
  -        CompileResponse response = _storedResponse;
  +    if (_hasStoredRequest()) {
  +      try {
  +        CompileResponse response = _cachedCompile;
           if (executionService != null) {
  -          return executionService.execute(
  +          executionService.execute(
                 _context.htmlSource, _context.cssSource, response.result);
           }
  -      }).catchError((e) {
  +      } catch (e) {
           _showOutput('Error compiling to JavaScript:\n${e}', error: true);
           _showError('Error compiling to JavaScript', '${e}');
  -      }).whenComplete(() {
  -        _runButton.disabled = false;
  -        if (_editProgress != null) {
  -          _editProgress.hidden(true);
  -          _editProgress.indeterminate = false;
  -        }
  -      });
  +      }
  +      _runButton.disabled = false;
  +      if (_editProgress != null) {
  +        _editProgress.hidden(true);
  +        _editProgress.indeterminate = false;
  +      }
         return;
       }
   
       var input = new CompileRequest()..source = context.dartSource;
       _setBackup();
  -    _storedResponse = null;
  +    _cachedCompile = null;
       dartServices
           .compile(input)
           .timeout(longServiceCallTimeout)
           .then((CompileResponse response) {
  -      _storedResponse = response;
  +      _cachedCompile = response;
         if (executionService != null) {
           return executionService.execute(
               _context.htmlSource, _context.cssSource, response.result);
  
positive.code:     }
  
      _showGist(gistId, run: page == 'run');
      _backupRun();
    }
  
    void registerMessageToast() {
  
negative.code:     context.dartSource = sample.dartCode;
      context.htmlSource = sample.htmlCode;
      context.cssSource = sample.cssCode;
      _storePreviousResult();
    }
  
    void showGist(RouteEnterEvent event) {
  