} break;
trav->SetPreOrder(PR_FALSE); } break;
NS_NewFrameTraversal(nsIBidirectionalEnumerator **aEnumerator,                     nsTraversalType aType,                     nsIPresContext* aPresContext,                     nsIFrame *aStart){  if (!aEnumerator || !aStart)    return NS_ERROR_NULL_POINTER;  switch(aType)  {  case LEAF: {    nsLeafIterator *trav = new nsLeafIterator(aPresContext, aStart);    if (!trav)      return NS_ERROR_OUT_OF_MEMORY;    *aEnumerator = NS_STATIC_CAST(nsIBidirectionalEnumerator*, trav);    NS_ADDREF(trav);    trav->SetExtensive(PR_FALSE);             }    break;  case EXTENSIVE:{    nsLeafIterator *trav = new nsLeafIterator(aPresContext, aStart);    if (!trav)      return NS_ERROR_OUT_OF_MEMORY;    *aEnumerator = NS_STATIC_CAST(nsIBidirectionalEnumerator*, trav);    NS_ADDREF(trav);    trav->SetExtensive(PR_TRUE);             }    break;#ifdef IBMBIDI  case VISUAL:{    nsVisualIterator *trav = new nsVisualIterator(aPresContext, aStart);    if (!trav)      return NS_ERROR_OUT_OF_MEMORY;    *aEnumerator = NS_STATIC_CAST(nsIBidirectionalEnumerator*, trav);    NS_ADDREF(trav);              }    break;#endif#if 0  case FASTEST:{    nsFastestTraversal *trav = new nsFastestTraversal(aStart);    if (!trav)      return NS_ERROR_NOMEMORY;    *aEnumerator = NS_STATIC_CAST(nsIBidirectionalEnumerator*, trav);    NS_ADDREF(trav);               }#endif  default:    return NS_ERROR_NOT_IMPLEMENTED;    break;  }  return NS_OK;}