computeIfUsingFuzzerAgent() is called before parsing command line arguments.
https://bugs.webkit.org/show_bug.cgi?id=204886
Reviewed by Saam Barati.
Rolling out r253015 which introduced computeIfUsingFuzzerAgent().
* runtime/Options.cpp:
(JSC::Options::initialize):
(JSC::computeIfUsingFuzzerAgent): Deleted.
* runtime/Options.h:
(JSC::Options::isUsingFuzzerAgent): Deleted.
* runtime/OptionsList.h:
(JSC::OptionRange::operator bool const): Deleted.
* runtime/VM.cpp:
(JSC::VM::VM):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@253164 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog
index a79dab0..688c497 100644
--- a/Source/JavaScriptCore/ChangeLog
+++ b/Source/JavaScriptCore/ChangeLog
@@ -1,3 +1,22 @@
+2019-12-05 Mark Lam <mark.lam@apple.com>
+
+ computeIfUsingFuzzerAgent() is called before parsing command line arguments.
+ https://bugs.webkit.org/show_bug.cgi?id=204886
+
+ Reviewed by Saam Barati.
+
+ Rolling out r253015 which introduced computeIfUsingFuzzerAgent().
+
+ * runtime/Options.cpp:
+ (JSC::Options::initialize):
+ (JSC::computeIfUsingFuzzerAgent): Deleted.
+ * runtime/Options.h:
+ (JSC::Options::isUsingFuzzerAgent): Deleted.
+ * runtime/OptionsList.h:
+ (JSC::OptionRange::operator bool const): Deleted.
+ * runtime/VM.cpp:
+ (JSC::VM::VM):
+
2019-12-04 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] AI should convert IsCellWithType to constant when Structure set is finite
diff --git a/Source/JavaScriptCore/runtime/Options.cpp b/Source/JavaScriptCore/runtime/Options.cpp
index e8987ed..bd316b5 100644
--- a/Source/JavaScriptCore/runtime/Options.cpp
+++ b/Source/JavaScriptCore/runtime/Options.cpp
@@ -536,21 +536,6 @@
return reinterpret_cast<uint8_t*>(&g_jscConfig.options) + offset;
}
-static void computeIfUsingFuzzerAgent()
-{
- g_jscConfig.options.isUsingFuzzerAgent = false;
-#define CHECK_IF_USING_FUZZER_AGENT(type_, name_, defaultValue_, availability_, description_) { \
- const char name[] = #name_; \
- unsigned nameLength = strlen(name); \
- if (nameLength > 14 && !strncmp(name, "use", 3) && !strncmp(&name[nameLength -11], "FuzzerAgent", 11)) { \
- if (Options::name_()) \
- g_jscConfig.options.isUsingFuzzerAgent = true; \
- } \
- }
- FOR_EACH_JSC_OPTION(CHECK_IF_USING_FUZZER_AGENT)
-#undef CHECK_IF_USING_FUZZER_AGENT
-}
-
void Options::initialize()
{
static std::once_flag initializeOptionsOnceFlag;
@@ -624,7 +609,6 @@
dumpOptionsIfNeeded();
ensureOptionsAreCoherent();
- computeIfUsingFuzzerAgent();
#if HAVE(MACH_EXCEPTIONS)
if (Options::useMachForExceptions())
diff --git a/Source/JavaScriptCore/runtime/Options.h b/Source/JavaScriptCore/runtime/Options.h
index e936da4..93bd8ca 100644
--- a/Source/JavaScriptCore/runtime/Options.h
+++ b/Source/JavaScriptCore/runtime/Options.h
@@ -97,8 +97,6 @@
static bool isAvailable(ID, Availability);
- static bool isUsingFuzzerAgent() { return g_jscConfig.options.isUsingFuzzerAgent; }
-
private:
struct ConstMetaData {
const char* name;
diff --git a/Source/JavaScriptCore/runtime/OptionsList.h b/Source/JavaScriptCore/runtime/OptionsList.h
index ae4d9e2..03f2852 100644
--- a/Source/JavaScriptCore/runtime/OptionsList.h
+++ b/Source/JavaScriptCore/runtime/OptionsList.h
@@ -572,8 +572,6 @@
bool isInRange(unsigned);
const char* rangeString() const { return (m_state > InitError) ? m_rangeString : s_nullRangeStr; }
- operator bool() const { return m_state != Uninitialized; }
-
void dump(PrintStream& out) const;
private:
@@ -600,8 +598,6 @@
type_ name_##Default;
FOR_EACH_JSC_OPTION(DECLARE_OPTION)
#undef DECLARE_OPTION
-
- bool isUsingFuzzerAgent; // This value is computed in Options::initialize().
};
// Options::Metadata's offsetOfOption and offsetOfOptionDefault relies on this.
diff --git a/Source/JavaScriptCore/runtime/VM.cpp b/Source/JavaScriptCore/runtime/VM.cpp
index deedc04..72a2007 100644
--- a/Source/JavaScriptCore/runtime/VM.cpp
+++ b/Source/JavaScriptCore/runtime/VM.cpp
@@ -493,16 +493,14 @@
}
#endif // ENABLE(SAMPLING_PROFILER)
- if (UNLIKELY(Options::isUsingFuzzerAgent())) {
- if (Options::useRandomizingFuzzerAgent())
- setFuzzerAgent(makeUnique<RandomizingFuzzerAgent>(*this));
- if (Options::useDoublePredictionFuzzerAgent())
- setFuzzerAgent(makeUnique<DoublePredictionFuzzerAgent>(*this));
- if (Options::useFileBasedFuzzerAgent())
- setFuzzerAgent(makeUnique<FileBasedFuzzerAgent>(*this));
- if (Options::usePredictionFileCreatingFuzzerAgent())
- setFuzzerAgent(makeUnique<PredictionFileCreatingFuzzerAgent>(*this));
- }
+ if (Options::useRandomizingFuzzerAgent())
+ setFuzzerAgent(makeUnique<RandomizingFuzzerAgent>(*this));
+ if (Options::useDoublePredictionFuzzerAgent())
+ setFuzzerAgent(makeUnique<DoublePredictionFuzzerAgent>(*this));
+ if (Options::useFileBasedFuzzerAgent())
+ setFuzzerAgent(makeUnique<FileBasedFuzzerAgent>(*this));
+ if (Options::usePredictionFileCreatingFuzzerAgent())
+ setFuzzerAgent(makeUnique<PredictionFileCreatingFuzzerAgent>(*this));
if (Options::alwaysGeneratePCToCodeOriginMap())
setShouldBuildPCToCodeOriginMapping();