dispose method

void dispose()
override

Shutdown this JS context.

Implementation

void dispose() {
  for (var promise in _cachePromises) {
    _arguments[0].type = ARG_TYPE_PROMISE;
    _arguments[0].ptrValue = promise;
    _arguments[1].setInt(2);
    _action(JS_ACTION_PROMISE_COMPLETE, 2);
  }
  _cachePromises.clear();
  for (var val in _cache) {
    val._internalDispose();
  }
  _cache.clear();
  _clearTemporary();
  _wrapper?.release();
  binder.clearCache(_context);
  binder.deleteJsContext(_context);
  _index.remove(_context);
  malloc.free(_rawArguments);
  malloc.free(_rawResults);
  _disposed = true;
}