HTMLContentSink::EvaluateScript(nsString& aScript,
HTMLContentSink::EvaluateScript(const nsAReadableString& aScript,
HTMLContentSink::EvaluateScript(nsString& aScript,                                nsIURI *aScriptURI,                                PRInt32 aLineNo,                                const char* aVersion){  nsresult rv = NS_OK;  if (aScript.Length() > 0) {    nsCOMPtr<nsIScriptGlobalObject> globalObject;    mDocument->GetScriptGlobalObject(getter_AddRefs(globalObject));    NS_ENSURE_TRUE(globalObject, NS_ERROR_FAILURE);    nsCOMPtr<nsIScriptContext> context;    NS_ENSURE_SUCCESS(globalObject->GetContext(getter_AddRefs(context)),      NS_ERROR_FAILURE);    nsCOMPtr<nsIPrincipal> principal;    mDocument->GetPrincipal(getter_AddRefs(principal));    NS_ASSERTION(principal, "principal required for document");    nsAutoString ret;    char* url = nsnull;    if (aScriptURI) {      (void)aScriptURI->GetSpec(&url);    }      PRBool isUndefined;    context->EvaluateString(aScript, nsnull, principal, url,                            aLineNo, aVersion, ret, &isUndefined);        if (url) {      nsCRT::free(url);    }  }    return rv;}