dispose method
Implementation
Future<void> dispose() async {
  if (null == _initializeComp) {
    _isDisposed = true;
    return;
  }
  _isDisposed = true;
  // Ensure initialization is finished.
  await _initialize();
  await _stdinStreamProxy.dispose();
  if (isIdle) {
    (await _requestPort).send(const _RequestExit());
    await _reqExitComp.future;
  } else {
    _isolate.kill(priority: Isolate.immediate);
    _reqExitComp.complete();
  }
  _responseReceiver.close();
}