anchor.diff:  
       if (event.kind == EventKind.kIsolateStart &&
           !event.isolate.isSystemIsolate) {
  -      _registerIsolate(event.isolate);
  +      await _registerIsolate(event.isolate);
         _isolateCreatedController.add(event.isolate);
         // TODO(jacobr): we assume the first isolate started is the main isolate
         // but that may not always be a safe assumption.
  
positive.code:     await _initSelectedIsolate();
    }
  
    void _registerIsolate(IsolateRef isolateRef) {
      assert(!_isolateStates.containsKey(isolateRef));
      _isolateStates[isolateRef] = IsolateState(isolateRef);
      _isolates.add(isolateRef);
      isolateIndex(isolateRef);
      _loadIsolateState(isolateRef);
    }
  
    void _loadIsolateState(IsolateRef isolateRef) {
      final service = _service;
      _service.getIsolate(isolateRef.id).then((Isolate isolate) {
        if (service != _service) return;
        final state = _isolateStates[isolateRef];
        if (state != null) {
          // Isolate might have already been closed.
          state.onIsolateLoaded(isolate);
        }
      });
    }
  
    Future<void> _handleIsolateEvent(Event event) async {
  
negative.code:   Future<void> _initIsolates(List<IsolateRef> isolates) async {
      _clearIsolateStates();
  
      await Future.wait([
        for (final isolateRef in isolates) _registerIsolate(isolateRef),
      ]);
  
      // It is critical that the _serviceExtensionManager is already listening
      // for events indicating that new extension rpcs are registered before this
  