Add support for aliasing JSC Options.
authormark.lam@apple.com <mark.lam@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Jan 2016 19:12:05 +0000 (19:12 +0000)
committermark.lam@apple.com <mark.lam@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Jan 2016 19:12:05 +0000 (19:12 +0000)
commite76b8fc30ba999e8b1c909b07b0b8b108871485b
tree5447af5e81e804a8e721e700a0a5e4cdb9cdddbe
parentcc71744509ba7af5f9c2abb674df6a331d927b2f
Add support for aliasing JSC Options.
https://bugs.webkit.org/show_bug.cgi?id=152551

Reviewed by Filip Pizlo.

This allows us to use old options names as well.  This is for the benefit of
third party tools which may have been built to rely on those old options.  The
old option names will be mapped to the current option names in setOption().

For some options, the old option name specifies the inverse boolean value of the
current option name.  setOption() will take care of inverting the value before
applying it to the option.

* jsc.cpp:
(CommandLine::parseArguments):
- Switch to dumping only overridden options here.  Verbose dumping is too much
  for common usage.
* runtime/Options.cpp:
(JSC::overrideOptionWithHeuristic):
(JSC::Options::overrideAliasedOptionWithHeuristic):
(JSC::computeNumberOfWorkerThreads):
(JSC::Options::initialize):
(JSC::Options::setOptionWithoutAlias):
(JSC::invertBoolOptionValue):
(JSC::Options::setAliasedOption):
(JSC::Options::setOption):
(JSC::Options::dumpAllOptions):
- String.ascii() converts newline characters to '?', and this was messing up the
  printing of the options.  Switched to using String.utf8() instead.
(JSC::Options::dumpOption):
* runtime/Options.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194591 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/jsc.cpp
Source/JavaScriptCore/runtime/Options.cpp
Source/JavaScriptCore/runtime/Options.h