dispose method

  1. @override
void dispose()
override

Implementation

@override
void dispose() {
  if (_disposed) return;
  _disposed = true;
  try {
    disposeChannelFunctions();
  } catch (e) {
    FlutterQjsLogger.error('disposeChannelFunctions failed', e);
  }
  try {
    port.close();
  } catch (_) {}
  try {
    close();
  } on JSError catch (e) {
    // Surface unreclaimed JSRef (functions/objects) so callers can detect leaks.
    if (e.message.contains('reference leak')) rethrow;
    FlutterQjsLogger.error('QuickJS dispose failed', e);
  } catch (e) {
    FlutterQjsLogger.error('QuickJS dispose failed', e);
  }
}