return CElement::HandleStartToken(aNode,aTag,aContext,aSink);
nsresult result=NS_OK;  switch(aTag) { case eHTMLTag_markupDecl: result=HandleDoctypeDecl(aNode,aTag,aContext,aSink); break;  case eHTMLTag_frameset: result=aSink->OpenFrameset(*aNode); result=OpenContext(aNode,aTag,aContext,aSink); aContext->mFlags.mHadFrameset=PR_TRUE; break;  case eHTMLTag_base: case eHTMLTag_isindex: case eHTMLTag_link: case eHTMLTag_meta: { CElement* theHead=GetElement(eHTMLTag_head); if(theHead) { result=theHead->OpenContext(aNode,aTag,aContext,aSink); if(NS_SUCCEEDED(result)) { result=aSink->AddLeaf(*aNode); if(NS_SUCCEEDED(result)) { result=theHead->CloseContext(aNode,aTag,aContext,aSink); } } } } break;  case eHTMLTag_object: { CElement* theHead=GetElement(eHTMLTag_head); if(theHead) { result=theHead->OpenContext(aNode,aTag,aContext,aSink); if(NS_SUCCEEDED(result)) { result=OpenContainerInContext(aNode,aTag,aContext,aSink); } } } break;  case eHTMLTag_script: case eHTMLTag_style: case eHTMLTag_title: result=OpenContext(aNode,aTag,aContext,aSink); break;  case eHTMLTag_newline: case eHTMLTag_whitespace: case eHTMLTag_comment: break;   default: CElement* theBody=GetElement(eHTMLTag_body); if(theBody) { CElement *theChildElement=GetElement(aTag); if(theBody->CanContain(theChildElement,aContext)) {   CToken* theToken=(CStartToken*)aContext->mTokenAllocator->CreateTokenOfType(eToken_start,eHTMLTag_body); nsCParserNode* theNode=aContext->gNodeRecycler->CreateNode(); theNode->Init(theToken,0,0);  result=theBody->HandleStartToken(theNode,eHTMLTag_body,aContext,aSink);  if(NS_SUCCEEDED(result)) { if(eHTMLTag_body==aContext->Last()) { result=theBody->HandleStartToken(aNode,aTag,aContext,aSink); } } } }  break; }  return result;
  virtual nsresult HandleStartToken(  nsIParserNode* aNode,                                      eHTMLTags aTag,                                      nsDTDContext* aContext,                                      nsIHTMLContentSink* aSink) {    return CElement::HandleStartToken(aNode,aTag,aContext,aSink);  }