if (HasAttr(kNameSpaceID_None, nsHTMLAtoms::src) || mChildren.Count()) {
if (HasAttr(kNameSpaceID_None, nsHTMLAtoms::src) || mAttrsAndChildren.ChildCount()) {
nsHTMLScriptElement::MaybeProcessScript(){  if (mIsEvaluated || mEvaluating || !mDocument || !GetParent()) {    return;  }  // We'll always call this to make sure that  // ScriptAvailable/ScriptEvaluated gets called. See bug 153600  nsresult rv = NS_OK;  nsCOMPtr<nsIScriptLoader> loader = mDocument->GetScriptLoader();  if (loader) {    mEvaluating = PR_TRUE;    rv = loader->ProcessScriptElement(this, this);    mEvaluating = PR_FALSE;  }  if (rv == NS_CONTENT_SCRIPT_IS_EVENTHANDLER) {    // If the script has NOT been executed yet then create a script    // event handler if necessary...    if (!mIsEvaluated && !mScriptEventHandler) {      // Set mIsEvaluated, this element will be handled by the      // nsIScriptEventManager      mIsEvaluated = PR_TRUE;      mScriptEventHandler = new nsHTMLScriptEventHandler(this);      if (!mScriptEventHandler) {        return;      }      NS_ADDREF(mScriptEventHandler);      // The script-loader will make sure that the script is not evaluated      // right away.    }    if (mScriptEventHandler) {      nsAutoString event_val;      GetAttr(kNameSpaceID_None, nsHTMLAtoms::_event, event_val);      mScriptEventHandler->ParseEventString(event_val);    }  }  // But we'll only set mIsEvaluated if we did really load or evaluate  // something  if (HasAttr(kNameSpaceID_None, nsHTMLAtoms::src) || mChildren.Count()) {    mIsEvaluated = PR_TRUE;  }}