зеркало из https://github.com/mozilla/gecko-dev.git
Bug 597811: Make mozJSComponentLoader use JSVERSION_LATEST. (r=sayrer)
This commit is contained in:
Родитель
a505cf66a1
Коммит
43dd4230e0
|
@ -4417,6 +4417,17 @@ JS_CompileUCScript(JSContext *cx, JSObject *obj, const jschar *chars, size_t len
|
|||
return JS_CompileUCScriptForPrincipals(cx, obj, NULL, chars, length, filename, lineno);
|
||||
}
|
||||
|
||||
JS_PUBLIC_API(JSScript *)
|
||||
JS_CompileScriptForPrincipalsVersion(JSContext *cx, JSObject *obj,
|
||||
JSPrincipals *principals,
|
||||
const char *bytes, size_t length,
|
||||
const char *filename, uintN lineno,
|
||||
JSVersion version)
|
||||
{
|
||||
AutoVersionAPI ava(cx, version);
|
||||
return JS_CompileScriptForPrincipals(cx, obj, principals, bytes, length, filename, lineno);
|
||||
}
|
||||
|
||||
JS_PUBLIC_API(JSScript *)
|
||||
JS_CompileScriptForPrincipals(JSContext *cx, JSObject *obj,
|
||||
JSPrincipals *principals,
|
||||
|
@ -4538,6 +4549,14 @@ JS_CompileFileHandleForPrincipals(JSContext *cx, JSObject *obj, const char *file
|
|||
return script;
|
||||
}
|
||||
|
||||
JS_PUBLIC_API(JSScript *)
|
||||
JS_CompileFileHandleForPrincipalsVersion(JSContext *cx, JSObject *obj, const char *filename,
|
||||
FILE *file, JSPrincipals *principals, JSVersion version)
|
||||
{
|
||||
AutoVersionAPI ava(cx, version);
|
||||
return JS_CompileFileHandleForPrincipals(cx, obj, filename, file, principals);
|
||||
}
|
||||
|
||||
JS_PUBLIC_API(JSScript *)
|
||||
JS_CompileFileHandle(JSContext *cx, JSObject *obj, const char *filename, FILE *file)
|
||||
{
|
||||
|
@ -4780,6 +4799,15 @@ JS_ExecuteScript(JSContext *cx, JSObject *obj, JSScript *script, jsval *rval)
|
|||
return ok;
|
||||
}
|
||||
|
||||
JS_PUBLIC_API(JSBool)
|
||||
JS_ExecuteScriptVersion(JSContext *cx, JSObject *obj, JSScript *script, jsval *rval,
|
||||
JSVersion version)
|
||||
{
|
||||
AutoVersionAPI ava(cx, version);
|
||||
return JS_ExecuteScript(cx, obj, script, rval);
|
||||
}
|
||||
|
||||
|
||||
JS_PUBLIC_API(JSBool)
|
||||
JS_EvaluateUCScriptForPrincipalsVersion(JSContext *cx, JSObject *obj,
|
||||
JSPrincipals *principals,
|
||||
|
|
|
@ -2407,6 +2407,13 @@ JS_CompileScriptForPrincipals(JSContext *cx, JSObject *obj,
|
|||
const char *bytes, size_t length,
|
||||
const char *filename, uintN lineno);
|
||||
|
||||
extern JS_PUBLIC_API(JSScript *)
|
||||
JS_CompileScriptForPrincipalsVersion(JSContext *cx, JSObject *obj,
|
||||
JSPrincipals *principals,
|
||||
const char *bytes, size_t length,
|
||||
const char *filename, uintN lineno,
|
||||
JSVersion version);
|
||||
|
||||
extern JS_PUBLIC_API(JSScript *)
|
||||
JS_CompileUCScript(JSContext *cx, JSObject *obj,
|
||||
const jschar *chars, size_t length,
|
||||
|
@ -2437,6 +2444,11 @@ JS_CompileFileHandleForPrincipals(JSContext *cx, JSObject *obj,
|
|||
const char *filename, FILE *fh,
|
||||
JSPrincipals *principals);
|
||||
|
||||
extern JS_PUBLIC_API(JSScript *)
|
||||
JS_CompileFileHandleForPrincipalsVersion(JSContext *cx, JSObject *obj,
|
||||
const char *filename, FILE *fh,
|
||||
JSPrincipals *principals);
|
||||
|
||||
/*
|
||||
* NB: you must use JS_NewScriptObject and root a pointer to its return value
|
||||
* in order to keep a JSScript and its atoms safe from garbage collection after
|
||||
|
@ -2554,6 +2566,10 @@ JS_DecompileFunctionBody(JSContext *cx, JSFunction *fun, uintN indent);
|
|||
extern JS_PUBLIC_API(JSBool)
|
||||
JS_ExecuteScript(JSContext *cx, JSObject *obj, JSScript *script, jsval *rval);
|
||||
|
||||
extern JS_PUBLIC_API(JSBool)
|
||||
JS_ExecuteScriptVersion(JSContext *cx, JSObject *obj, JSScript *script, jsval *rval,
|
||||
JSVersion version);
|
||||
|
||||
/*
|
||||
* Execute either the function-defining prolog of a script, or the script's
|
||||
* main body, but not both.
|
||||
|
|
|
@ -1118,10 +1118,10 @@ mozJSComponentLoader::GlobalForLocation(nsILocalFile *aComponentFile,
|
|||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
script = JS_CompileScriptForPrincipals(cx, global,
|
||||
jsPrincipals,
|
||||
buf, fileSize32,
|
||||
nativePath.get(), 1);
|
||||
script = JS_CompileScriptForPrincipalsVersion(
|
||||
cx, global, jsPrincipals, buf, fileSize32, nativePath.get(), 1,
|
||||
JSVERSION_LATEST);
|
||||
|
||||
PR_MemUnmap(buf, fileSize32);
|
||||
|
||||
#else /* HAVE_PR_MEMMAP */
|
||||
|
@ -1138,9 +1138,8 @@ mozJSComponentLoader::GlobalForLocation(nsILocalFile *aComponentFile,
|
|||
return NS_ERROR_FILE_NOT_FOUND;
|
||||
}
|
||||
|
||||
script = JS_CompileFileHandleForPrincipals(cx, global,
|
||||
nativePath.get(),
|
||||
fileHandle, jsPrincipals);
|
||||
script = JS_CompileFileHandleForPrincipalsVersion(
|
||||
cx, global, nativePath.get(), fileHandle, jsPrincipals, JSVERSION_LATEST);
|
||||
|
||||
/* JS will close the filehandle after compilation is complete. */
|
||||
#endif /* HAVE_PR_MEMMAP */
|
||||
|
@ -1175,10 +1174,9 @@ mozJSComponentLoader::GlobalForLocation(nsILocalFile *aComponentFile,
|
|||
|
||||
buf[len] = '\0';
|
||||
|
||||
script = JS_CompileScriptForPrincipals(cx, global,
|
||||
jsPrincipals,
|
||||
buf, bytesRead,
|
||||
nativePath.get(), 1);
|
||||
script = JS_CompileScriptForPrincipalsVersion(
|
||||
cx, global, jsPrincipals, buf, bytesRead, nativePath.get(), 1,
|
||||
JSVERSION_LATEST);
|
||||
}
|
||||
// Propagate the exception, if one exists. Also, don't leave the stale
|
||||
// exception on this context.
|
||||
|
@ -1237,7 +1235,7 @@ mozJSComponentLoader::GlobalForLocation(nsILocalFile *aComponentFile,
|
|||
*aGlobal = global;
|
||||
|
||||
jsval retval;
|
||||
if (!JS_ExecuteScript(cx, global, script, &retval)) {
|
||||
if (!JS_ExecuteScriptVersion(cx, global, script, &retval, JSVERSION_LATEST)) {
|
||||
#ifdef DEBUG_shaver_off
|
||||
fprintf(stderr, "mJCL: failed to execute %s\n", nativePath.get());
|
||||
#endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче