From 87bb94fabcd350478a44d597f44bd97b1b9b4375 Mon Sep 17 00:00:00 2001 From: Matthew Gaudet Date: Thu, 9 Jan 2020 17:14:09 +0000 Subject: [PATCH] Bug 1607930 - Enable deferred allocation mode by default r=tcampbell Differential Revision: https://phabricator.services.mozilla.com/D59366 --HG-- extra : moz-landing-system : lando --- js/public/RealmOptions.h | 2 +- js/src/shell/fuzz-flags.txt | 1 - js/src/shell/js.cpp | 11 ++++++----- js/src/vm/SelfHosting.cpp | 4 ++-- modules/libpref/init/StaticPrefList.yaml | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/js/public/RealmOptions.h b/js/public/RealmOptions.h index d9921edc0899..243757d7daa1 100644 --- a/js/public/RealmOptions.h +++ b/js/public/RealmOptions.h @@ -312,7 +312,7 @@ class JS_PUBLIC_API RealmBehaviors { // singleton, instead of returning the value which is baked in the JSScript. bool singletonsAsTemplates_ = true; bool isNonLive_ = false; - bool deferredParserAlloc_ = false; + bool deferredParserAlloc_ = true; }; /** diff --git a/js/src/shell/fuzz-flags.txt b/js/src/shell/fuzz-flags.txt index da0ff998b982..56611536aa72 100644 --- a/js/src/shell/fuzz-flags.txt +++ b/js/src/shell/fuzz-flags.txt @@ -50,7 +50,6 @@ --nursery-strings=on --nursery-bigints=off --nursery-bigints=on ---parser-deferred-alloc --spectre-mitigations=off --spectre-mitigations=on --more-compartments diff --git a/js/src/shell/js.cpp b/js/src/shell/js.cpp index 829624a7b0c5..86c726f264d7 100644 --- a/js/src/shell/js.cpp +++ b/js/src/shell/js.cpp @@ -472,7 +472,7 @@ struct MOZ_STACK_CLASS EnvironmentPreparer void invoke(JS::HandleObject global, Closure& closure) override; }; -bool shell::enableDeferredMode = false; +bool shell::enableDeferredMode = true; bool shell::enableCodeCoverage = false; bool shell::enableDisassemblyDumps = false; bool shell::offthreadCompilation = false; @@ -11107,8 +11107,9 @@ int main(int argc, char** argv, char** envp) { "Print sub-ms runtime for each file that's run") || !op.addBoolOption('\0', "code-coverage", "Enable code coverage instrumentation.") || - !op.addBoolOption('\0', "parser-deferred-alloc", - "Defer allocation of GC objects until after parser") || + !op.addBoolOption( + '\0', "disable-parser-deferred-alloc", + "Disable deferred allocation of GC objects until after parser") || #ifdef DEBUG !op.addBoolOption('O', "print-alloc", "Print the number of allocations at exit") || @@ -11431,8 +11432,8 @@ int main(int argc, char** argv, char** envp) { coverage::EnableLCov(); } - enableDeferredMode = op.getBoolOption("parser-deferred-alloc") || - getenv("PARSER_DEFERRED_ALLOC") != nullptr; + enableDeferredMode = !op.getBoolOption("disable-parser-deferred-alloc") && + getenv("DISABLE_PARSER_DEFERRED_ALLOC") == nullptr; #ifdef JS_WITHOUT_NSPR if (!op.getMultiStringOption("dll").empty()) { diff --git a/js/src/vm/SelfHosting.cpp b/js/src/vm/SelfHosting.cpp index 3814e0abab6e..a388c065c942 100644 --- a/js/src/vm/SelfHosting.cpp +++ b/js/src/vm/SelfHosting.cpp @@ -2591,8 +2591,8 @@ GlobalObject* JSRuntime::createSelfHostingGlobal(JSContext* cx) { options.creationOptions().setInvisibleToDebugger(true); options.behaviors().setDiscardSource(true); - bool enableDeferredMode = getenv("PARSER_DEFERRED_ALLOC") != nullptr; - options.behaviors().setDeferredParserAlloc(enableDeferredMode); + bool disableDeferredMode = getenv("DISABLE_PARSER_DEFERRED_ALLOC") != nullptr; + options.behaviors().setDeferredParserAlloc(!disableDeferredMode); Realm* realm = NewRealm(cx, nullptr, options); if (!realm) { diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml index efa8483f44b1..fa2f33f48606 100644 --- a/modules/libpref/init/StaticPrefList.yaml +++ b/modules/libpref/init/StaticPrefList.yaml @@ -4159,7 +4159,7 @@ # Defer allocation of GC objects as late as possible in a parse - name: javascript.options.parser_defer_allocation type: RelaxedAtomicBool - value: false + value: true mirror: always - name: javascript.options.experimental.fields