dispose(dummy) {
          this.logger.log("dispose()");
          this.languageService.dispose();
          this.languageService = null;
          if (debugObjectHost && debugObjectHost.CollectGarbage) {
            debugObjectHost.CollectGarbage();
            this.logger.log("CollectGarbage()");
          }
          this.logger = null;
          super.dispose(dummy);
        }
Ensure (almost) deterministic release of internal Javascript resources when
some external native objects holds onto us (e.g. Com/Interop).