*aReturn = nsnull;  nsHTMLScriptElement* it = new nsHTMLScriptElement(mNodeInfo, PR_FALSE); if (!it) { return NS_ERROR_OUT_OF_MEMORY; }  nsCOMPtr<nsIDOMNode> kungFuDeathGrip(it);  CopyInnerTo(it, aDeep);     it->mIsEvaluated = mIsEvaluated || mEvaluating; it->mLineNumber = mLineNumber;  kungFuDeathGrip.swap(*aReturn);  return NS_OK;
return nsGenericElement::CloneNode(aDeep, aResult);
nsHTMLScriptElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn){  *aReturn = nsnull;  nsHTMLScriptElement* it = new nsHTMLScriptElement(mNodeInfo, PR_FALSE);  if (!it) {    return NS_ERROR_OUT_OF_MEMORY;  }  nsCOMPtr<nsIDOMNode> kungFuDeathGrip(it);  CopyInnerTo(it, aDeep);  // The clone should be marked evaluated if we are.  It should also be marked  // evaluated if we're evaluating, to handle the case when this script node's  // script clones the node.  it->mIsEvaluated = mIsEvaluated || mEvaluating;  it->mLineNumber = mLineNumber;  kungFuDeathGrip.swap(*aReturn);  return NS_OK;}