dispose method

void dispose()

Implementation

void dispose() {
  if (_disposed) return;
  _disposed = true;
  // 1. 主动销毁时,移除 Finalizer 监听,防止 GC 时再次触发回调
  _finalizer.detach(this);

  // 2. 检查 token 是否已被销毁 (可能是由 Context.dispose 触发的)
  if (_token.isDisposed) return;
  _token.isDisposed = true;
  context.unregisterObject(_token);

  // freeObject will decrease context ref count and free JSValue
  context.ffi.freeObject(context.handle, _handle);
  context.ffi.freeQjsResult(_handle);
}