public EventListener[] getEventListenersArrayCopy(
      EventTarget target, String type, boolean useCapture) {
    if (!parentRegistry.isValidEventTarget(target, type, false))
      return null; // Nos ahorramos la búsqueda

    ItsNatNormalEventListenerListSameTarget targetList =
        (ItsNatNormalEventListenerListSameTarget) eventListenersByTarget.get(target);
    if (targetList == null) return null;
    return targetList.getEventListenersArrayCopy(type, useCapture);
  }
  public void processExpunged(Object value) {
    ItsNatNormalEventListenerListSameTarget targetList =
        (ItsNatNormalEventListenerListSameTarget) value;

    LinkedList<Pair> listeners = targetList.getAllItsNatNormalEventListenersCopy();
    if (listeners == null) return;
    // "listeners" es una copia por lo que es desechable e inmutable
    for (Pair pair : listeners) {
      ItsNatNormalEventListenerWrapperImpl listener = pair.getListenerWrapper();
      parentRegistry.removeItsNatNormalEventListener(listener, false, true);

      // Pasamos updateClient = false para evitar llamar
      // getJSRender().removeEventListenerCode(listenerWrapper);
      // precisamente porque este método se llama cuando nadie sujeta el nodo
      // y por tanto no pertenece al Document.
      // Al menos evitamos que haya memory leaks en el servidor
      // aunque podrá haber en el cliente, para evitarlo han de desregistrarse
      // explícitamente los listeners cuando no se necesitan o el nodo DOM se va a perder
    }
  }
  public int removeAllItsNatNormalEventListeners(EventTarget target, boolean updateClient) {
    ItsNatNormalEventListenerListSameTarget targetList =
        (ItsNatNormalEventListenerListSameTarget) eventListenersByTarget.get(target);
    if (targetList == null) return 0;

    LinkedList<Pair> listeners = targetList.getAllItsNatNormalEventListenersCopy();
    if (listeners == null) return 0;
    // "listeners" es una copia por lo que es desechable e inmutable
    for (Pair pair : listeners) {
      ItsNatNormalEventListenerWrapperImpl listener = pair.getListenerWrapper();
      parentRegistry.removeItsNatNormalEventListener(listener, updateClient, false);
    }

    targetList
        .removeAllItsNatNormalEventListeners(); // No hace falta pero por si acaso y para que quede
    // claro

    eventListenersByTarget.remove(target);

    return listeners.size(); // El número de listeners removidos
  }