Adding url and lineno to script evaluation

This commit is contained in:
joki%netscape.com 1998-08-12 23:37:50 +00:00
Родитель 479b020a61
Коммит c316d58438
6 изменённых файлов: 33 добавлений и 6 удалений

Просмотреть файл

@ -1812,8 +1812,17 @@ nsresult HTMLContentSink::ProcessSCRIPTTag(const nsIParserNode& aNode)
} }
jsval val; jsval val;
PRBool result = context->EvaluateString(script, len, &val); nsIURL* mDocURL = mDocument->GetDocumentURL();
const char* mURL;
if (mDocURL) {
mURL = mDocURL->GetSpec();
}
PRUint32 mLineNo = (PRUint32)aNode.GetSourceLineNumber();
PRBool result = context->EvaluateString(script, len, mURL, mLineNo, &val);
NS_IF_RELEASE(mDocURL);
if (PR_FALSE == result) { if (PR_FALSE == result) {
rv = NS_ERROR_FAILURE; rv = NS_ERROR_FAILURE;
} }

Просмотреть файл

@ -51,6 +51,8 @@ public:
**/ **/
virtual PRBool EvaluateString(const char *aScript, virtual PRBool EvaluateString(const char *aScript,
PRUint32 aScriptSize, PRUint32 aScriptSize,
const char *aURL,
PRUint32 aLineNo,
jsval *aRetValue) = 0; jsval *aRetValue) = 0;
/** /**

Просмотреть файл

@ -38,7 +38,8 @@ static NS_DEFINE_IID(kIScriptGlobalObjectIID, NS_ISCRIPTGLOBALOBJECT_IID);
void PR_CALLBACK void PR_CALLBACK
NS_ScriptErrorReporter(JSContext *cx, const char *message, JSErrorReport *report) NS_ScriptErrorReporter(JSContext *cx, const char *message, JSErrorReport *report)
{ {
printf("Script error: %s\n", message); printf("JavaScript error: %s\nURL :%s, LineNo :%u\nLine text: '%s', Error text: '%s'\n", message,
report->filename, report->lineno, report->linebuf, report->tokenptr);
} }
nsJSContext::nsJSContext(JSRuntime *aRuntime) nsJSContext::nsJSContext(JSRuntime *aRuntime)
@ -56,15 +57,17 @@ nsJSContext::~nsJSContext()
NS_IMPL_ISUPPORTS(nsJSContext, kIScriptContextIID); NS_IMPL_ISUPPORTS(nsJSContext, kIScriptContextIID);
PRBool nsJSContext::EvaluateString(const char *aScript, PRBool nsJSContext::EvaluateString(const char *aScript,
PRUint32 aScriptSize, PRUint32 aScriptSize,
const char *aURL,
PRUint32 aLineNo,
jsval *aRetValue) jsval *aRetValue)
{ {
return ::JS_EvaluateScript(mContext, return ::JS_EvaluateScript(mContext,
JS_GetGlobalObject(mContext), JS_GetGlobalObject(mContext),
aScript, aScript,
aScriptSize, aScriptSize,
NULL, aURL,
0, aLineNo,
aRetValue); aRetValue);
} }

Просмотреть файл

@ -32,6 +32,8 @@ public:
virtual PRBool EvaluateString(const char *aScript, virtual PRBool EvaluateString(const char *aScript,
PRUint32 aScriptSize, PRUint32 aScriptSize,
const char *aURL,
PRUint32 aLineNo,
jsval *aRetValue); jsval *aRetValue);
virtual nsIScriptGlobalObject* GetGlobalObject(); virtual nsIScriptGlobalObject* GetGlobalObject();
virtual void* GetNativeContext(); virtual void* GetNativeContext();

Просмотреть файл

@ -1812,8 +1812,17 @@ nsresult HTMLContentSink::ProcessSCRIPTTag(const nsIParserNode& aNode)
} }
jsval val; jsval val;
PRBool result = context->EvaluateString(script, len, &val); nsIURL* mDocURL = mDocument->GetDocumentURL();
const char* mURL;
if (mDocURL) {
mURL = mDocURL->GetSpec();
}
PRUint32 mLineNo = (PRUint32)aNode.GetSourceLineNumber();
PRBool result = context->EvaluateString(script, len, mURL, mLineNo, &val);
NS_IF_RELEASE(mDocURL);
if (PR_FALSE == result) { if (PR_FALSE == result) {
rv = NS_ERROR_FAILURE; rv = NS_ERROR_FAILURE;
} }

Просмотреть файл

@ -866,6 +866,8 @@ void JSConsole::EvaluateText(UINT aStartSel, UINT aEndSel)
jsval returnValue; jsval returnValue;
if (mContext->EvaluateString(cleanBuffer, if (mContext->EvaluateString(cleanBuffer,
strlen(cleanBuffer), strlen(cleanBuffer),
nsnull,
0,
&returnValue)) { &returnValue)) {
// output the result on the console and on the edit area // output the result on the console and on the edit area
CHAR result[128]; CHAR result[128];