anchor.diff:    String historyNext(String command) {
       return cmd.historyNext(command);
     }
  +
  +  Future pause() {
  +    if (!isolatePaused()) {
  +      return isolate.pause();
  +    } else {
  +      console.print('The program is already paused');
  +      return new Future.value(null);
  +    }
  +  }
  +
  +  Future resume() {
  +    if (isolatePaused()) {
  +      return isolate.resume().then((_) {
  +          warnOutOfDate();
  +        });
  +    } else {
  +      console.print('The program must be paused');
  +      return new Future.value(null);
  +    }
  +  }
  +
  +  Future toggleBreakpoint() async {
  +    var loc = await DebuggerLocation.parse(this, '');
  +    var script = loc.script;
  +    var line = loc.line;
  +    if (script != null && line != null) {
  +      var bpts = script.getLine(line).breakpoints;
  +      if (bpts == null || bpts.isEmpty) {
  +        // Set a new breakpoint.
  +        // TODO(turnidge): Set this breakpoint at current column.
  +        await isolate.addBreakpoint(script, line);
  +      } else {
  +        // TODO(turnidge): Clear this breakpoint at current column.
  +        var pending = [];
  +        for (var bpt in bpts) {
  +          pending.add(isolate.removeBreakpoint(bpt));
  +        }
  +        await Future.wait(pending);
  +      }
  +    }
  +    return new Future.value(null);
  +  }
  +
  +  Future next() {
  +    if (isolatePaused()) {
  +      var event = isolate.pauseEvent;
  +      if (event.kind == ServiceEvent.kPauseStart) {
  +        console.print("Type 'continue' or [F7] to start the isolate");
  +        return new Future.value(null);
  +      }
  +      if (event.kind == ServiceEvent.kPauseExit) {
  +        console.print("Type 'continue' or [F7] to exit the isolate");
  +        return new Future.value(null);
  +      }
  +      return isolate.stepOver();
  +    } else {
  +      console.print('The program is already running');
  +      return new Future.value(null);
  +    }
  +  }
  +
  +  Future step() {
  +    if (isolatePaused()) {
  +      var event = isolate.pauseEvent;
  +      if (event.kind == ServiceEvent.kPauseStart) {
  +        console.print("Type 'continue' or [F7] to start the isolate");
  +        return new Future.value(null);
  +      }
  +      if (event.kind == ServiceEvent.kPauseExit) {
  +        console.print("Type 'continue' or [F7] to exit the isolate");
  +        return new Future.value(null);
  +      }
  +      return isolate.stepInto();
  +    } else {
  +      console.print('The program is already running');
  +      return new Future.value(null);
  +    }
  +  }
   }
   
   @CustomTag('debugger-page')
  
positive.code:     return new Future.value(DebuggerLocation.complete(debugger, args[0]));
    }
  
    String helpShort = 'Remove a breakpoint by source location or function name';
  
    String helpLong =
        'Remove a breakpoint by source location or function name.\n'
        '\n'
        'Syntax: clear                       '
        '# Clear at the current position\n'
  
negative.code:     return new Future.value(null);
    }
  
    String helpShort = 'Move down one or more frames (hotkey: [Page Down])';
  
    String helpLong =
        'Move down one or more frames.\n'
        '\n'
        'Hotkey: [Page Down]\n'
        '\n'
        'Syntax: down\n'
        '        down <count>\n';
  