зеркало из https://github.com/mozilla/gecko-dev.git
Bug 940321 - Eliminate ambient noScriptRval, and make it live exclusively on CompileOptions. r=jandem
This commit is contained in:
Родитель
55469e4be7
Коммит
a23211976d
|
@ -162,8 +162,7 @@ namespace {
|
|||
const uint32_t kNoIndex = uint32_t(-1);
|
||||
|
||||
const JS::ContextOptions kRequiredContextOptions =
|
||||
JS::ContextOptions().setDontReportUncaught(true)
|
||||
.setNoScriptRval(true);
|
||||
JS::ContextOptions().setDontReportUncaught(true);
|
||||
|
||||
uint32_t gMaxWorkersPerDomain = MAX_WORKERS_PER_DOMAIN;
|
||||
|
||||
|
|
|
@ -745,7 +745,8 @@ ScriptExecutorRunnable::WorkerRun(JSContext* aCx, WorkerPrivate* aWorkerPrivate)
|
|||
NS_ConvertUTF16toUTF8 filename(loadInfo.mURL);
|
||||
|
||||
JS::CompileOptions options(aCx);
|
||||
options.setFileAndLine(filename.get(), 1);
|
||||
options.setFileAndLine(filename.get(), 1)
|
||||
.setNoScriptRval(true);
|
||||
|
||||
JS::SourceBufferHolder srcBuf(loadInfo.mScriptTextBuf,
|
||||
loadInfo.mScriptTextLength,
|
||||
|
|
|
@ -5430,7 +5430,8 @@ WorkerPrivate::RunExpiredTimeouts(JSContext* aCx)
|
|||
nsString expression = info->mTimeoutString;
|
||||
|
||||
JS::CompileOptions options(aCx);
|
||||
options.setFileAndLine(info->mFilename.get(), info->mLineNumber);
|
||||
options.setFileAndLine(info->mFilename.get(), info->mLineNumber)
|
||||
.setNoScriptRval(true);
|
||||
|
||||
if ((expression.IsEmpty() ||
|
||||
!JS::Evaluate(aCx, global, options, expression.get(), expression.Length())) &&
|
||||
|
|
|
@ -4431,7 +4431,6 @@ JS::CompileOptions::CompileOptions(JSContext *cx, JSVersion version)
|
|||
this->version = (version != JSVERSION_UNKNOWN) ? version : cx->findVersion();
|
||||
|
||||
compileAndGo = false;
|
||||
noScriptRval = cx->options().noScriptRval();
|
||||
strictOption = cx->runtime()->options().strictMode();
|
||||
extraWarningsOption = cx->compartment()->options().extraWarnings(cx);
|
||||
werrorOption = cx->runtime()->options().werror();
|
||||
|
|
|
@ -1517,8 +1517,7 @@ class JS_PUBLIC_API(ContextOptions) {
|
|||
ContextOptions()
|
||||
: privateIsNSISupports_(false),
|
||||
dontReportUncaught_(false),
|
||||
noDefaultCompartmentObject_(false),
|
||||
noScriptRval_(false)
|
||||
noDefaultCompartmentObject_(false)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -1552,21 +1551,10 @@ class JS_PUBLIC_API(ContextOptions) {
|
|||
return *this;
|
||||
}
|
||||
|
||||
bool noScriptRval() const { return noScriptRval_; }
|
||||
ContextOptions &setNoScriptRval(bool flag) {
|
||||
noScriptRval_ = flag;
|
||||
return *this;
|
||||
}
|
||||
ContextOptions &toggleNoScriptRval() {
|
||||
noScriptRval_ = !noScriptRval_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
private:
|
||||
bool privateIsNSISupports_ : 1;
|
||||
bool dontReportUncaught_ : 1;
|
||||
bool noDefaultCompartmentObject_ : 1;
|
||||
bool noScriptRval_ : 1;
|
||||
};
|
||||
|
||||
JS_PUBLIC_API(ContextOptions &)
|
||||
|
|
|
@ -423,14 +423,12 @@ RunFile(JSContext *cx, Handle<JSObject*> obj, const char *filename, FILE *file,
|
|||
RootedScript script(cx);
|
||||
|
||||
{
|
||||
JS::AutoSaveContextOptions asco(cx);
|
||||
JS::ContextOptionsRef(cx).setNoScriptRval(true);
|
||||
|
||||
CompileOptions options(cx);
|
||||
options.setIntroductionType("js shell file")
|
||||
.setUTF8(true)
|
||||
.setFileAndLine(filename, 1)
|
||||
.setCompileAndGo(true);
|
||||
.setCompileAndGo(true)
|
||||
.setNoScriptRval(true);
|
||||
|
||||
gGotError = false;
|
||||
(void) JS::Compile(cx, obj, options, file, &script);
|
||||
|
@ -1247,8 +1245,6 @@ Evaluate(JSContext *cx, unsigned argc, jsval *vp)
|
|||
RootedScript script(cx);
|
||||
|
||||
{
|
||||
JS::AutoSaveContextOptions asco(cx);
|
||||
JS::ContextOptionsRef(cx).setNoScriptRval(options.noScriptRval);
|
||||
if (saveBytecode) {
|
||||
if (!JS::CompartmentOptionsRef(cx).getSingletonsAsTemplates()) {
|
||||
JS_ReportErrorNumber(cx, my_GetErrorMessage, nullptr,
|
||||
|
@ -1458,13 +1454,11 @@ Run(JSContext *cx, unsigned argc, jsval *vp)
|
|||
RootedScript script(cx);
|
||||
int64_t startClock = PRMJ_Now();
|
||||
{
|
||||
JS::AutoSaveContextOptions asco(cx);
|
||||
JS::ContextOptionsRef(cx).setNoScriptRval(true);
|
||||
|
||||
JS::CompileOptions options(cx);
|
||||
options.setIntroductionType("js shell run")
|
||||
.setFileAndLine(filename.ptr(), 1)
|
||||
.setCompileAndGo(true);
|
||||
.setCompileAndGo(true)
|
||||
.setNoScriptRval(true);
|
||||
if (!JS_CompileUCScript(cx, thisobj, ucbuf, buflen, options, &script))
|
||||
return false;
|
||||
}
|
||||
|
@ -2186,14 +2180,12 @@ DisassFile(JSContext *cx, unsigned argc, jsval *vp)
|
|||
RootedScript script(cx);
|
||||
|
||||
{
|
||||
JS::AutoSaveContextOptions asco(cx);
|
||||
JS::ContextOptionsRef(cx).setNoScriptRval(true);
|
||||
|
||||
CompileOptions options(cx);
|
||||
options.setIntroductionType("js shell disFile")
|
||||
.setUTF8(true)
|
||||
.setFileAndLine(filename.ptr(), 1)
|
||||
.setCompileAndGo(true);
|
||||
.setCompileAndGo(true)
|
||||
.setNoScriptRval(true);
|
||||
|
||||
if (!JS::Compile(cx, thisobj, options, filename.ptr(), &script))
|
||||
return false;
|
||||
|
@ -3332,12 +3324,11 @@ Compile(JSContext *cx, unsigned argc, jsval *vp)
|
|||
if (!stableChars.initTwoByte(cx, scriptContents))
|
||||
return false;
|
||||
|
||||
JS::AutoSaveContextOptions asco(cx);
|
||||
JS::ContextOptionsRef(cx).setNoScriptRval(true);
|
||||
JS::CompileOptions options(cx);
|
||||
options.setIntroductionType("js shell compile")
|
||||
.setFileAndLine("<string>", 1)
|
||||
.setCompileAndGo(true);
|
||||
.setCompileAndGo(true)
|
||||
.setNoScriptRval(true);
|
||||
RootedScript script(cx);
|
||||
const jschar *chars = stableChars.twoByteRange().start().get();
|
||||
bool ok = JS_CompileUCScript(cx, global, chars,
|
||||
|
|
Загрузка…
Ссылка в новой задаче