anchor.diff:  }
   
   var tests = [
  -  (VM vm) async {
  -    await vm.load();
  -    bool started = false;
  +  hasPausedAtStart,
  +  (Isolate isolate) async {
       int step = 0;
       var completer = new Completer();
       var sub;
  -    await hasPausedAtStart(vm.isolates[0]);
  -    sub = await vm.listenEventStream("Debug", (ServiceEvent c) {
  +    final Isolate firstIsolate = isolate;
  +    Isolate secondIsolate;
  +    sub = await isolate.vm.listenEventStream(VM.kDebugStream, (ServiceEvent c) {
         switch (step) {
           case 0:
             expect(c.kind, equals("Resume"),
                 reason: "First isolate should resume");
  -          expect(c.isolate.id, equals(vm.isolates[0].id),
  +          expect(c.isolate.id, equals(firstIsolate.id),
                 reason: "First isolate should resume");
             break;
           case 1:
             expect(c.kind, equals("PauseStart"),
                 reason: "Second isolate should pause on start");
  -          expect(c.isolate.id, equals(vm.isolates[1].id),
  +          expect(c.isolate.id, equals(isolate.vm.isolates[1].id),
                 reason: "Second isolate should pause on start");
  -          vm.isolates[1].resume();
  +          secondIsolate = c.isolate;
  +          secondIsolate.resume();
             break;
           case 2:
             expect(c.kind, equals("Resume"),
                 reason: "Second isolate should resume");
  -          expect(c.isolate.id, equals(vm.isolates[1].id),
  +          expect(c.isolate.id, equals(secondIsolate.id),
                 reason: "Second isolate should resume");
             break;
           case 3:
             expect(c.kind, equals("PauseBreakpoint"),
                 reason: "First isolate should stop at debugger()");
  -          expect(c.isolate.id, equals(vm.isolates[0].id),
  +          expect(c.isolate.id, equals(firstIsolate.id),
                 reason: "First isolate should stop at debugger()");
  -          vm.isolates[0].resume();
  +          firstIsolate.resume();
             break;
           case 4:
             expect(c.kind, equals("Resume"),
                 reason: "First isolate should resume (1)");
  -          expect(c.isolate.id, equals(vm.isolates[0].id),
  +          expect(c.isolate.id, equals(firstIsolate.id),
                 reason: "First isolate should resume (1)");
             break;
           case 5:
  
positive.code:                   "should stop at debugger() after exception.\n"
                    "Probably the second resumed even though it was not expect "
                    "to do it.");
            expect(c.isolate.id, equals(vm.isolates[0].id),
                reason: "First "
                    "isolate should stop at debugger() after exception.\n"
                    "Probably the second resumed even though it was not expect "
  
negative.code:           completer.complete();
            break;
          default:
            fail("Shouldn't get here, the second isolate resumed even though it "
                "was not expect to do it");
            break;
        }
        step++;
      });
      firstIsolate.resume();
      await completer.future;
      // We wait 1 second to account for delays in the service protocol.
      // A late message can still arrive.
  