anchor.diff:        {'sender': 'frame', 'type': 'stdout', 'message': message.toString()}, '*');
     }
   }
  +// Unload previous version.
  +require.undef('dartpad_main');
   ''';
   
       /// The javascript exception handling for Dartpad catches both errors
  
positive.code:     /// and the right error messages on the console.
      final String exceptionHandler = '''
  var _thrownDartMainRunner = false;
  function dartMainRunner(main, args) {
    try {
      main(args);
    } catch(error) {
      parent.postMessage(
        {'sender': 'frame', 'type': 'stderr', 'message': "Uncaught exception:\\n" + error.message}, '*');
      _thrownDartMainRunner = true;
      throw error;
    }
  }
  
  window.onerror = function(message, url, lineNumber, colno, error) {
    if (!_thrownDartMainRunner) {
  
negative.code:     String postfix = '';
      if (usesRequireJs) {
        postfix = '''
  require(['dart_sdk'],
    function(sdk) {
      'use strict';
      sdk.developer._extensions.clear();
      sdk.dart.hotRestart();
  });
  
  require(["dartpad_main", "dart_sdk"], function(dartpad_main, dart_sdk) {
      // SDK initialization.
      dart_sdk.dart.setStartAsyncSynchronously(true);
  