Add "-o/--output" option to startup.py and new_tab.py benchmark scripts to save the...
[WebKit-https.git] / PerformanceTests / ChangeLog
index a44e6c7..704dec4 100644 (file)
-2017-08-22  Ryosuke Niwa  <rniwa@webkit.org>
+2018-12-17  Suresh Koppisetty  <skoppisetty@apple.com>
 
-        Speedometer 2.0: Make it possible to change the iteration count via query string
-        https://bugs.webkit.org/show_bug.cgi?id=175811
-
-        Reviewed by Saam Barati.
-
-        Added the support for specifying the iteration count by "iterationCount" query parameter, and replaced "ms"
-        query parameter by "unit=ms".
-
-        Finally, reduced the number of iterations from 20 to 10 to reduce the time needed to run the benchmark
-        since Speedometer 2.0 contains more than twice the number of libraries and frameworks than Speedometer 1.0.
-
-        * Speedometer/resources/main.js:
-        (window.benchmarkClient.didFinishLastIteration):
-        (startBenchmark):
-
-2017-08-22  Mathias Bynens  <mathias@qiwi.be>
-
-        Speedometer: Add missing stylesheet to Angular example
-        https://bugs.webkit.org/show_bug.cgi?id=175820
-
-        Reviewed by Ryosuke Niwa.
-
-        * Speedometer/resources/todomvc/architecture-examples/angular/dist/styles.d41d8cd98f00b204e980.bundle.css: Added.
-
-2017-08-22  Ryosuke Niwa  <rniwa@webkit.org>
-
-        Speedometer 2.0: Add button to select and unselect all tests to InteractiveRunner.html
-        https://bugs.webkit.org/show_bug.cgi?id=175816
-
-        Reviewed by Saam Barati.
-
-        Added buttons to select and unselect all subtests to aid debugging.
-
-        * Speedometer/InteractiveRunner.html:
-        (createUIForSuites):
-
-2017-08-18  Ryosuke Niwa  <rniwa@webkit.org>
-
-        REGRESSION(r219640): Speedometer no longer runs on Safari 7
-        https://bugs.webkit.org/show_bug.cgi?id=175749
-
-        Reviewed by Joseph Pecoraro.
-
-        Use regular string instead of template literal to make the script compatible with older versions of Safari.
-
-        * Speedometer/resources/benchmark-runner.js:
-        (BenchmarkRunner.prototype._runTest):
-
-2017-08-17  Mathias Bynens  <mathias@qiwi.be>
-
-        Speedometer: Update to modern Vue.js version
-        https://bugs.webkit.org/show_bug.cgi?id=175660
+        Add "-o/--output" option to startup.py and new_tab.py benchmark scripts to save the results in json format.
+        https://bugs.webkit.org/show_bug.cgi?id=192385
 
         Reviewed by Ryosuke Niwa.
 
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/README.md: Documented build process.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/index.js: Forced relative URLs to avoid breaking the interactive runner.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/*: Updated per build steps.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/package-lock.json: Added to pin dependencies and make builds deterministic.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/package.json: Update to modern Vue.js version.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/components/Todos.vue: Fix markup error.
-
-2017-08-17  Mathias Bynens  <mathias@qiwi.be>
-
-        Speedometer: Update to modern React/Redux version
-        https://bugs.webkit.org/show_bug.cgi?id=175669
-
-        Reviewed by Ryosuke Niwa.
-
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/README.md: Documented build steps.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/*: Updated per build instructions.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/package-lock.json: Pinned dependencies to make builds deterministic.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/package.json: Fixed build command.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/public/index.html: Made title consistent.
-
-2017-08-17  Michael Saboff  <msaboff@apple.com>
-
-        Add a Unicode test to RexBench that matches non-BMP characters
-        https://bugs.webkit.org/show_bug.cgi?id=175697
-
-        Reviewed by JF Bastien.
-
-        Added a new sub test that simulates 5 card stud poker.  This test uses the Unicode playing
-        cards code points, U+1F0A1..U+1F0DE, as the card representation.  The scoring of hands is
-        done using three regular expressions, one to check for a flush, one to check for straights
-        and one to check for pairs, three of a kind and four of a kind.
-
-        * RexBench/UniPoker: Added.
-        * RexBench/UniPoker/benchmark.js: Added.
-        (UniPokerBenchmark):
-        (UniPokerBenchmark.prototype.setup.):
-        (UniPokerBenchmark.prototype.setup.Math.random):
-        (UniPokerBenchmark.prototype.setup):
-        (UniPokerBenchmark.prototype.runOnce):
-        (UniPokerBenchmark.prototype.validate):
-        * RexBench/UniPoker/expected.js: Added.
-        (PlayerExpectation):
-        (PlayerExpectation.prototype.validate):
-        * RexBench/UniPoker/poker.js: Added.
-        (CardDeck):
-        (CardDeck.prototype.newDeck):
-        (CardDeck.prototype.shuffle):
-        (CardDeck.prototype.dealOneCard):
-        (CardDeck.cardRank):
-        (CardDeck.cardName):
-        (Hand):
-        (Hand.prototype.clear):
-        (Hand.prototype.takeCard):
-        (Hand.prototype.score):
-        (Hand.prototype.get rank):
-        (Hand.prototype.toString):
-        (Player):
-        (Player.prototype.scoreHand):
-        (Player.prototype.wonHand):
-        (Player.prototype.get name):
-        (Player.prototype.get hand):
-        (Player.prototype.get wins):
-        (Player.prototype.get handTypeCounts):
-        (playHands):
-        * RexBench/about.html:
-        * RexBench/cli.js:
-        * RexBench/glue.js:
-        (driver.reportResult):
-        * RexBench/index.html:
-        * RexBench/unipoker_benchmark.js: Added.
-
-2017-08-16  Mathias Bynens  <mathias@qiwi.be>
-
-        Speedometer: Update Angular 1 TodoMVC example to v1.6.5
-        https://bugs.webkit.org/show_bug.cgi?id=175623
+        Sample json output for new tab benchmark script after running for 2 iterations and 2 groups. Values are in milliseconds.
+        {
+                "NewTabBenchmark": {
+                        "metrics": {
+                                "Time": {
+                                        "current": [
+                                                [
+                                                        410.2939453125,
+                                                        307.81494140625
+                                                ],
+                                                [
+                                                        340.616943359375,
+                                                        265.94384765625
+                                                ]
+                                        ]
+                                }
+                        }
+                }
+        }
 
-        Reviewed by Ryosuke Niwa.
+        Sample json output for startup time benchmark script after running for 2 iterations. Values are in milliseconds.
+        {
+                "StartupBenchmark": {
+                        "metrics": {
+                                "Time": {
+                                        "current": [
+                                                [
+                                                        1415.2099609375,
+                                                        1439.552978515625
+                                                ]
+                                        ]
+                                }
+                        }
+                }
+        }
 
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/index.html: Made title consistent.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.min.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.min.js.map: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.min.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.min.js.map: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.min.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.min.js.map: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/package.json: Updated per build steps.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/package.json: Updated per build steps.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/package-lock.json: Added to pin dependencies.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/package.json: Updated per build steps.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md: Document the build process.
+        * LaunchTime/launch_time.py:
+        * LaunchTime/new_tab.py:
+        (NewTabBenchmark.get_test_name):
+        * LaunchTime/startup.py:
+        (StartupBenchmark.get_test_name):
 
-2017-08-16  Mathias Bynens  <mathias@qiwi.be>
+2018-12-17  Suresh Koppisetty  <skoppisetty@apple.com>
 
-        Speedometer: Document Backbone example
-        https://bugs.webkit.org/show_bug.cgi?id=175626
+        Import FeedbackServer only if "-f/--feedback-in-browser" option is enabled.
+        https://bugs.webkit.org/show_bug.cgi?id=192378
 
         Reviewed by Ryosuke Niwa.
 
-        * Speedometer/resources/todomvc/architecture-examples/backbone/index.html: Made title consistent.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/backbone/backbone-min.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/backbone/backbone-min.map: Added.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.js: Updated per build steps.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.min.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.min.map: Added.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-app-css/index.css: Updated per build steps.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore-min.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore-min.map: Added.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/package-lock.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/readme.md: Documented build steps.
-
-2017-08-15  Michael Saboff  <msaboff@apple.com>
-
-        Add Offline Assembler parsing test to RexBench
-        https://bugs.webkit.org/show_bug.cgi?id=175581
-
-        Reviewed by Saam Barati.
-
-        This is a port of the JavaScriptCore offline assmebler's lexer, parser, AST and
-        supporting code from Ruby to JavaScript turned into a benchmark.  The benchmark
-        timing includes parsing through AST.  The validation processing time is not
-        part of the benchmark measurement.
-
-        The input data is the current tip of tree LLInt .asm source files.  Those file
-        were converted to JavaScript using the python script, convert_asm_to_js.py.
-        There is also a new JavaScript file, generate_expected.js, to create the
-        expected output JavaScript file.
-
-        * RexBench/OfflineAssembler: Added.
-        * RexBench/OfflineAssembler/ast.js: Added.
-        * RexBench/OfflineAssembler/instructions.js: Added.
-        * RexBench/OfflineAssembler/parser.js: Added.
-        * RexBench/OfflineAssembler/registers.js: Added.
-        These are JavaScript translation of the Ruby Offline Assembler.  Code not
-        needed for the benchmark was not translated and therefore missing.
-
-        * RexBench/OfflineAssembler/InitBytecodes.asm: Added.
-        * RexBench/OfflineAssembler/InitBytecodes.js: Added.
-        * RexBench/OfflineAssembler/LowLevelInterpreter.asm: Added.
-        * RexBench/OfflineAssembler/LowLevelInterpreter.js: Added.
-        * RexBench/OfflineAssembler/LowLevelInterpreter32_64.asm: Added.
-        * RexBench/OfflineAssembler/LowLevelInterpreter32_64.js: Added.
-        * RexBench/OfflineAssembler/LowLevelInterpreter64.asm: Added.
-        * RexBench/OfflineAssembler/LowLevelInterpreter64.js: Added.
-        Copies of the current LLInt source and conversion to JavaScript.
-
-        * RexBench/OfflineAssembler/file.js: Added.
-        (File):
-        (File.open):
-        (File.prototype.read):
-        Mock File class used to simulate filesystem access.
+        FeedbackServer currently depends on Tornado-5.1, which further adds
+        dependency of "singledispatch", "backports-abc" and "futures" python libraries.
+        Importing FeedbackServer only if "-f/--feedback-in-browser" option is enabled
+        will let us run the benchmark scripts without installing any new python libraries.
 
-        * RexBench/OfflineAssembler/expected.js: Added.
-        Expected output of the AST dumped and split into individual lines.
+        * LaunchTime/launch_time.py:
+        * LaunchTime/new_tab.py:
 
-        * RexBench/OfflineAssembler/benchmark.js: Added.
-        (OfflineAssemblerBenchmark):
-        (OfflineAssemblerBenchmark.prototype.runOnce):
-        (OfflineAssemblerBenchmark.prototype.validate):
-        Benchmark sub class for this test.
+2018-12-13  Caio Lima  <ticaiolima@gmail.com>
 
-        * RexBench/OfflineAssembler/convert_asm_to_js.py: Added.
-        (convertFile):
-        Converts .asm into .js files compatible to the benchmark.
+        [BigInt] Add ValueDiv into DFG
+        https://bugs.webkit.org/show_bug.cgi?id=186178
 
-        * RexBench/OfflineAssembler/generate_expected.js: Added.
-        Converts AST output into the expected file format.
-
-        * RexBench/about.html: Added description of this sub-benchmark test.
+        Reviewed by Yusuke Suzuki.
 
-        * RexBench/cli.js:
-        * RexBench/glue.js:
-        * RexBench/index.html:
-        * RexBench/offline_assembler_benchmark.js: Added.
-        Updates to add this sub-benchmark.
+        * BigIntBench/big-int-simple-div.js: Added.
+        * BigIntBench/value-div-type-propagation.js: Added.
 
-2017-08-09  Myles C. Maxfield  <mmaxfield@apple.com>
+2018-12-10  Caio Lima  <ticaiolima@gmail.com>
 
-        font-fallback-font-family.html is failing on perf bots
-        https://bugs.webkit.org/show_bug.cgi?id=174989
+        [BigInt] Add ValueMul into DFG
+        https://bugs.webkit.org/show_bug.cgi?id=186175
 
-        Unreviewed.
+        Reviewed by Yusuke Suzuki.
 
-        * Layout/resources/font-fallback-font-family.html:
+        * BigIntBench/big-int-simple-mul.js: Added.
+        * BigIntBench/value-mul-type-propagation.js: Added.
 
-2017-08-09  Michael Saboff  <msaboff@apple.com>
+2018-11-07  Caio Lima  <ticaiolima@gmail.com>
 
-        Unreviewed build fix.
+        [BigInt] Add support to BigInt into ValueAdd
+        https://bugs.webkit.org/show_bug.cgi?id=186177
 
-        Added missing files.
+        Reviewed by Keith Miller.
 
-        * RexBench/Octane2/benchmark.js: Added.
-        (Octane2RegExpBenchmark):
-        (Octane2RegExpBenchmark.prototype.setup.):
-        (Octane2RegExpBenchmark.prototype.setup.Math.random):
-        (Octane2RegExpBenchmark.prototype.setup):
-        (Octane2RegExpBenchmark.prototype.runOnce):
-        (Octane2RegExpBenchmark.prototype.tearDown):
-        * RexBench/SunSpider/benchmark.js: Added.
-        (RegexDNABenchmark):
-        (RegexDNABenchmark.prototype.runOnce):
-        (RegexDNABenchmark.prototype.validate):
+        The idea of BigIntBench is to provide a set of microbenchmarks and
+        benchmarks to evaluate how fast BigInt computations are happening on
+        JSC implementation.
 
-2017-08-09  Michael Saboff  <msaboff@apple.com>
+        Now, we are adding microbenchmarks in this set,
+        but the plan is to move these tests to "JSTest/microbenchmarks" when
+        BigInt is enabled by default. After that, the focus of Bigint bench is
+        to provide a set of tests that represents real use cases of BigInt in
+        JS programs.
 
-        Rex Bench doesn't work from the command line
-        https://bugs.webkit.org/show_bug.cgi?id=175349
+        * BigIntBench/big-int-add-prediction-propagation.js: Added.
+        * BigIntBench/big-int-simple-add.js: Added.
+        * BigIntBench/big-int-simple-sub.js: Added.
 
-        Reviewed by Saam Barati.
+2018-11-07  Tadeu Zagallo  <tzagallo@apple.com>
 
-        Fixed cli.js to have the same set of benchmarks and .js files as the web
-        page driver.
-
-        Refactored the way benchmarks are run using a new Benchmark base class.  That
-        class will run the benchmark as well.  Eliminated the various runBenchmark()
-        functions that were used for individual tests.  This refactoring was threaded
-        into the web page driver as well.  Changed the iteration counts on many of the
-        individual benchmarks.  Also changed the inner loop count for the flight
-        planner test.
-
-        Eliminated Octane2/base.js as it isn't needed to run Octane2/RegExp with the 
-        new test harness.  Eliminated other dead code in Octane2/regexp.js.
-
-        * RexBench/Basic/benchmark.js:
-        (BasicBenchmark):
-        (BasicBenchmark.prototype.runIteration): Deleted.
-        (runBenchmark): Deleted.
-        * RexBench/FlightPlanner/benchmark.js:
-        (FlightPlannerBenchmark):
-        (FlightPlannerBenchmark.prototype.runOnce):
-        (this.performance.performance.now.currentTime): Deleted.
-        (else.this.preciseTime.currentTime): Deleted.
-        (else.currentTime): Deleted.
-        (FlightPlannerBenchmark.prototype.runIteration): Deleted.
-        (FlightPlannerBenchmark.prototype.checkResults): Deleted.
-        (runBenchmark): Deleted.
-        * RexBench/Octane2/base.js: Removed.
-        * RexBench/Octane2/regexp.js:
-        * RexBench/basic_benchmark.js:
-        * RexBench/benchmark.js: Added.
-        (this.performance.performance.now.currentTime):
-        (else.this.preciseTime.currentTime):
-        (else.currentTime):
-        (Benchmark):
-        (Benchmark.prototype.runIterations):
-        (Benchmark.prototype.setup):
-        (Benchmark.prototype.runOnce):
-        (Benchmark.prototype.validate):
-        (Benchmark.prototype.tearDown):
-        * RexBench/cli.js:
-        * RexBench/flightplan_benchmark.js:
-        * RexBench/flightplan_unicode_benchmark.js:
-        * RexBench/octane2_benchmark.js:
-        * RexBench/stats.js:
-        (Stats.prototype.toString.return.span.0.span.span):
-        * RexBench/sunspider_benchmark.js:
-
-2017-08-07  Michael Saboff  <msaboff@apple.com>
-
-        Use more accurate Russian keywords for RexBench/FlightPlanner Unicode mode
-        https://bugs.webkit.org/show_bug.cgi?id=175298
+        REGRESSION(r237547): Test failures on 32-bit JSC since the JIT was disabled
+        https://bugs.webkit.org/show_bug.cgi?id=191184
 
         Reviewed by Saam Barati.
 
-        With the help of Alexey Proskuryakov updated the Russian keywords.
-
-        * RexBench/FlightPlanner/use_unicode.js:
+        Skip test when the JIT is disabled, it takes too long to run on CLoop.
 
-2017-08-07  Mathias Bynens  <mathias@qiwi.be>
+        * JetStream/cdjs/main.js:
 
-        Speedometer: Update to modern production Ember version
-        https://bugs.webkit.org/show_bug.cgi?id=175278
+2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>
 
-        Reviewed by Ryosuke Niwa.
+        Cache glyph paths and share underline skipping code between all the ports
+        https://bugs.webkit.org/show_bug.cgi?id=191239
 
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/README.md: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/index.html: Made title consistent.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/README.md: Documented build process.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/.gitkeep: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/index.html: Made title consistent.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/instance-initializers/global.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/models/.gitkeep: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/router.js: Update to latest version.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/routes/.gitkeep: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/repo.js: Update to latest version
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/styles/app.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/.gitkeep: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/bower.json: Update to latest version.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/config/environment.js: Update to latest version.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/dist/*: Added generated files per build instructions.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/package-lock.json: Pinned dependencies.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/package.json: Update to latest version.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/.jshintrc: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/module-for-acceptance.js: Updated to latest version.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/start-app.js: Updated to latest version.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/index.html: Updated to latest version.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/integration/.gitkeep: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/unit/.gitkeep: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/.gitkeep: Added.
-
-2017-08-07  Michael Saboff  <msaboff@apple.com>
-
-        REGRESSION(r220307): Perf bot failure trying to run RexBench tests
-        https://bugs.webkit.org/show_bug.cgi?id=175289
-
-        Reviewed by Filip Pizlo.
-
-        Add RexBench to the list of benchmarks we skip on the perf bots.
+        Reviewed by Alex Christensen.
 
-        * Skipped:
+        Measures the performance of drawing a whole lot of underlines
 
-2017-08-04  Michael Saboff  <msaboff@apple.com>
+        * Layout/underline.html: Added.
 
-        Create a new JavaScript RegExp benchmark
-        https://bugs.webkit.org/show_bug.cgi?id=175225
+2018-10-25  Saam Barati  <sbarati@apple.com>
 
-        Reviewed by JF Bastien.
+        Check in corresponding C code in JetStream 2
+        https://bugs.webkit.org/show_bug.cgi?id=190733
 
-        This is a new benchmark for Regular Expressions.  It borrows regex-dna from
-        SunSpider, the regexp test from Octane2, the BASIC parser from ARES-6/Basic,
-        and adds a new flight planner benchmark that uses RegExp's for textual parsing.
+        Rubber-stamped by Filip Pizlo.
 
-        There needs to be some additions and changes to some of the textual content.
-        This includes adding more BASIC programs to the Basic test and increasing 
-        keyword usage in the Flight Planner to increase the 16-bit coverage.
+        * JetStream2/simple/float-mm.c: Added.
+        * JetStream2/wasm/HashSet.cpp: Added.
+        * JetStream2/wasm/gcc-loops.cpp: Added.
+        * JetStream2/wasm/quicksort.c: Added.
+        * JetStream2/wasm/TSF: Added.
+        * JetStream2/wasm/TSF/build.sh: Added.
+        * JetStream2/wasm/TSF/config.h: Added.
+        * JetStream2/wasm/TSF/gpc.h: Added.
+        * JetStream2/wasm/TSF/gpc_code_gen_util.c: Added.
+        * JetStream2/wasm/TSF/gpc_instruction.c: Added.
+        * JetStream2/wasm/TSF/gpc_instruction_dispatch.gen: Added.
+        * JetStream2/wasm/TSF/gpc_instruction_size.gen: Added.
+        * JetStream2/wasm/TSF/gpc_instruction_stack_effects.gen: Added.
+        * JetStream2/wasm/TSF/gpc_instruction_static_size.gen: Added.
+        * JetStream2/wasm/TSF/gpc_instruction_to_string.gen: Added.
+        * JetStream2/wasm/TSF/gpc_int_common.h: Added.
+        * JetStream2/wasm/TSF/gpc_intable.c: Added.
+        * JetStream2/wasm/TSF/gpc_internal.h: Added.
+        * JetStream2/wasm/TSF/gpc_interpreter.gen: Added.
+        * JetStream2/wasm/TSF/gpc_program.c: Added.
+        * JetStream2/wasm/TSF/gpc_proto.c: Added.
+        * JetStream2/wasm/TSF/gpc_stack_height.c: Added.
+        * JetStream2/wasm/TSF/gpc_threaded.c: Added.
+        * JetStream2/wasm/TSF/gpc_worklist.h: Added.
+        * JetStream2/wasm/TSF/tsf.h: Added.
+        * JetStream2/wasm/TSF/tsf_adaptive_reader.c: Added.
+        * JetStream2/wasm/TSF/tsf_asprintf.c: Added.
+        * JetStream2/wasm/TSF/tsf_atomics.h: Added.
+        * JetStream2/wasm/TSF/tsf_buf_reader.c: Added.
+        * JetStream2/wasm/TSF/tsf_buf_writer.c: Added.
+        * JetStream2/wasm/TSF/tsf_buffer.c: Added.
+        * JetStream2/wasm/TSF/tsf_build_defines.h: Added.
+        * JetStream2/wasm/TSF/tsf_config.h: Added.
+        * JetStream2/wasm/TSF/tsf_config_stub.h: Added.
+        * JetStream2/wasm/TSF/tsf_copier.c: Added.
+        * JetStream2/wasm/TSF/tsf_define_helpers.c: Added.
+        * JetStream2/wasm/TSF/tsf_define_helpers.h: Added.
+        * JetStream2/wasm/TSF/tsf_destructor.c: Added.
+        * JetStream2/wasm/TSF/tsf_error.c: Added.
+        * JetStream2/wasm/TSF/tsf_format.h: Added.
+        * JetStream2/wasm/TSF/tsf_fsdb.c: Added.
+        * JetStream2/wasm/TSF/tsf_fsdb_protocol.c: Added.
+        * JetStream2/wasm/TSF/tsf_fsdb_protocol.h: Added.
+        * JetStream2/wasm/TSF/tsf_generator.c: Added.
+        * JetStream2/wasm/TSF/tsf_gpc_code_gen.c: Added.
+        * JetStream2/wasm/TSF/tsf_indent.h: Added.
+        * JetStream2/wasm/TSF/tsf_internal.h: Added.
+        * JetStream2/wasm/TSF/tsf_internal_config.h: Added.
+        * JetStream2/wasm/TSF/tsf_internal_config_stub.h: Added.
+        * JetStream2/wasm/TSF/tsf_inttypes.h: Added.
+        * JetStream2/wasm/TSF/tsf_io.c: Added.
+        * JetStream2/wasm/TSF/tsf_io_utils.c: Added.
+        * JetStream2/wasm/TSF/tsf_ir.c: Added.
+        * JetStream2/wasm/TSF/tsf_ir.h: Added.
+        * JetStream2/wasm/TSF/tsf_ir_different.c: Added.
+        * JetStream2/wasm/TSF/tsf_ir_different.h: Added.
+        * JetStream2/wasm/TSF/tsf_ir_speed.c: Added.
+        * JetStream2/wasm/TSF/tsf_limits.c: Added.
+        * JetStream2/wasm/TSF/tsf_named_type.c: Added.
+        * JetStream2/wasm/TSF/tsf_native.c: Added.
+        * JetStream2/wasm/TSF/tsf_parser.c: Added.
+        * JetStream2/wasm/TSF/tsf_primitive.c: Added.
+        * JetStream2/wasm/TSF/tsf_ra_type_man.c: Added.
+        * JetStream2/wasm/TSF/tsf_reflect.c: Added.
+        * JetStream2/wasm/TSF/tsf_region.h: Added.
+        * JetStream2/wasm/TSF/tsf_serial_in_man.c: Added.
+        * JetStream2/wasm/TSF/tsf_serial_out_man.c: Added.
+        * JetStream2/wasm/TSF/tsf_serial_protocol.h: Added.
+        * JetStream2/wasm/TSF/tsf_sha1.c: Added.
+        * JetStream2/wasm/TSF/tsf_sha1.h: Added.
+        * JetStream2/wasm/TSF/tsf_sha1_writer.c: Added.
+        * JetStream2/wasm/TSF/tsf_sort.c: Added.
+        * JetStream2/wasm/TSF/tsf_st.c: Added.
+        * JetStream2/wasm/TSF/tsf_st.h: Added.
+        * JetStream2/wasm/TSF/tsf_st_typetable.c: Added.
+        * JetStream2/wasm/TSF/tsf_stream_file_input.c: Added.
+        * JetStream2/wasm/TSF/tsf_stream_file_output.c: Added.
+        * JetStream2/wasm/TSF/tsf_type.c: Added.
+        * JetStream2/wasm/TSF/tsf_type_in_map.c: Added.
+        * JetStream2/wasm/TSF/tsf_type_out_map.c: Added.
+        * JetStream2/wasm/TSF/tsf_type_table.c: Added.
+        * JetStream2/wasm/TSF/tsf_types.h: Added.
+        * JetStream2/wasm/TSF/tsf_util.h: Added.
+        * JetStream2/wasm/TSF/tsf_version.c: Added.
+        * JetStream2/wasm/TSF/tsf_zip_abstract.c: Added.
+        * JetStream2/wasm/TSF/tsf_zip_abstract.h: Added.
+        * JetStream2/wasm/TSF/tsf_zip_attr.c: Added.
+        * JetStream2/wasm/TSF/tsf_zip_reader.c: Added.
+        * JetStream2/wasm/TSF/tsf_zip_writer.c: Added.
+
+2018-10-18  Saam Barati  <sbarati@apple.com>
+
+        Make JetStream 2
+        https://bugs.webkit.org/show_bug.cgi?id=187829
+
+        Rubber-stamped by Mark Lam.
+
+        This patch checks in the new JetStream 2 benchmark. JetStream 2 is
+        a new JavaScript and Web Assembly benchmark. JetStream 2's goal
+        is to measure the startup, worst case, and peak throughput performance
+        of the JavaScript engine. JetStream 2 incorporates these previous
+        benchmarks:
+        - JetStream
+        - ARES-6
+        - Kraken
+        - Web Tooling Benchmark
+        - WasmBench
+        - RexBench
         
-        The intent is to grow this benchmark by adding a JavaScript implementation of the 
-        offline assembler lexer and parser as well as adding some targeted micro benchmark
-        tests.
-
-        * RexBench: Added.
-        * RexBench/Basic: Added.
-        * RexBench/Basic/ast.js: Added.
-        * RexBench/Basic/basic.js: Added.
-        * RexBench/Basic/benchmark.js: Added.
-        * RexBench/Basic/caseless_map.js: Added.
-        * RexBench/Basic/lexer.js: Added.
-        * RexBench/Basic/number.js: Added.
-        * RexBench/Basic/parser.js: Added.
-        * RexBench/Basic/random.js: Added.
-        * RexBench/Basic/state.js: Added.
-        * RexBench/Basic/stress-test.js: Added.
-        * RexBench/Basic/util.js: Added.
-        * RexBench/FlightPlanner: Added.
-        * RexBench/FlightPlanner/airways.js: Added.
-        * RexBench/FlightPlanner/benchmark.js: Added.
-        * RexBench/FlightPlanner/convert-nfdc.py: Added.
-        * RexBench/FlightPlanner/expectations.js: Added.
-        * RexBench/FlightPlanner/flight_planner.js: Added.
-        * RexBench/FlightPlanner/use_unicode.js: Added.
-        * RexBench/FlightPlanner/waypoints.js: Added.
-        * RexBench/Octane2: Added.
-        * RexBench/Octane2/base.js: Added.
-        * RexBench/Octane2/regexp.js: Added.
-        * RexBench/SunSpider: Added.
-        * RexBench/SunSpider/regex-dna.js: Added.
-        * RexBench/about.html: Added.
-        * RexBench/basic_benchmark.js: Added.
-        * RexBench/cli.js: Added.
-        * RexBench/driver.js: Added.
-        * RexBench/flightplan_benchmark.js: Added.
-        * RexBench/flightplan_unicode_benchmark.js: Added.
-        * RexBench/glue.js: Added.
-        * RexBench/index.html: Added.
-        * RexBench/octane2_benchmark.js: Added.
-        * RexBench/results.js: Added.
-        * RexBench/stats.js: Added.
-        * RexBench/styles.css: Added.
-        * RexBench/sunspider_benchmark.js: Added.
-
-2017-07-31  Mathias Bynens  <mathias@qiwi.be>
-
-        Speedometer 2.0: Remove <base> from Angular 4 test
-        https://bugs.webkit.org/show_bug.cgi?id=175004
-
-        Reviewed by Ryosuke Niwa.
-
-        * Speedometer/resources/todomvc/architecture-examples/angular/dist/index.html: Remove <base>.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/index.html: Remove <base>.
-
-2017-07-29  Mathias Bynens  <mathias@chromium.org>
-
-        Speedometer 2.0: Document vanilla/es2015 build process
-        https://bugs.webkit.org/show_bug.cgi?id=174894
+        JetStream 2 also adds some new benchmarks:
+        - Two tests emphasizing web worker performance.
+        - One test emphasizing Promise, async iteration, and DataView performance.
+        - Two new code load tests.
+        - WSL: a test measuring all kinds of things, especially emphasizing exception performance.
 
-        Reviewed by Ryosuke Niwa.
-
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/README.md: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/index.html: Made title consistent.
-
-2017-07-27  Mathias Bynens  <mathias@chromium.org>
-
-        Speedometer 2.0: Document Angular 4 build process
-        https://bugs.webkit.org/show_bug.cgi?id=174896
-
-        Reviewed by Ryosuke Niwa.
-
-        This patch documents the build process for the Angular 4 example, pins the dependencies (so
-        that builds are deterministic), and updates the generated files accordingly.
-
-        * Speedometer/resources/todomvc/architecture-examples/angular/README.md: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/dist/*: Update per build instructions.
-        * Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.e2e-spec.ts: Removed unused file.
-        * Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.po.ts: Removed unused file.
-        * Speedometer/resources/todomvc/architecture-examples/angular/e2e/tsconfig.e2e.json: Removed unused file.
-        * Speedometer/resources/todomvc/architecture-examples/angular/package.json: Remove unneeded scripts.
-        * Speedometer/resources/todomvc/architecture-examples/angular/package-lock.json: Added to pin dependencies.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.ts: Updated.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/environments/environment.ts: Updated.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/index.html: Made title consistent.
-
-2017-07-25  Mathias Bynens  <mathias@qiwi.be>
-
-        Speedometer 2.0: Document es2015-babel-webpack build process
-        https://bugs.webkit.org/show_bug.cgi?id=174252
-
-        Reviewed by Ryosuke Niwa.
-
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/README.md: Added build docs.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/*: Update generated build files.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/package.json: Remove unused items.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/package-lock.json: Added lockfile.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/index.html: Make title consistent.
-
-2017-07-18  Matt Kotsenas  <mattkot@microsoft.com>
-
-        Add performance.mark()s around each test step
-        https://bugs.webkit.org/show_bug.cgi?id=174530
-
-        Reviewed by Ryosuke Niwa.
-
-        Add `performance.mark()` around each test step to make analysis
-        simpler. Now each test step can be investigated via dev tools, ETW, etc.
+        * JetStream2: Added.
 
-        * Speedometer/resources/benchmark-runner.js:
-        (BenchmarkRunner.prototype._writeMark):
-        (BenchmarkRunner.prototype._runTest):
-        (BenchmarkRunner.prototype._runTestAndRecordResults):
+2018-10-02  Chris Dumez  <cdumez@apple.com>
 
-2017-07-14  Saam Barati  <sbarati@apple.com>
+        Regression(r236613): Parser/html-parser.html performance test is failing
+        https://bugs.webkit.org/show_bug.cgi?id=190201
 
-        Fix ambiguous description text in ARES-6 about the data the benchmark measures
-        https://bugs.webkit.org/show_bug.cgi?id=174510
+        Unreviewed, apply the same fix as in r236699 to make sure the iframe is treated as
+        same origin, so that calls to document.open() / document.write() succeed.
 
-        Rubber stamped by Filip Pizlo.
-
-        * ARES-6/about.html:
+        * Parser/html-parser.html:
 
-2017-07-07  Mathias Bynens  <mathias@qiwi.be>
+2018-10-01  Chris Dumez  <cdumez@apple.com>
 
-        Speedometer 2.0: Fix vanilla JS example
-        https://bugs.webkit.org/show_bug.cgi?id=174246
+        Regression(r236613): Parser/HTML5-8266-ParseOnly.html performance tests no longer runs
+        https://bugs.webkit.org/show_bug.cgi?id=190174
 
         Reviewed by Ryosuke Niwa.
 
-        Previously, all TODO items were assigned an ID of `null`. This patch
-        fixes that bug. Manually deleting items now works again.
-
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/index.html: Made title consistent.
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js: Fixed bug with deleting items.
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/readme.md: Added docs.
-
-2017-07-06  Myles C. Maxfield  <mmaxfield@apple.com>
-
-        [Cocoa] Improve performance of font lookups
-        https://bugs.webkit.org/show_bug.cgi?id=173960
-        <rdar://problem/31996891>
-
-        Reviewed by Darin Adler.
-
-        * Layout/font-fallback-font-family.html: Added.
-        * Layout/resources/font-fallback-font-family.html: Added.
-
-2017-06-10  Dan Bernstein  <mitz@apple.com>
-
-        Reverted r218056 because it made the IDE reindex constantly.
-
-        * MediaTime/Configurations/DebugRelease.xcconfig:
-
-2017-06-10  Dan Bernstein  <mitz@apple.com>
-
-        [Xcode] With Xcode 9 developer beta, everything rebuilds when switching between command-line and IDE
-        https://bugs.webkit.org/show_bug.cgi?id=173223
-
-        Reviewed by Sam Weinig.
-
-        The rebuilds were happening due to a difference in the compiler options that the IDE and
-        xcodebuild were specifying. Only the IDE was passing the -index-store-path option. To make
-        xcodebuild pass that option, too, set CLANG_INDEX_STORE_ENABLE to YES if it is unset, and
-        specify an appropriate path in CLANG_INDEX_STORE_PATH.
-
-        * MediaTime/Configurations/DebugRelease.xcconfig:
-
-2017-06-07  Saam Barati  <sbarati@apple.com>
-
-        ARES-6 incorrectly measures Worst 4 Iterations
-        https://bugs.webkit.org/show_bug.cgi?id=172960
-
-        Reviewed by Mark Lam.
-
-        Version 1.0 of ARES-6 was accidentally measuring the first
-        4 iterations, instead of the worst 4. This patch fixes the
-        bug and bumps the version to 1.0.1.
-
-        * ARES-6/glue.js:
-        (driver.reportResult):
-        * ARES-6/results.js:
-        (Results.prototype.reportResult):
-
-2017-06-06  Saam Barati  <sbarati@apple.com>
-
-        Add a version number to ARES-6
-        https://bugs.webkit.org/show_bug.cgi?id=172962
-
-        Reviewed by Yusuke Suzuki.
-
-        * ARES-6/glue.js:
-        (driver.reportResult):
-
-2017-06-01  Saam Barati  <sbarati@apple.com>
-
-        Ensure a good experience for ARES-6 error reporting
-        https://bugs.webkit.org/show_bug.cgi?id=171699
-
-        Reviewed by Filip Pizlo and Jon Davis.
-
-        This patch fixes a bug where we would silently fail running ARES-6. The bug
-        was that we were calling reportError with the wrong |this| value.
-        I also cleaned up a bit of the code around error reporting. We
-        now indicate which test failed, and update the status to reflect
-        that a failure happened.
-        
-        This patch also modifies the CSS a bit to work better on smaller
-        screened devices. The CSS prevents the status from having a line
-        break both when an error is reported and when we're running the 
-        benchmark.
-
-        * ARES-6/driver.js:
-        (Driver):
-        (Driver.prototype.reportError):
-        * ARES-6/results.js:
-        (Results.prototype.reportError):
-        (Results):
-        * ARES-6/styles.css:
-        (.start):
-        (#status):
-        (.failed):
-        (#status.failed):
-        (.test .failed:before):
-        (#magic):
-        (@media only screen and (max-width: 784px)):
-        (.test):
-        (p):
-        (@media only screen and (max-width: 320px)):
-
-2017-05-19  Ryosuke Niwa  <rniwa@webkit.org>
-
-        REGRESSION(r217118): Speedometer 2.0: Flight.js test is broken
-        https://bugs.webkit.org/show_bug.cgi?id=172394
-
-        Reviewed by Chris Dumez.
-
-        Fixed the bug that we were never clearing window.checkLoadedTimeoutId.
-
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:
-        (newContext.checkLoaded):
-
-2017-05-19  Yusuke Suzuki  <utatane.tea@gmail.com>
-
-        Add SixSpeed benchmark to PerformanceTests
-        https://bugs.webkit.org/show_bug.cgi?id=172326
-
-        Reviewed by Sam Weinig.
-
-        This patch imports SixSpeed benchmark into WebKit tree.
-        It is a collection of ES6 microbenchmarks. While the scripts are very tiny,
-        it sometimes hits our missing care for optimization. So including it is useful.
-
-        The benchmark is released under MIT license.
-
-        * SixSpeed/LICENSE: Added.
-        * SixSpeed/REVISION: Added.
-        * SixSpeed/ReadMe.md: Added.
-        * SixSpeed/tests/.eslintrc: Added.
-        * SixSpeed/tests/arrow-args/arrow-args.es5: Added.
-        * SixSpeed/tests/arrow-args/arrow-args.es6: Added.
-        * SixSpeed/tests/arrow-declare/arrow-declare.es5: Added.
-        * SixSpeed/tests/arrow-declare/arrow-declare.es6: Added.
-        * SixSpeed/tests/arrow/arrow.es5: Added.
-        * SixSpeed/tests/arrow/arrow.es6: Added.
-        * SixSpeed/tests/bindings-compound/bindings-compound.es5: Added.
-        * SixSpeed/tests/bindings-compound/bindings-compound.es6: Added.
-        * SixSpeed/tests/bindings/bindings.es5: Added.
-        * SixSpeed/tests/bindings/bindings.es6: Added.
-        * SixSpeed/tests/classes/classes.es5: Added.
-        * SixSpeed/tests/classes/classes.es6: Added.
-        * SixSpeed/tests/defaults/defaults.es5: Added.
-        * SixSpeed/tests/defaults/defaults.es6: Added.
-        * SixSpeed/tests/destructuring-simple/destructuring-simple.es5: Added.
-        * SixSpeed/tests/destructuring-simple/destructuring-simple.es6: Added.
-        * SixSpeed/tests/destructuring/destructuring.es5: Added.
-        * SixSpeed/tests/destructuring/destructuring.es6: Added.
-        * SixSpeed/tests/for-of-array/for-of-array.es5: Added.
-        * SixSpeed/tests/for-of-array/for-of-array.es6: Added.
-        * SixSpeed/tests/for-of-object/for-of-object.es5: Added.
-        * SixSpeed/tests/for-of-object/for-of-object.es6: Added.
-        * SixSpeed/tests/generator/generator.es5: Added.
-        * SixSpeed/tests/generator/generator.es6: Added.
-        * SixSpeed/tests/map-set-lookup/map-set-lookup.es5: Added.
-        * SixSpeed/tests/map-set-lookup/map-set-lookup.es6: Added.
-        * SixSpeed/tests/map-set-object/map-set-object.es5: Added.
-        * SixSpeed/tests/map-set-object/map-set-object.es6: Added.
-        * SixSpeed/tests/map-set/map-set.es5: Added.
-        * SixSpeed/tests/map-set/map-set.es6: Added.
-        * SixSpeed/tests/map-string/map-string.es5: Added.
-        * SixSpeed/tests/map-string/map-string.es6: Added.
-        * SixSpeed/tests/new-target/defaults.es5: Added.
-        * SixSpeed/tests/new-target/defaults.es6: Added.
-        * SixSpeed/tests/object-assign/object-assign.es5: Added.
-        * SixSpeed/tests/object-assign/object-assign.es6: Added.
-        * SixSpeed/tests/object-literal-ext/object-literal-ext.es5: Added.
-        * SixSpeed/tests/object-literal-ext/object-literal-ext.es6: Added.
-        * SixSpeed/tests/regex-u/regex-u.es5: Added.
-        * SixSpeed/tests/regex-u/regex-u.es6: Added.
-        * SixSpeed/tests/rest/rest.es5: Added.
-        * SixSpeed/tests/rest/rest.es6: Added.
-        * SixSpeed/tests/spread-generator/spread-generator.es5: Added.
-        * SixSpeed/tests/spread-generator/spread-generator.es6: Added.
-        * SixSpeed/tests/spread-literal/spread-literal.es5: Added.
-        * SixSpeed/tests/spread-literal/spread-literal.es6: Added.
-        * SixSpeed/tests/spread/spread.es5: Added.
-        * SixSpeed/tests/spread/spread.es6: Added.
-        * SixSpeed/tests/super/super.es5: Added.
-        * SixSpeed/tests/super/super.es6: Added.
-        * SixSpeed/tests/template_string/template_string.es5: Added.
-        * SixSpeed/tests/template_string/template_string.es6: Added.
-        * SixSpeed/tests/template_string_tag/template_string_tag.es5: Added.
-        * SixSpeed/tests/template_string_tag/template_string_tag.es6: Added.
-        * SixSpeed/wrappers/wrapper.js:
-        (test):
-
-2017-05-19  Ryosuke Niwa  <rniwa@webkit.org>
-
-        Speedometer 2.0: Angular v1 test only deletes the second item
-        https://bugs.webkit.org/show_bug.cgi?id=172353
-
-        Reviewed by Antti Koivisto.
-
-        Like jQuery and Inferno, run querySelector after removing each todo item.
-
-        * Speedometer/InteractiveRunner.html: Tweaked CSS again.
-        * Speedometer/resources/tests.js:
-
-2017-05-19  Ryosuke Niwa  <rniwa@webkit.org>
-
-        Speedometer 2.0: Elem test isn't updating DOM during the measurement
-        https://bugs.webkit.org/show_bug.cgi?id=172343
-
-        Reviewed by Antti Koivisto.
-
-        Elem test wasn't doing much work because it simply enqueues items into the work queue, which doesn't get
-        executed until the next requestAnimationFrame or setTimeout callback happens.
-
-        Expose elm's work function as contentWindow.elemWork and make the first use of rAF a synchronous callback
-        just as it would when requestAnimationFrame isn't defined, and make the second use of rAF queue up to
-        an array of callbacks, and have the test runner manually invoke each callback.
-
-        This increases the runtime of the Elm suite from 100ms to 300ms on Safari.
+        Update iframe's sandbox to use 'allow-same-origin' so that the iframe is treated as same-origin and so that
+        the top frame can call document.open() / document.write() on the subframe. This test was also failing in
+        Firefox without this change.
 
-        * Speedometer/resources/tests.js:
-        (processElmWorkQueue): Added. A helper which processes Elm's work queue and manually invokes render callbacks.
-        * Speedometer/resources/todomvc/functional-prog-examples/elm/dist/elm.js:
+        * Parser/HTML5-8266-ParseOnly.html:
 
-2017-05-18  Ryosuke Niwa  <rniwa@webkit.org>
+2018-08-27  Aditya Keerthi  <akeerthi@apple.com>
 
-        Speedometer 2.0: Flight.js test is sometime broken
-        https://bugs.webkit.org/show_bug.cgi?id=172347
+        Consolidate ENABLE_INPUT_TYPE_COLOR and ENABLE_INPUT_TYPE_COLOR_POPOVER
+        https://bugs.webkit.org/show_bug.cgi?id=188931
 
-        Reviewed by Antti Koivisto.
-
-        The bug was caused by the test runner only waiting for #new-todo, which happens before all other states are
-        updated in the Flight.js dependency example. As done in Speedometer v1, insert a dummy element with id set
-        to appIsReady and wait for this element to appear in the benchmark harness.
+        Reviewed by Wenson Hsieh.
 
-        * Speedometer/resources/tests.js: Wait for #appIsReady.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/main.js: Removed the superflous call
-        to console.log.
-        (checkReady): Added. Insert #appIsReady if checkLoaded is no longer running at 50ms interval. Because this
-        could happen asynchronously, we check the absense of checkLoadedTimeoutId Î©every 10ms for 5 times for
-        the total duration of 50ms. If checkLoadedTimeoutId was never present, we call it ready. If we ever observed
-        the presence of checkLoadedTimeoutId, wait another 50ms and start over.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:
-        (.newContext.checkLoaded): Expose checkLoadedTimeoutId which is a timer ID used to check the dependency.
+        * StitchMarker/wtf/FeatureDefines.h: Removed ENABLE_INPUT_TYPE_COLOR_POPOVER.
 
-2017-05-19  Ryosuke Niwa  <rniwa@webkit.org>
+2018-08-23  Don Olmstead  <don.olmstead@sony.com>
 
-        Speedometer 2.0: jQuery and Inferno tests don't delete all ToDo items
-        https://bugs.webkit.org/show_bug.cgi?id=172341
+        [CMake] Have checks are not getting set inside CMake properly
+        https://bugs.webkit.org/show_bug.cgi?id=188901
 
-        Reviewed by Antti Koivisto.
+        Reviewed by Michael Catanzaro.
 
-        The bug was caused by the fact TodoMVC examples for jQuery and Inferno JS create a new button
-        to delete the todo item each time todo items are rendered.
+        Add notification that MallocBench is disabled.
 
-        Fixed the bug by dynamically look for .destroy using querySelector for each item.
+        * CMakeLists.txt:
 
-        Also moved the deletion of the iframe from the end of each test suite to the beginning of each suite.
-        This will make debugging the issue like this easier on InteractiveRunner.html since the iframe
-        will stick around after stepping the last item in the suite.
+2018-08-23  Don Olmstead  <don.olmstead@sony.com>
 
-        * Speedometer/InteractiveRunner.html: Tweaked the CSS to make buttons to "Step" and "Run" always visible
-        even if the list of suites and subtests are too long to fit in the viewport.
+        [CMake] Add HAVE_MALLOC_TRIM definition
+        https://bugs.webkit.org/show_bug.cgi?id=188897
 
-        * Speedometer/resources/benchmark-runner.js:
-        (BenchmarkRunner.prototype.step):
-        (BenchmarkRunner.prototype._runTestAndRecordResults):
+        Reviewed by Konstantin Tokarev.
 
-        * Speedometer/resources/tests.js: Fixed the bug for jQuery and Inferno. In the case of jQuery
-        we also have to fix the code for checking every ToDo item as completed as well.
+        MallocBench should only be built on Apple platforms and platforms that
+        have malloc_trim.
 
-2017-05-19  Ryosuke Niwa  <rniwa@webkit.org>
+        * CMakeLists.txt:
 
-        Speedometer 2.0: Vanilla JS test doesn't mark all todo items as completed
-        https://bugs.webkit.org/show_bug.cgi?id=172348
+2018-08-13  Jon Lee  <jonlee@apple.com>
 
-        Reviewed by Antti Koivisto.
+        Update MotionMark version number
+        https://bugs.webkit.org/show_bug.cgi?id=188535
+        <rdar://problem/43254078>
 
-        The bug was caused by the in-memory store class using the milisecond precision timestamp as an ID.
-        Because we inserts 50 items all at once, this can result in multiple data items sharing a single ID.
+        Reviewed by Said Abou-Hallawa.
 
-        Fixed the bug by using a mononotically increasing ID instead.
+        * MotionMark/resources/strings.js: To 1.1.
 
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js:
-        (Store.prototype.save):
+2018-08-13  Jon Lee  <jonlee@apple.com>
 
-2017-05-18  Ryosuke Niwa  <rniwa@webkit.org>
+        [MotionMark] Update Multiply test
+        https://bugs.webkit.org/show_bug.cgi?id=188532
+        <rdar://problem/43252151>
 
-        REGRESSION (r216694 - 216712): Performance test Speedometer/Full.html is failing
-        https://bugs.webkit.org/show_bug.cgi?id=172077
+        Reviewed by Said Abou-Hallawa.
 
-        Reviewed by Chris Dumez.
+        Update Multiply test to have a larger upper limit of number of particles. Cycle through three
+        different ways of hiding an element. Add new Multiple suite that isolates those components for
+        debugging purposes.
 
-        Rename Full.html to index.html to match the convention of other benchmarks.
+        * MotionMark/resources/debug-runner/tests.js:
+        * MotionMark/tests/dom/multiply.html: Added.
+        * MotionMark/tests/dom/resources/multiply.js: Added.
+        * MotionMark/tests/master/resources/multiply.js:
 
-        * Speedometer/index.html: Renamed from PerformanceTests/Speedometer/Full.html.
+2018-08-13  Jon Lee  <jonlee@apple.com>
 
-2017-05-18  Addy Osmani  <addyosmani@gmail.com>
+        [MotionMark] Update Leaves test
+        https://bugs.webkit.org/show_bug.cgi?id=188530
+        <rdar://problem/43251862>
 
-        Speedometer: check-in missing React TodoMVC dependency
-        https://bugs.webkit.org/show_bug.cgi?id=172213
+        Reviewed by Said Abou-Hallawa.
 
-        Reviewed by Ryosuke Niwa.
+        Update Leaves test to include opacity and scale. Add new Leaves suite that isolate those components
+        for debugging purposes.
 
-        * Speedometer/resources/todomvc/architecture-examples/react/index.html: fix director.min.js path.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/director.min.js: Added.
+        * MotionMark/resources/debug-runner/tests.js:
+        * MotionMark/tests/dom/leaves.html:
+        * MotionMark/tests/dom/resources/leaves.js:
+        * MotionMark/tests/master/resources/leaves.js:
 
-2017-05-17  Addy Osmani  <addyosmani@gmail.com>
+2018-08-10  Ben Richards  <benton_richards@apple.com>
 
-        Speedometer: adjust Ember TodoMVC to use full path
-        https://bugs.webkit.org/show_bug.cgi?id=172211
+        Add ability to ignore process prewarming for launch time benchmark
+        https://bugs.webkit.org/show_bug.cgi?id=188462
 
         Reviewed by Ryosuke Niwa.
 
-        * Speedometer/resources/tests.js: use full path to Ember TodoMVC app.
-
-2017-05-16  Addy Osmani  <addyosmani@gmail.com>
-
-        Update to Speedometer 2.0 w/updated frameworks + new workloads
-        https://bugs.webkit.org/show_bug.cgi?id=170513
-
-        Reviewed by Ryosuke Niwa.
+        Added a flag to the new tab benchmark that will open a blank tab before the tab to be measured in order to ignore process prewarming.
 
-        Refresh test runner and fix apps to work with it.
-
-        * Speedometer/InteractiveRunner.html:
-        (parseQueryString): Adds support for startAutomatically query parameter.
-        * Speedometer/resources/tests.js:
-        (triggerEnter): Refactor event triggering behavior for tests.
-        * Speedometer/resources/todomvc/architecture-examples/angular/dist/index.html:
-        (CSS): Drop reference to extraneous stylesheet in Angular TodoMVC.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/todomvc.js:
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/index.html:
-        (base): Enable Ember TodoMVC to be run from any directory/level.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/memory.js:
-        (localStorageMemory): Correct import path and switch to window.localStorageMemory to fix Ember failures.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/repo.js:
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/tests/index.html:
-        * Speedometer/resources/todomvc/architecture-examples/jquery/index.html:
-        * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/LICENSE: Added.
-        (LICENSE): Add missing metadata and LICENSE files as part of director.js package for jQuery TodoMVC
-        * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/bower.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/director.js: Add missing 
-        director.js dependency for jQuery TodoMVC implementation.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/director.min.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/ender.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/package.json: Added.
-        * Speedometer/resources/todomvc/functional-prog-examples/elm/index.html: Fix path to built Elm TodoMVC scripts.
-
-2017-05-12  Addy Osmani  <addyosmani@gmail.com>
-
-        Speedometer: Add a React.js TodoMVC implementation
-        https://bugs.webkit.org/show_bug.cgi?id=171444
+        * LaunchTime/launch_time.py:
+        (DefaultLaunchTimeHandler):
+        (DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
+        (DefaultLaunchTimeHandler.on_receive_stop_signal):
+        (DefaultLaunchTimeHandler.do_HEAD):
+        (DefaultLaunchTimeHandler.do_GET):
+        (DefaultLaunchTimeHandler.do_POST):
+        (LaunchTimeBenchmark):
+        (LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
+        (LaunchTimeBenchmark.open_tab): Added option to open a blank tab
+        (LaunchTimeBenchmark.run):
+        * LaunchTime/new_tab.py:
+        (NewTabBenchmark.initialize):
+        (NewTabBenchmark.run_iteration):
+        (NewTabBenchmark.will_parse_arguments):
+        (NewTabBenchmark.did_parse_arguments):
+        (NewTabBenchmark.ResponseHandler.Handler.get_test_page):
+        (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
+        (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
+        (NewTabBenchmark):
+        * LaunchTime/startup.py:
+        (StartupBenchmark.ResponseHandler.Handler.get_test_page):
+        (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
+        (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
+        (StartupBenchmark):
 
-        Reviewed by Ryosuke Niwa.
+2018-08-10  Truitt Savell  <tsavell@apple.com>
 
-        Adds a more recent React.js TodoMVC implemenation to Speedometer
-
-        * Speedometer/resources/todomvc/architecture-examples/react/build.min.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/index.html: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/js/app.jsx: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/license.md: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/LICENSE: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/bind.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/bower.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/dedupe.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/index.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/LICENSE: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/bower.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/LICENSE: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/dist/react-dom-server.min.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/dist/react-dom.min.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/index.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/LICENSE: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/README.md: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/dist/react-with-addons.min.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/dist/react.min.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/todomvc-app-css/index.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/todomvc-common/base.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/node_modules/todomvc-common/base.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/npm-shrinkwrap.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react/yarn.lock: Added.
-
-2017-05-11  Addy Osmani  <addyosmani@gmail.com>
-
-        Speedometer: Update the Ember.js TodoMVC to a more recent version
-        https://bugs.webkit.org/show_bug.cgi?id=171342
+        Unreviewed, rolling out r234750.
 
-        Reviewed by Ryosuke Niwa.
+        Caused 185 perf test failures.
 
-        Update the Ember TodoMVC app in Speedometer to latest
-
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/todomvc.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/todomvc.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/vendor.css: Renamed from PerformanceTests/Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/vendor.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower.json: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-data/ember-data.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/crossdomain.xml: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/index.html:
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/app.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/helpers/pluralize.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/models/todo.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/router.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/todos_view.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/readme.md: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/robots.txt: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.bowerrc: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.editorconfig: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.ember-cli: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.gitignore: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.jshintrc: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.travis.yml: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.watchmanconfig: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/README.md: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/app.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/.gitkeep: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/todo-item.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/todo-list.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/controllers/active.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/controllers/application.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/controllers/completed.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/helpers/gt.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/helpers/pluralize.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/index.html: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/instance-initializers/global.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/models/.gitkeep: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/resolver.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/router.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/routes/.gitkeep: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/routes/application.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/memory.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/repo.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/styles/app.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/active.hbs: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/application.hbs: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/completed.hbs: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/.gitkeep: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/todo-item.hbs: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/todo-list.hbs: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/index.hbs: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/bower.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/config/environment.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/ember-cli-build.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/public/crossdomain.xml: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/public/robots.txt: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/testem.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/.jshintrc: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/destroy-app.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/module-for-acceptance.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/resolver.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/start-app.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/index.html: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/integration/.gitkeep: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/test-helper.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/unit/.gitkeep: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/.gitkeep: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/base.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/index.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/test.html: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/testem.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/emberjs/tests/index.html: Added.
-
-2017-05-11  Addy Osmani  <addyosmani@gmail.com>
-
-        Speedometer: Add a React + Redux TodoMVC implementation
-        https://bugs.webkit.org/show_bug.cgi?id=171329
+        Reverted changeset:
 
-        Reviewed by Ryosuke Niwa.
+        "Add ability to ignore process prewarming for launch time
+        benchmark"
+        https://bugs.webkit.org/show_bug.cgi?id=188462
+        https://trac.webkit.org/changeset/234750
+
+2018-08-09  Ben Richards  <benton_richards@apple.com>
+
+        Add ability to ignore process prewarming for launch time benchmark
+        https://bugs.webkit.org/show_bug.cgi?id=188462
+
+        Reviewed by Ryosuke Niwa.
+
+        Added a flag to the new tab benchmark that will open a blank tab before the tab to be measured in order to ignore process prewarming.
+
+        * LaunchTime/launch_time.py:
+        (DefaultLaunchTimeHandler):
+        (DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
+        (DefaultLaunchTimeHandler.on_receive_stop_signal):
+        (DefaultLaunchTimeHandler.do_HEAD):
+        (DefaultLaunchTimeHandler.do_GET):
+        (DefaultLaunchTimeHandler.do_POST):
+        (LaunchTimeBenchmark):
+        (LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
+        (LaunchTimeBenchmark.open_tab): Added option to open a blank tab
+        (LaunchTimeBenchmark.run):
+        * LaunchTime/new_tab.py:
+        (NewTabBenchmark.initialize):
+        (NewTabBenchmark.run_iteration):
+        (NewTabBenchmark.will_parse_arguments):
+        (NewTabBenchmark.did_parse_arguments):
+        (NewTabBenchmark.ResponseHandler.Handler.get_test_page):
+        (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
+        (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
+        (NewTabBenchmark):
+        * LaunchTime/startup.py:
+        (StartupBenchmark.ResponseHandler.Handler.get_test_page):
+        (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
+        (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
+        (StartupBenchmark):
+
+2018-07-26  Andy VanWagoner  <andy@vanwagoner.family>
+
+        [INTL] Remove INTL sub-feature compile flags
+        https://bugs.webkit.org/show_bug.cgi?id=188081
+
+        Reviewed by Michael Catanzaro.
+
+        Removed old and unused i18n flag.
+
+        * StitchMarker/wtf/FeatureDefines.h:
+
+2018-07-20  David Fenton  <david_fenton@apple.com>
+
+        REGRESSION (234006) ERROR: Blocked access to external URL http://code.jquery.com/jquery-1.9.1.min.js
+        https://bugs.webkit.org/show_bug.cgi?id=187858
+
+        Unreviewed test gardening, skipped test.
+
+        * Skipped: LaunchTime
+
+2018-07-19  Ben Richards  <benton_richards@apple.com>
+
+        Add benchmark for WebKit process launch times
+        https://bugs.webkit.org/show_bug.cgi?id=186414
+
+        Reviewed by Ryosuke Niwa.
+
+        Added two benchmarks, one for measuring browser new tab launch time and one for browser startup time.
+
+        * LaunchTime/.gitignore: Added.
+        * LaunchTime/feedback_client.html: Added.
+        Displays benchmark progress in browser
+        * LaunchTime/feedback_server.py: Added.
+        (FeedbackServer): Sends data to feedback_client via websocket
+        (FeedbackServer.__init__):
+        (FeedbackServer._create_app):
+        (FeedbackServer._start_server):
+        (FeedbackServer._send_all_messages):
+        (FeedbackServer.start):
+        (FeedbackServer.stop):
+        (FeedbackServer.send_message): Send a message to the feedback_client
+        (FeedbackServer.wait_until_client_has_loaded): Wait until the feedback_client has opened a websocket connection to the feedback_server
+        (FeedbackServer.MainHandler): Handler factory to create handler that serves feedback_client.html
+        (FeedbackServer.MainHandler.Handler):
+        (FeedbackServer.MainHandler.Handler.get):
+        (FeedbackServer.WSHandler): Handler factory to create handler that sends data to feedback client
+        (FeedbackServer.WSHandler.Handler):
+        (FeedbackServer.WSHandler.Handler.open): On websocket connection opened
+        (FeedbackServer.WSHandler.Handler.on_close): On websocket connection closed
+        * LaunchTime/launch_time.py: Added.
+        (DefaultLaunchTimeHandler): Abstract HTTP request handler for launch time benchmarks
+        (DefaultLaunchTimeHandler.get_test_page): Default test page to be overridden by benchmarks
+        (DefaultLaunchTimeHandler.get_blank_page):
+        (DefaultLaunchTimeHandler.on_receive_stop_time):
+        (DefaultLaunchTimeHandler.do_HEAD):
+        (DefaultLaunchTimeHandler.do_GET):
+        (DefaultLaunchTimeHandler.do_POST):
+        (DefaultLaunchTimeHandler.log_message): Suppresses HTTP logs from SimpleHTTPRequestHandler
+        (LaunchTimeBenchmark): Abstract class which launch time benchmarks inherit from and override methods desired to customize
+        (LaunchTimeBenchmark.__init__):
+        (LaunchTimeBenchmark._parse_browser_bundle_path): Parser for bundle path option
+        (LaunchTimeBenchmark._parse_args):
+        (LaunchTimeBenchmark._run_server): Target function for main server thread
+        (LaunchTimeBenchmark._setup_servers):
+        (LaunchTimeBenchmark._clean_up):
+        (LaunchTimeBenchmark._exit_due_to_exception):
+        (LaunchTimeBenchmark._geometric_mean):
+        (LaunchTimeBenchmark._standard_deviation):
+        (LaunchTimeBenchmark._compute_results): Returns mean and std dev of list of results and pretty prints if should_print=True is specified
+        (LaunchTimeBenchmark._wait_times): Mimic numpy.linspace
+        (LaunchTimeBenchmark.open_tab): Open a browser tab with the html given by self.response_handler.get_test_page
+        (LaunchTimeBenchmark.launch_browser): Open a broser to either the feedback client (if option is set) or a blank page
+        (LaunchTimeBenchmark.quit_browser):
+        (LaunchTimeBenchmark.quit_browser.quit_app):
+        (LaunchTimeBenchmark.quit_browser.is_app_closed):
+        (LaunchTimeBenchmark.close_tab):
+        (LaunchTimeBenchmark.wait):
+        (LaunchTimeBenchmark.log): Print to console and send to feedback client if --feedback-in-browser flag is used
+        (LaunchTimeBenchmark.log_verbose): Only logs if --verbose flag is used
+        (LaunchTimeBenchmark.run):
+        (LaunchTimeBenchmark.group_init): Initialization done before each round of iterations
+        (LaunchTimeBenchmark.run_iteration):
+        (LaunchTimeBenchmark.initialize): Convenience method to be overriden by subclasses which is called at the end of __init__
+        (LaunchTimeBenchmark.will_parse_arguments): Called before argparse.parse_args to let subclasses add new command line arguments
+        (LaunchTimeBenchmark.did_parse_arguments): Called after argparse.parse_args to let subclass initialize based on command line arguments
+        * LaunchTime/new_tab.py: Added
+        (NewTabBenchmark):
+        (NewTabBenchmark._parse_wait_time): Parser for wait time option
+        (NewTabBenchmark.initialize):
+        (NewTabBenchmark.run_iteration):
+        (NewTabBenchmark.group_init):
+        (NewTabBenchmark.will_parse_arguments):
+        (NewTabBenchmark.did_parse_arguments):
+        (NewTabBenchmark.ResponseHandler):
+        (NewTabBenchmark.ResponseHandler.Handler):
+        (NewTabBenchmark.ResponseHandler.Handler.get_test_page):
+        * LaunchTime/startup.py: Added
+        (StartupBenchmark): This benchmark measures browser startup time and initial page load time
+        (StartupBenchmark.initialize):
+        (StartupBenchmark.run_iteration):
+        (StartupBenchmark.ResponseHandler):
+        (StartupBenchmark.ResponseHandler.Handler):
+        (StartupBenchmark.ResponseHandler.Handler.get_test_page):
+        * LaunchTime/thirdparty/__init__.py: Added.
+        (AutoinstallImportHook): Auto installs tornado package for feedback server
+        (AutoinstallImportHook.__init__):
+        (AutoinstallImportHook._ensure_autoinstalled_dir_is_in_sys_path):
+        (AutoinstallImportHook.find_module):
+        (AutoinstallImportHook._install_tornado):
+        (AutoinstallImportHook.greater_than_equal_to_version):
+        (AutoinstallImportHook._install):
+        (AutoinstallImportHook.get_latest_pypi_url):
+        (AutoinstallImportHook.install_binary):
+        (autoinstall_everything):
+        (get_os_info):
+
+2018-06-25  Jon Lee  <jonlee@apple.com>
+
+        [MotionMark] Add support for version numbers
+        https://bugs.webkit.org/show_bug.cgi?id=186479
+
+        Reviewed by Said Abou-Hallawa.
+
+        Add support for displaying the version number as well as including it in the JSON results.
+
+        When loading the front page, script replaces any element with classname version with the
+        version number of the benchmark, which is stored in Strings.version.
+
+        The JSON structure for the results includes a new version property:
+            {
+              "version": "1.0",
+              "options": { ... },
+              "data": [ ... ]
+            }
 
-        Adds React and Redux TodoMVC implementation for Speedometer
-
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/README.md: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/index.html: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/css/main.d43d2909.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.946269ff.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/public/index.html: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/actions/index.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/actions/index.spec.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Footer.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Footer.spec.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Header.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Header.spec.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/MainSection.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/MainSection.spec.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoItem.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoItem.spec.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoTextInput.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoTextInput.spec.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/constants/ActionTypes.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/constants/TodoFilters.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/containers/App.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/index.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/index.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.spec.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/react-redux/yarn.lock: Added.
-
-2017-05-11  Addy Osmani  <addyosmani@gmail.com>
-
-        Speedometer: Add an ES2015 (Babel + Webpack) TodoMVC implementation
-        https://bugs.webkit.org/show_bug.cgi?id=171452
+        When dragging a results file, the version listed will come from the JSON file. Older
+        results will not have had the version property, in which case it will default to "1.0".
+
+        * MotionMark/index.html: Update title to some other default. Script will update it.
+        Include the version number in the logo title.
+        * MotionMark/developer.html: Ditto.
+        * MotionMark/about.html: Ditto.
+
+        * MotionMark/resources/runner/motionmark.js:
+        (ResultsDashboard): Update constructor to include version. This is used when serializing
+        results out to JSON, and displaying the results panel in developer mode.
+        (ResultsDashboard._processData): When running the benchmark, include benchmark version string
+        in the results object.
+        (ResultsDashboard.version):
+        (window.benchmarkRunnerClient.willStartFirstIteration): When running the benchmark, pass the
+        benchmark version string to the dashboard, which holds the results.
+        (window.sectionsManager.setSectionVersion): Helper function to update the element in the
+        section with the class name version.
+        (window.benchmarkController.initialize): Populate all DOM elements with class name "version"
+        with the version string. Update the page title.
+        (window.benchmarkController.showResults): When showing results, update the version string
+        based on what is included in the JSON results, which would be the same as the benchmark version.
+        * MotionMark/resources/runner/motionmark.css: Include missing copyright. Wrap the SVG logo
+        in a div and include the version string.
+        * MotionMark/resources/strings.js: Add strings for the page title template, and the version.
+
+        * MotionMark/resources/debug-runner/motionmark.css:
+        * MotionMark/resources/debug-runner/motionmark.js:
+        (window.benchmarkRunnerClient.willStartFirstIteration): When running the benchmark, pass the
+        benchmark version string to the dashboard, which holds the results.
+        (window.benchmarkController.initialize): Populate all DOM elements with class name "version"
+        with the version string. Update the page title. When dragging in JSON results, look for
+        version to pass to the dashboard. If it doesn't exist, default to "1.0".
+        (window.benchmarkController.showResults): When showing results, update the version string
+        based on what is included in the JSON results, instead of the current benchmark version.
+        * MotionMark/resources/debug-runner/tests.js: Update page title template.
+
+2018-06-08  Jon Lee  <jonlee@apple.com>
+
+        [MotionMark] Rename Suits test files
+        https://bugs.webkit.org/show_bug.cgi?id=186447
+
+        Reviewed by Said Abou-Hallawa.
+
+        * MotionMark/resources/runner/tests.js:
+        * MotionMark/tests/master/resources/suits.js: Renamed from PerformanceTests/MotionMark/tests/master/resources/svg-particles.js.
+        * MotionMark/tests/master/suits.html: Renamed from PerformanceTests/MotionMark/tests/master/svg-particles.html.
+        * MotionMark/tests/svg/suits.html:
+
+2018-06-08  Jon Lee  <jonlee@apple.com>
+
+        Add sub-tests based on Suits
+        https://bugs.webkit.org/show_bug.cgi?id=186260
+
+        Reviewed by Said Abou-Hallawa.
+
+        Add a new developer Suits suite with sub-tests that isolate parts of each particle.
+        The sub-tests are:
+            - Particles using only clip paths
+            - Particles using only shapes
+            - Particles that have no gradients
+            - Particles that have no rotation
+            - Particles that do not move around at all (but all of the physics calculations are
+            still performed)
+
+        * MotionMark/resources/debug-runner/tests.js:
+        * MotionMark/tests/master/resources/svg-particles.js: Rename the stage, particle, and
+        benchmark to "Suits" from "SVG". Change SuitsParticle so that we guarantee 50% clip and
+        shape paths rather than relying on random chance. Wrap a check around creation of the
+        gradient element, and use a simple fill color when we aren't using a gradient.
+        * MotionMark/tests/svg/suits.html: Added.
+        * MotionMark/tests/svg/suits.js: Added.
+        Look for the query string and set the particle based on what is selected.
+
+2018-06-06  Jon Lee  <jonlee@apple.com>
+
+        Allow the ramp controller to run tests that take less time than the initial ramp-up phase
+        https://bugs.webkit.org/show_bug.cgi?id=186257
+
+        Reviewed by Said Abou-Hallawa.
+
+        * MotionMark/tests/resources/main.js: Extend the desired end timestamp when ramp-up occurs.
+        Previously the controller assumed that the duration of the test was always longer than the
+        time it took to figure out the order of magnitude of particles to render. When that range
+        is determined, the end timestamp is then extended. If the duration is too short, the controller
+        would throw an exception. The fix is to continue extending the timestamp every time the order of
+        magnitude tiers up.
+
+        In general testing with really short durations isn't practical, but sometimes it is
+        desired for debugging.
+
+        To avoid confusion of the private variables, I renamed Benchmark._startTimestamp to
+        Benchmark._benchmarkStartTimestamp, to disambiguate from Controller._startTimestamp.
+        Benchmark._startTimestamp is set once and never changed, after the initial 100ms warm-up.
+        Controller._startTimestamp is initialized to 0 (which means "not initialized"), and then after
+        the warm up is complete, set in Controller.start() to the same wall clock timestamp, and never
+        changed afterwards.
+
+2018-06-06  Jon Lee  <jonlee@apple.com>
+
+        Remove unneeded data processing in MotionMark
+        https://bugs.webkit.org/show_bug.cgi?id=186256
+
+        Reviewed by Said Abou-Hallawa.
+
+        Remove calculation of average frame rate based on multiple samples at a given complexity.
+        It is not used in the calculation of the score, and is just extra work to do at the end
+        of a test.
+
+        * MotionMark/developer.html: Remove options to show average data and regression based on
+        that data.
+        * MotionMark/resources/debug-runner/graph.js: Remove data. Update the time graph that
+        shows the relationship between the break point in the regression against the complexity
+        graph.
+        * MotionMark/resources/debug-runner/motionmark.css: Make the confidence intervals easier
+        to see.
+        * MotionMark/resources/runner/motionmark.js: Simplify score calculation now that we are
+        only calculating regressions on the raw data. We were calculating it based on the averages,
+        but that was just for analysis, and not used in the actual score. Get rid of the
+        |complexitySamples| local variable.
+        * MotionMark/resources/strings.js: Remove unneeded string constant.
+        * MotionMark/tests/resources/main.js:
+        (processSamples): Refactor so that more of it can be shared between Controller and
+        RampController. It also avoids processing the raw samples (controllerSamples) twice for
+        the ramp controller.
+        (_processComplexitySamples): Remove logic to calculate averages based on complexity.
+        (_processMarks): Split this out from the old processSamples.
+        (_processControllerSamples): Split this out from the old processSamples.
 
-        Reviewed by Ryosuke Niwa.
+2018-06-06  Jon Lee  <jonlee@apple.com>
 
-        Adds ES2015 Babel + Webpack TodoMVC implem
-
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/.babelrc: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/.eslintignore: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js.map: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js.map: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js.map: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/index.html: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css.map: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css.map: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/package.json: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/app.css: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/app.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/bootstrap.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/controller.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/controller.test.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/helpers.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/index.html: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/memory.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/model.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/store.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/template.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/todo.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/view.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/webpack.config.babel.js: Added.
-
-2017-05-11  Addy Osmani  <addyosmani@gmail.com>
-
-        Speedometer: Add an Inferno TodoMVC implementation
-        https://bugs.webkit.org/show_bug.cgi?id=171411
+        Strip out more characters when creating permalinks
+        https://bugs.webkit.org/show_bug.cgi?id=186259
 
-        Reviewed by Ryosuke Niwa.
+        Reviewed by Said Abou-Hallawa.
 
-        Adds a Inferno implem of TodoMVC to Speedometer
-
-        * Speedometer/resources/todomvc/architecture-examples/inferno/dist/bundle.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/inferno/index.html: Added.
-        * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/index.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/readme.md: Added.
-        * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/base.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/base.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/readme.md: Added.
-        * Speedometer/resources/todomvc/architecture-examples/inferno/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/inferno/src/base.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/inferno/src/index.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/inferno/src/item.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/inferno/src/model.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/inferno/src/share.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/inferno/webpack.config.js: Added.
-
-2017-05-11  Addy Osmani  <addyosmani@gmail.com>
-
-        Speedometer: Add an Angular 2 (4.x) TodoMVC implementation
-        https://bugs.webkit.org/show_bug.cgi?id=171343
+        Tests and suites may have names that make permalinks to the tests less readable when
+        shared. Expand the set of characters that are stripped out of the names.
 
-        Reviewed by Ryosuke Niwa.
+        * MotionMark/resources/debug-runner/motionmark.js: Refactor to call
+        stripUnwantedCharactersForURL. For existing links, decode the suite and test names.
+        * MotionMark/resources/extensions.js:
+        (Utilities.stripUnwantedCharactersForURL): Rename from stripNonASCIICharacters.
+        Remove any non-alphanumeric character.
 
-        Add a TodoMVC Angular 2 (4.x) implem for the benchmark
-
-        * Speedometer/resources/todomvc/architecture-examples/angular/.angular-cli.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/.editorconfig: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/README.md: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/dist/assets/css/todomvc-app.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/dist/assets/css/todomvc-common.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/dist/favicon.ico: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/dist/index.html: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/dist/inline.b342d102ba4a53bf2002.bundle.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/dist/main.779eb2f1ddbe23ac61c7.bundle.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/dist/polyfills.2d45a4c73c85e24fe474.bundle.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/dist/styles.d41d8cd98f00b204e980.bundle.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/dist/vendor.b4be818cb6d8028f9192.bundle.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.e2e-spec.ts: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.po.ts: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/e2e/tsconfig.e2e.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/karma.conf.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/protractor.conf.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.html: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.spec.ts: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.ts: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.module.ts: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.spec.ts: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.ts: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo.spec.ts: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo.ts: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/assets/.gitkeep: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/assets/css/todomvc-app.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/assets/css/todomvc-common.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/environments/environment.prod.ts: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/environments/environment.ts: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/favicon.ico: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/index.html: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/main.ts: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/polyfills.ts: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/styles.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/test.ts: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/tsconfig.app.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/tsconfig.spec.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/src/typings.d.ts: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/tsconfig.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angular/tslint.json: Added.
-
-2017-05-11  Addy Osmani  <addyosmani@gmail.com>
-
-        Speedometer: Add a Vue.js TodoMVC implementation
-        https://bugs.webkit.org/show_bug.cgi?id=171325
+2018-06-04  Jon Lee  <jonlee@apple.com>
 
-        Reviewed by Ryosuke Niwa.
+        Remove unnecessary MotionMark controllers
+        https://bugs.webkit.org/show_bug.cgi?id=186255
 
-        Adds a Vue.js TodoMVC implementation to Speedometer
-
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.babelrc: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.editorconfig: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.eslintignore: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.eslintrc.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/README.md: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/dev.env.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/index.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/prod.env.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/index.html: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/css/app.677b45842d9f8b96e5b23c18969233b7.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/app.b0e835874bc8949670d1.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/manifest.84b2b4fceb74ab1f91f3.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/vendor.a52517c5aa98e7fbea2e.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/index.html: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/App.vue: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/components/Todos.vue: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/components/todo.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/main.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/yarn.lock: Added.
-
-2017-05-11  Addy Osmani  <addyosmani@gmail.com>
-
-        Speedometer: Update the vanilla JavaScript TodoMVC implem to a more recent version
-        https://bugs.webkit.org/show_bug.cgi?id=171306
+        Reviewed by Said Abou-Hallawa.
 
-        Reviewed by Ryosuke Niwa.
+        Get rid of the ramp30 and the fixed-with-a-step controllers, which aren't used for testing
+        or debugging.
 
-        Update vanilla JS TodoMVC implementation to the latest.
-
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower.json: Removed.
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Removed.
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Removed.
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Removed.
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/index.html:
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/app.js:
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/controller.js:
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/helpers.js:
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/model.js:
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js:
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/template.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/view.js:
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-app-css/index.css: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-common/base.css: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-common/base.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/package.json: Added.
-
-2017-05-11  Addy Osmani  <addyosmani@gmail.com>
-
-        Speedometer: Add an ES2015 TodoMVC implementation
-        https://bugs.webkit.org/show_bug.cgi?id=171448
+        * MotionMark/developer.html: Move the "ramp" option as first, since that is the default
+        controller for the benchmark.
+        * MotionMark/resources/debug-runner/motionmark.js:
+        * MotionMark/resources/runner/motionmark.js: Added missing copyright notice.
+        * MotionMark/tests/resources/main.js:
 
-        Reviewed by Ryosuke Niwa.
+2018-05-25  Myles C. Maxfield  <mmaxfield@apple.com>
 
-        Adds ES2015 TodoMVC implementation for Speedometer
-
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/index.html: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/index.css: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/package.json: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/readme.md: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/base.css: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/base.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/package.json: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/readme.md: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/package.json: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/src/.jshintrc: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/src/app.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/src/controller.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/src/helpers.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/src/model.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/src/store.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/src/template.js: Added.
-        * Speedometer/resources/todomvc/vanilla-examples/es2015/src/view.js: Added.
-
-2017-05-11  Addy Osmani  <addyosmani@gmail.com>
-
-        Speedometer: Add an Elm TodoMVC implementation
-        https://bugs.webkit.org/show_bug.cgi?id=171464
+        Improve the performance of Font::canRenderCombiningCharacterSequence()
+        https://bugs.webkit.org/show_bug.cgi?id=185933
 
         Reviewed by Ryosuke Niwa.
 
-        Speedometer: Add Elm TodoMVC implementation
+        * Layout/ComplexLongUnique.html: Added.
 
-        * Speedometer/resources/todomvc/functional-prog-examples/elm/Todo.elm: Added.
-        * Speedometer/resources/todomvc/functional-prog-examples/elm/Todo/Task.elm: Added.
-        * Speedometer/resources/todomvc/functional-prog-examples/elm/dist/elm.js: Added.
-        * Speedometer/resources/todomvc/functional-prog-examples/elm/index.html: Added.
-        * Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-app-css/index.css: Added.
-        * Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-common/base.css: Added.
-        * Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-common/base.js: Added.
-        * Speedometer/resources/todomvc/functional-prog-examples/elm/package.json: Added.
-        * Speedometer/resources/todomvc/functional-prog-examples/elm/readme.md: Added.
+2018-05-25  Saam Barati  <sbarati@apple.com>
 
-2017-05-11  Addy Osmani  <addyosmani@gmail.com>
+        Have a memory test where we can validate JSCs mini memory mode
+        https://bugs.webkit.org/show_bug.cgi?id=185932
 
-        Speedometer: Update the Backbone.js implementation to a more recent library version
-        https://bugs.webkit.org/show_bug.cgi?id=171305
+        Reviewed by Mark Lam.
 
-        Reviewed by Ryosuke Niwa.
+        We add a directory here with the contents of the testmem benchmark.
+        To run it, use `Tools/Scripts/run-testmem`. To add new tests in the future,
+        you just need to add JS files to this directory.
 
-        Updates the Backbone.js TodoMVC implementation to latest
-
-        * Speedometer/resources/todomvc/architecture-examples/backbone/bower.json: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/index.html:
-        * Speedometer/resources/todomvc/architecture-examples/backbone/js/app.js:
-        * Speedometer/resources/todomvc/architecture-examples/backbone/js/backbone.sync.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/js/collections/todos.js:
-        * Speedometer/resources/todomvc/architecture-examples/backbone/js/models/todo.js:
-        * Speedometer/resources/todomvc/architecture-examples/backbone/js/routers/router.js:
-        * Speedometer/resources/todomvc/architecture-examples/backbone/js/views/app-view.js:
-        * Speedometer/resources/todomvc/architecture-examples/backbone/js/views/todo-view.js:
-        * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/backbone/backbone.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-app-css/index.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-common/base.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-common/base.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/backbone/package.json: Added.
-
-2017-05-11  Addy Osmani  <addyosmani@gmail.com>
-
-        Speedometer: Add a Preact.js TodoMVC implementation
-        https://bugs.webkit.org/show_bug.cgi?id=171323
+        * testmem: Added.
+        * testmem/air.js: Added.
+        * testmem/base64.js: Added.
+        * testmem/basic.js: Added.
+        * testmem/box2d.js: Added.
+        * testmem/crypto-md5.js: Added.
+        * testmem/date-format-tofte.js: Added.
+        * testmem/earley-boyer.js: Added.
+        * testmem/hash-map.js: Added.
+        * testmem/regex-dna.js: Added.
+        * testmem/splay.js: Added.
+        * testmem/tagcloud.js: Added.
 
-        Reviewed by Ryosuke Niwa.
+2018-05-22  Ryan Haddad  <ryanhaddad@apple.com>
 
-        Adds Preact.js TodoMVC implementation to Speedometer
-
-        * Speedometer/resources/todomvc/architecture-examples/preact/.babelrc: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/README.md: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/dist/app.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/dist/index.html: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc-common/base.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc-common/base.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/rollup.config.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/src/app/footer.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/src/app/index.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/src/app/item.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/src/app/model.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/src/app/util.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/src/index.html: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/src/index.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/preact/webpack.config.babel.js: Added.
-
-2017-05-11  Addy Osmani  <addyosmani@gmail.com>
-
-        Speedometer: Update the jQuery implementation to a more recent library version
-        https://bugs.webkit.org/show_bug.cgi?id=171308
+        Unreviewed, rolling out r232052.
 
-        Reviewed by Ryosuke Niwa.
+        Breaks internal builds.
 
-        Updates the jQuery implementation of TodoMVC to a more recent version
-
-        * Speedometer/resources/todomvc/architecture-examples/jquery/bower.json: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/index.html:
-        * Speedometer/resources/todomvc/architecture-examples/jquery/js/app.js:
-        * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/handlebars/dist/handlebars.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/jquery/dist/jquery.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/index.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/readme.md: Added.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/base.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/base.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/readme.md: Added.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/jquery/readme.md:
-
-2017-05-11  Addy Osmani  <addyosmani@gmail.com>
-
-        Speedometer: Update the Flight.js implementation to a more recent library version
-        https://bugs.webkit.org/show_bug.cgi?id=171471
+        Reverted changeset:
 
-        Reviewed by Ryosuke Niwa.
+        "Use more C++17"
+        https://bugs.webkit.org/show_bug.cgi?id=185176
+        https://trac.webkit.org/changeset/232052
 
-        Speedometer: Update FlightJS TodoMVC implementation
-
-        * Speedometer/resources/todomvc/dependency-examples/flight/.gitignore: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/.jshintrc: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/app/js/main.js: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/app/js/store.js: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/bower.json: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/data/stats.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/data/stats.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/data/todos.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/data/todos.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/main.js: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/page/app.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/app.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/store.js: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/main_selector.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/main_selector.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/new_item.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/new_item.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/stats.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/stats.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/todo_list.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/todo_list.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/toggle_all.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/toggle_all.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/with_filters.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/with_filters.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/utils.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/utils.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/templates/stats.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/templates/stats.html.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/templates/todo.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/templates/todo.html.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/index.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/index.html.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/README.md: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/depot.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/depot/depot.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/depot.min.js: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/package.json: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/LICENSE: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-sham.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-sham.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-sham.min.js: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.js: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.min.js: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/LICENSE: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/index.js: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/advice.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/advice.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/base.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/base.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/component.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/component.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/compose.js: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/debug.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/debug.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/logger.js: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/registry.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/registry.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/utils.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/utils.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/README.md: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.js: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.min.js: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/package.json: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/memorystorage/memorystorage.js: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/LICENSE: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/README.md: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/bower.json: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/package.json: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/text.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text/text.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/README.md: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/package.json: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/requirejs/require.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/index.css: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/package.json: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/readme.md: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/base.css: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/base.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.js.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/package.json: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/readme.md: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/flight/package.json: Added.
-        * Speedometer/resources/todomvc/dependency-examples/flight/karma.conf.js: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/package.json: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/readme.md: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/test/.jshintrc: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Removed.
-        * Speedometer/resources/todomvc/dependency-examples/flight/test/test-main.js: Removed.
-
-2017-05-11  Addy Osmani  <addyosmani@gmail.com>
-
-        Speedometer: Update the AngularJS implementation to a more recent library version
-        https://bugs.webkit.org/show_bug.cgi?id=171307
+2018-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>
 
-        Reviewed by Ryosuke Niwa.
+        Use more C++17
+        https://bugs.webkit.org/show_bug.cgi?id=185176
 
-        Updates the AngularJS implementation of TodoMVC to 1.4.x
-
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/bower.json: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/index.html:
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/js/app.js:
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js:
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js:
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js:
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/js/services/todoStorage.js:
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/index.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/readme.md: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.css: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.js: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/readme.md: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/package.json: Added.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md:
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/test/package.json: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/test/readme.md: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Removed.
-        * Speedometer/resources/todomvc/architecture-examples/angularjs/todomvc-index.html: Added.
-
-2017-05-09  Jon Davis  <jond@apple.com>
-
-        [ARES6] Improved the running test indicator
-        https://bugs.webkit.org/show_bug.cgi?id=171400
-        
-        Running tests show a triangle before the test title and the titles are white.
+        Reviewed by JF Bastien.
 
-        Reviewed by Joseph Pecoraro.
+        * MallocBench/MallocBench.xcodeproj/project.pbxproj:
+        * MediaTime/Configurations/Base.xcconfig:
+        * MediaTime/MediaTime.xcodeproj/project.pbxproj:
 
-        * ARES-6/index.html:
-        * ARES-6/styles.css:
-        (.test .running):
-        (.test .running:before):
-        (.test .indicator): Deleted.
-        (.test .indicator.running): Deleted.
-        (@keyframes test-running): Deleted.
+2018-04-30  Myles C. Maxfield  <mmaxfield@apple.com>
 
-2017-05-04  Andy VanWagoner  <thetalecrafter@gmail.com>
+        Improve the performance of FontCascadeDescription's effectiveFamilies
+        https://bugs.webkit.org/show_bug.cgi?id=184720
 
-        [INTL] Add PerformanceTests for Intl objects
-        https://bugs.webkit.org/show_bug.cgi?id=171695
+        Reviewed by Simon Fraser.
 
-        Reviewed by Benjamin Poulain.
+        This performance test calls SystemFontDatabase::systemFontCascadeList() around 2,000,000 times (before
+        this patch is applied), which is roughly equivalent to the page we found the performance problem on.
+        The calling pattern is roughly equivalent in this test.
 
-        * Intl/collator-compare-all-options.html: Added.
-        * Intl/collator-compare-default.html: Added.
-        * Intl/collator-create-all-options.html: Added.
-        * Intl/collator-create-default.html: Added.
-        * Intl/datetimeformat-create-all-options.html: Added.
-        * Intl/datetimeformat-create-default.html: Added.
-        * Intl/datetimeformat-format-all-options.html: Added.
-        * Intl/datetimeformat-format-default.html: Added.
-        * Intl/numberformat-create-all-options.html: Added.
-        * Intl/numberformat-create-default.html: Added.
-        * Intl/numberformat-format-all-options.html: Added.
-        * Intl/numberformat-format-default.html: Added.
+        * Layout/system-ui.html: Added.
 
-2017-04-27  Michael Saboff  <msaboff@apple.com>
+2018-03-08  Antti Koivisto  <antti@apple.com>
 
-        Add back tests inadvertently deleted in r205032.
+        Update StyleBench version number in page title to 0.3
 
-        Rubber stamped by Geoffrey Garen.
+        * StyleBench/index.html:
 
-        * MallocBench/run-malloc-benchmarks:
+        There has been a bunch of changes, most notably the addition of attribute selector test step.
 
-2017-04-25  Myles C. Maxfield  <mmaxfield@apple.com>
+2018-02-16  Dean Jackson  <dino@apple.com>
 
-        Add performance test for FontCache::systemFallbackForCharacters()
-        https://bugs.webkit.org/show_bug.cgi?id=170842
+        Use OPENGL macros to be more clear about which OpenGL/ES WebGL uses on Cocoa
+        https://bugs.webkit.org/show_bug.cgi?id=182894
 
         Reviewed by Tim Horton.
 
-        * Layout/word-joiner.html: Added.
+        Rename OPENGL_ES_2 to OPENGL_ES.
 
-2017-04-24  Saam Barati  <sbarati@apple.com>
+        * StitchMarker/wtf/Platform.h:
 
-        Add ML to ARES6
-        https://bugs.webkit.org/show_bug.cgi?id=171206
+2018-02-09  Ryosuke Niwa  <rniwa@webkit.org>
 
-        Rubber stamped by Filip Pizlo.
+        Make run-perf-tests work with Speedometer 2.0 and re-enable the test
+        https://bugs.webkit.org/show_bug.cgi?id=182088
 
-        This patch adds a new test to ARES6 called ML. ML is an implementation of
-        a feedforward neural network: https://github.com/mljs/feedforward-neural-networks.
-        It makes heavy use of classes, and does non-trivial matrix math using the
-        ml-matrix library: https://github.com/mljs/matrix
-
-        * ARES-6/about.html:
-        * ARES-6/cli.js:
-        * ARES-6/glue.js:
-        * ARES-6/index.html:
-        * ARES-6/ml: Added.
-        * ARES-6/ml/benchmark.js: Added.
-        * ARES-6/ml/index.js: Added.
-        * ARES-6/ml_benchmark.js: Added.
-
-2017-04-21  Zalan Bujtas  <zalan@apple.com>
-
-        Simple line layout: Add performance test to measure mid-word line breaking with long text.
-        https://bugs.webkit.org/show_bug.cgi?id=171136
-
-        Reviewed by Ryosuke Niwa.
-
-        * Layout/simple-line-layout-word-break-long-text.html: Added.
-
-2017-04-17  Ryan Haddad  <ryanhaddad@apple.com>
-
-        Unreviewed, rolling out r215366.
+        Reviewed by Antti Koivisto.
 
-        This test is failing on performance bots.
+        This patch updates the test harness to report new metrics of Speedometer 2.0.
 
-        Reverted changeset:
+        Replaced the total time by the geometric mean of the time spent in each suite, and added scores
+        as a metric in addition to time. Also, updated the PerfTestRunner harness and the results template
+        to support "Score" metric with "pt" as its unit.
 
-        "Add performance test for asking the platform for a font for
-        U+2060 WORD JOINER"
-        https://bugs.webkit.org/show_bug.cgi?id=170842
-        http://trac.webkit.org/changeset/215366
+        * Skipped: Unskipped the test.
+        * Speedometer/resources/benchmark-report.js:
+        (window.benchmarkClient.willStartFirstIteration..createTest): Added the unit as an optional argument
+        to report the score in addition to time. Also report the geomean of time instead of the total time.
+        (window.benchmarkClient.willStartFirstIteration): Report the geomean of time.
+        (window.benchmarkClient.didRunSuites): Record the entire measuredValues instead of just tests.
+        (window.benchmarkClient.didFinishLastIteration): Report the scores.
 
-2017-04-14  Myles C. Maxfield  <mmaxfield@apple.com>
+2018-02-09  Ross Kirsling  <ross.kirsling@sony.com>
 
-        Add performance test for asking the platform for a font for U+2060 WORD JOINER
-        https://bugs.webkit.org/show_bug.cgi?id=170842
+        Use REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR on any non-Windows port.
+        https://bugs.webkit.org/show_bug.cgi?id=182623
 
-        Reviewed by Tim Horton.
+        Reviewed by Alex Christensen.
 
-        * Layout/word-joiner.html: Added.
-
-2017-04-03  Saam Barati  <sbarati@apple.com>
-
-        Add a new test to ARES6
-        https://bugs.webkit.org/show_bug.cgi?id=170077
-
-        Rubber stamped by Filip Pizlo.
-
-        This patch adds a new test to ARES6. The test is called Babylon. Babylon is
-        the JavaScript parser that is part of the Babel transpiler. The test runs
-        the parser on 4 different JS scripts.
-
-        * ARES-6/Babylon: Added.
-        * ARES-6/Babylon/AUTHORS: Added.
-        * ARES-6/Babylon/air-blob.js: Added.
-        (Reg):
-        (Reg.fromReg):
-        (Reg.prototype.get index):
-        (Reg.prototype.get type):
-        (Reg.prototype.get name):
-        (Reg.prototype.get isCalleeSave):
-        (Reg.prototype.get isReg):
-        (Reg.prototype.hash):
-        (Reg.prototype.toString):
-        (Reg.extract):
-        (Reg.forEachFast):
-        (Reg.forEach):
-        (newGPR):
-        (Reg.gprs.Reg.fprs.Reg.calleeSaveGPRs.Reg.calleeSaveFPRs.Reg.calleeSaves):
-        * ARES-6/Babylon/babylon-blob.js: Added.
-        (export.default.Parser):
-        (export.default.Parser.prototype.isReservedWord):
-        (export.default.Parser.prototype.hasPlugin):
-        (export.default.Parser.prototype.extend):
-        (export.default.Parser.prototype.loadPlugins):
-        (export.default.Parser.prototype.parse):
-        * ARES-6/Babylon/basic-blob.js: Added.
-        (Basic.NumberApply):
-        (Basic.Variable):
-        (Basic.Const):
-        (Basic.NumberPow):
-        (Basic.NumberMul):
-        (Basic.NumberDiv):
-        (Basic.NumberNeg):
-        (Basic.NumberAdd):
-        (Basic.NumberSub):
-        (Basic.StringVar):
-        (Basic.Equals):
-        (Basic.NotEquals):
-        (Basic.LessThan):
-        (Basic.GreaterThan):
-        (Basic.LessEqual):
-        (Basic.GreaterEqual):
-        (Basic.GoTo):
-        (Basic.GoSub):
-        (Basic.Def):
-        (Basic.Let):
-        (Basic.If):
-        (Basic.Return):
-        (Basic.Stop):
-        (Basic.On):
-        (sideState.shouldStop):
-        (Basic.For):
-        (Basic.Next):
-        (Basic.Print):
-        (Basic.Input):
-        (Basic.Read):
-        (Basic.Restore):
-        (Basic.Dim):
-        (Basic.Randomize):
-        (Basic.End):
-        (Basic.Program):
-        * ARES-6/Babylon/benchmark.js: Added.
-        (this.performance.performance.now.currentTime):
-        (else.this.preciseTime.currentTime):
-        (else.currentTime):
-        (BabylonBenchmark.appendSource):
-        (BabylonBenchmark):
-        (BabylonBenchmark.prototype.runIteration.parse):
-        (BabylonBenchmark.prototype.runIteration.parseExpression):
-        (BabylonBenchmark.prototype.runIteration):
-        (runBenchmark):
-        * ARES-6/Babylon/index.js: Added.
-        (isIdentifierStart):
-        (isIdentifierChar):
-        (isNewLine):
-        (Position):
-        (SourceLocation):
-        (getLineInfo):
-        (TokenType):
-        (KeywordTokenType):
-        (BinopTokenType):
-        (TokContext):
-        (tt.parenR.updateContext.tt.braceR.updateContext):
-        (tt.name.updateContext):
-        (tt.braceL.updateContext):
-        (tt.dollarBraceL.updateContext):
-        (tt.parenL.updateContext):
-        (tt.incDec.updateContext):
-        (tt._function.updateContext):
-        (tt.backQuote.updateContext):
-        (State.prototype.init):
-        (State.prototype.curPosition):
-        (State.prototype.clone):
-        (State):
-        (Token):
-        (codePointToString):
-        (Tokenizer):
-        (Tokenizer.prototype.next):
-        (Tokenizer.prototype.eat):
-        (Tokenizer.prototype.match):
-        (Tokenizer.prototype.isKeyword):
-        (Tokenizer.prototype.lookahead):
-        (Tokenizer.prototype.setStrict):
-        (Tokenizer.prototype.curContext):
-        (Tokenizer.prototype.nextToken):
-        (Tokenizer.prototype.readToken):
-        (Tokenizer.prototype.fullCharCodeAtPos):
-        (Tokenizer.prototype.pushComment):
-        (Tokenizer.prototype.skipBlockComment):
-        (Tokenizer.prototype.skipLineComment):
-        (Tokenizer.prototype.skipSpace):
-        (Tokenizer.prototype.finishToken):
-        (Tokenizer.prototype.readToken_dot):
-        (Tokenizer.prototype.readToken_slash):
-        (Tokenizer.prototype.readToken_mult_modulo):
-        (Tokenizer.prototype.readToken_pipe_amp):
-        (Tokenizer.prototype.readToken_caret):
-        (Tokenizer.prototype.readToken_plus_min):
-        (Tokenizer.prototype.readToken_lt_gt):
-        (Tokenizer.prototype.readToken_eq_excl):
-        (Tokenizer.prototype.getTokenFromCode):
-        (Tokenizer.prototype.finishOp):
-        (Tokenizer.prototype.readRegexp):
-        (Tokenizer.prototype.readInt):
-        (Tokenizer.prototype.readRadixNumber):
-        (Tokenizer.prototype.readNumber):
-        (Tokenizer.prototype.readCodePoint):
-        (Tokenizer.prototype.readString):
-        (Tokenizer.prototype.readTmplToken):
-        (Tokenizer.prototype.readEscapedChar):
-        (Tokenizer.prototype.readHexChar):
-        (Tokenizer.prototype.readWord1):
-        (Tokenizer.prototype.readWord):
-        (Tokenizer.prototype.braceIsBlock):
-        (Tokenizer.prototype.updateContext):
-        (getOptions):
-        (prototype.isReservedWord):
-        (prototype.hasPlugin):
-        (prototype.extend):
-        (prototype.loadPlugins):
-        (prototype.parse):
-        (last):
-        (pp.addComment):
-        (pp.processComment):
-        (pp.checkPropClash):
-        (pp.getExpression):
-        (pp.parseExpression):
-        (pp.parseMaybeAssign):
-        (pos.set i):
-        * ARES-6/Babylon/inspector-blob.js: Added.
-        (WebInspector.ScriptSyntaxTree):
-        (WebInspector.ScriptSyntaxTree.prototype.get parsedSuccessfully):
-        (WebInspector.ScriptSyntaxTree.prototype.forEachNode):
-        (WebInspector.ScriptSyntaxTree.prototype.filter):
-        (WebInspector.ScriptSyntaxTree.prototype.containersOfOffset):
-        (WebInspector.ScriptSyntaxTree.prototype.filterByRange.filterForNodesInRange):
-        (WebInspector.ScriptSyntaxTree.prototype.filterByRange):
-        (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement.removeFunctionsFilter):
-        (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
-        (WebInspector.ScriptSyntaxTree.functionReturnDivot):
-        (WebInspector.ScriptSyntaxTree.prototype.updateTypes):
-        (WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration.gatherIdentifiers):
-        (WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
-        (WebInspector.ScriptSyntaxTree.prototype._defaultParserState):
-        (WebInspector.ScriptSyntaxTree.prototype._recurse):
-        (WebInspector.ScriptSyntaxTree.prototype._recurseArray):
-        (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
-        * ARES-6/about.html:
-        * ARES-6/babylon_benchmark.js: Added.
-        * ARES-6/cli.js:
-        * ARES-6/glue.js:
-        * ARES-6/index.html:
-        * ARES-6/results.js:
-        (Results.prototype.reportResult):
-        (Results.prototype.reportResult.averageAbovePercentile): Deleted.
-        * ARES-6/styles.css:
-        (.test):
-        (@media only screen and (max-width: 784px)):
-
-2017-03-29  Zalan Bujtas <zalan@apple.com>
-
-        [Arabic text] Add whitespace preserve/word wrap performance test.
-        https://bugs.webkit.org/show_bug.cgi?id=170243
+        * StitchMarker/wtf/Platform.h:
+        Simplify #if.
 
-        Reviewed by Simon Fraser.
+2018-02-01  Antti Koivisto  <antti@apple.com>
 
-        * Layout/ArabicLineLayout-pre-and-wrap.html: Added.
+        StyleBench: Attribute selectors and other improvements
+        https://bugs.webkit.org/show_bug.cgi?id=182387
 
-2017-03-08  Yusuke Suzuki  <utatane.tea@gmail.com>
+        Reviewed by Joseph Pecoraro.
 
-        [JSC] Add helpers to run Six Speed to run-jsc-benchmarks
-        https://bugs.webkit.org/show_bug.cgi?id=169351
+        - Add some attributes to elements in all tests
+        - Add some attribute selectors to stylesheets in all tests
+        - Also add some * selectors to all stylesheets.
+        - Add attribute mutation step to all suites
+        - Make test steps do more mutations (25->100) and reduce the number of steps to keep testing time in check.
+          Too fast steps were running into timer resolution limits.
+
+        * StyleBench/resources/style-bench.js:
+        (defaultConfiguration):
+        (prototype.randomAttributeName):
+        (prototype.randomAttributeValue):
+        (prototype.randomAttributeSelector):
+        (prototype.makeCompoundSelector):
+        (prototype.makeElement):
+        (prototype.addClasses):
+        (prototype.removeClasses):
+        (prototype.mutateAttributes):
+        (prototype.async.runForever):
+        * StyleBench/resources/tests.js:
+        (makeSteps):
+        (makeSuite):
+
+2018-02-01  Geoffrey Garen  <ggaren@apple.com>
+
+        Make MallocBench easier for non-WebKit engineers to run
+        https://bugs.webkit.org/show_bug.cgi?id=182415
 
         Reviewed by Saam Barati.
 
-        * SixSpeed/wrappers/wrapper.js: Added.
-        (assertEqual):
-        (test):
-        (jscRun):
+        * MallocBench/MallocBench.xcodeproj/project.pbxproj: Use c++14 so we
+        can make_unique.
 
-2017-03-08  Jon Davis  <jond@apple.com>
+        Specify that we support all Darwin platforms so you can test them.
 
-        Fixed ARES-6 animations for other browsers
+        * MallocBench/run-malloc-benchmarks: Specify the path to MallocBench
+        and libmbmalloc explicitly, rather than computing them implicitly
+        using webkitdirs. Non-WebKit folks don't have the directory structure
+        required by webkitdirs.
 
-        Rubber stamped by Saam Barati.
+        Remove Linux-specific and cmake-specific behaviors because we only
+        needed them in the world of implicit path computation.
 
-        * ARES-6/styles.css:
-        (.swoop):
-        (.logo):
+2018-01-31  Ryosuke Niwa  <rniwa@webkit.org>
 
-2017-03-07  Filip Pizlo  <fpizlo@apple.com>
+        Make run-perf-tests work with StyleBench and re-enable it
+        https://bugs.webkit.org/show_bug.cgi?id=182322
 
-        Revise the ARES-6 explainer text
-        https://bugs.webkit.org/show_bug.cgi?id=169287
+        Reviewed by Antti Koivisto.
 
-        Reviewed by Saam Barati.
-        
-        Just did some copy-editing.
+        This patch updates the test harness to report new metrics of StyleBench.
 
-        * ARES-6/about.html:
+        Replaced the total time by the geometric mean of the time spent in each suite, and added scores
+        as a metric in addition to time. Also, updated the PerfTestRunner harness and the results template
+        to support "Score" metric with "pt" as its unit.
 
-2017-03-06  Jon Davis  <jond@apple.com>
+        * Skipped: Unskipped the test.
+        * StyleBench/resources/benchmark-report.js:
+        (window.benchmarkClient.willStartFirstIteration..createTest): Added the unit as an optional argument
+        to report the score in addition to time. Also report the geomean of time instead of the total time.
+        (window.benchmarkClient.willStartFirstIteration): Report the geomean of time.
+        (window.benchmarkClient.didRunSuites): Record the entire measuredValues instead of just tests.
+        (window.benchmarkClient.didFinishLastIteration): Report the scores.
+        * resources/results-template.html: Added "Score" as a metric and "pt" as its unit.
+        * resources/runner.js:
+        (PerfTestRunner..finish): Ditto.
 
-        Refined the ARES-6 experience
-        https://bugs.webkit.org/show_bug.cgi?id=169205
+2018-01-30  Ryosuke Niwa  <rniwa@webkit.org>
 
-        Reviewed by Saam Barati.
+        StyleBench: Generate more mutation steps
+        https://bugs.webkit.org/show_bug.cgi?id=182291
 
-        * ARES-6/about.html: Copied from PerformanceTests/ARES-6/index.html.
-        * ARES-6/driver.js:
-        (Driver.prototype.start):
-        (Driver.prototype._updateIterations):
-        (Driver):
-        * ARES-6/index.html:
-        * ARES-6/stats.js:
-        (Stats.prototype.toString.span.span):
-        * ARES-6/styles.css:
-        (body):
-        (.swoop):
-        (p):
-        (.logo):
-        (.start):
-        (.test):
-        (.test:nth-child(odd)):
-        (.overall):
-        (.about h2):
-        (.button):
-        (.button:hover):
-        (.button.return:before):
-        (@keyframes fade-in):
-        (@keyframes scale-in):
-        (@keyframes flicker-in):
-        (@keyframes wipe-in):
-        (.flip): Deleted.
-        (.testing, .about): Deleted.
-        (.testing): Deleted.
-        (.about): Deleted.
-        (#about:target): Deleted.
-
-2017-03-06  Jeremy Jones  <jeremyj@apple.com>
-
-        StandardCanPlayThrough.html does not work on iOS.
-        https://bugs.webkit.org/show_bug.cgi?id=169207
-
-        Reviewed by Jer Noble.
-
-        On iOS only, add muted=true and autoplay=allowed. The loading policy on iOS requires these attributes to load enough
-        data to trigger canPlayThrough.
-
-        * Media/StandardCanPlayThrough.html:
-
-2017-02-13  Zalan Bujtas <zalan@apple.com>
-
-        Simple line layout: Add performance test with text-rendering: optimizeSpeed
-        https://bugs.webkit.org/show_bug.cgi?id=168248
+        Rubber-stamped by Antti Koivisto
 
-        Reviewed by Simon Fraser.
+        Use zero-based index instead of one-based index.
 
-        * Layout/simple-line-layout-with-varying-content-and-optimized-speed.html: Added.
+        * StyleBench/resources/tests.js:
+        (makeSteps):
 
-2017-02-10  Zalan Bujtas  <zalan@apple.com>
+2018-01-30  Antti Koivisto  <antti@apple.com>
 
-        Mail hangs when removing multiple rows from large table.
-        https://bugs.webkit.org/show_bug.cgi?id=168103
-        <rdar://problem/30090186>
+        StyleBench: Generate more mutation steps
+        https://bugs.webkit.org/show_bug.cgi?id=182291
 
         Reviewed by Ryosuke Niwa.
 
-        * DOM/large-table-edit.html: Added.
-
-2017-02-05  Filip Pizlo  <fpizlo@apple.com>
-
-        Beef up the ARES-6 explainer text
-        https://bugs.webkit.org/show_bug.cgi?id=167867
-
-        Reviewed by Saam Barati.
-        
-        Added appropriate links.
-
-        Added text that explains the subscores.
-
-        * ARES-6/index.html:
-
-2017-02-06  Jer Noble  <jer.noble@apple.com>
+        The test should be doing multiple rounds of mutations in a single document to test what is supposed to test (like it did before r227756).
+        This also makes test results more stable and less dependent on possible first-time costs.
 
-        Playback stalls when a SourceBuffer append causes frame eviction
-        https://bugs.webkit.org/show_bug.cgi?id=167834
+        * StyleBench/resources/benchmark-runner.js:
 
-        Reviewed by Eric Carlson.
+        Adjust correctionFactor to match the new steps count. With 1.5 Firefox is ~72rpm.
 
-        Add an in-page performance test measuring the amount of time required
-        to append a large amount of media data to a SourceBuffer, and then to
-        completely remove that data 30s at a time.
+        * StyleBench/resources/tests.js:
+        (makeSteps):
 
-        Add a microbenchmark for MediaTime which measures the amount of time
-        required to create a 1M entry std::map and traverse the map 1M times.
+        Generate 10 rounds of class/element mutation steps.
+        Give each generated step unique name so reporting works.
+        Make individual steps do fewer mutations.
 
-        * Media/MSERemoveCodedFrames.html: Added.
-        * Media/media-source-loader.js:
-        (MediaSourceLoader.prototype.get duration):
-        * MediaTime/Configurations/Base.xcconfig: Added.
-        * MediaTime/Configurations/DebugRelease.xcconfig: Added.
-        * MediaTime/Makefile: Added.
-        * MediaTime/MediaTime.xcodeproj/project.pbxproj: Added.
-        * MediaTime/main.cpp: Added.
-        (performTest):
-        (test):
-        (main):
-        * Skipped:
-
-2017-02-06  Saam Barati  <sbarati@apple.com>
+2018-01-29  Antti Koivisto  <antti@apple.com>
 
-        Make ARES-6 work from the CLI again
-        https://bugs.webkit.org/show_bug.cgi?id=167895
+        StyleBench: Remove : from a test name
+        https://bugs.webkit.org/show_bug.cgi?id=182258
 
-        Reviewed by Michael Saboff.
-
-        * ARES-6/driver.js:
-        (Driver.prototype.readyTrigger):
-        (Driver.prototype.disableTrigger):
-        * ARES-6/stats.js:
-        (Stats.prototype.toString.span.span):
-        (Stats.prototype.toString.return.span):
-        (Stats.prototype.toString):
+        Reviewed by Ryosuke Niwa.
 
-2017-02-06  Ryan Haddad  <ryanhaddad@apple.com>
+        It breaks reporting.
 
-        Skip ARES-6 on performance bots
-        https://bugs.webkit.org/show_bug.cgi?id=167863
+        * StyleBench/resources/style-bench.js:
+        (nthPseudoClassConfiguration):
 
-        Unreviewed test gardening.
+2018-01-29  Ryosuke Niwa  <rniwa@webkit.org>
 
-        ES6SampleBench was renamed to ARES-6, so this should be updated in PerformanceTests/Skipped as well.
+        Temporarily skip StyleBench until webkit.org/b/182088 is fixed.
 
         * Skipped:
 
-2017-02-05  Filip Pizlo  <fpizlo@apple.com>
+2018-01-29  Ryosuke Niwa  <rniwa@webkit.org>
 
-        Change ES6SampleBench into ARES-6
-        https://bugs.webkit.org/show_bug.cgi?id=167863
-
-        Rubber stamped by Saam Barati.
-        
-        This imports changes that Jonathan Davis (jond@apple.com) made to ES6SampleBench to make it look
-        super awesome. Its now called ARES-6.
-
-        * ARES-6: Copied from PerformanceTests/ES6SampleBench.
-        * ARES-6/ARES-6.svg: Added.
-        * ARES-6/driver.js:
-        (Driver):
-        (Driver.prototype.readyTrigger):
-        (Driver.prototype.disableTrigger):
-        (Driver.prototype.start):
-        (Driver.prototype._updateIterations):
-        * ARES-6/glue.js:
-        * ARES-6/index.html:
-        * ARES-6/results.js:
-        (Results.prototype.reportRunning):
-        (Results.prototype.reportDone):
-        * ARES-6/stats.js:
-        (Stats.prototype.toString.return.span):
-        (Stats.prototype.toString.span.span):
-        (Stats.prototype.toString): Deleted.
-        * ARES-6/style.css: Removed.
-        * ARES-6/styles.css: Added.
-        (html):
-        (body):
-        (header,):
-        (p a):
-        (p a:hover):
-        (.flip):
-        (header):
-        (h2,):
-        (p):
-        (.about h2):
-        (.logo):
-        (.start):
-        (.start.ready):
-        (.start.ready:hover):
-        (.start:after):
-        (.start.ready .testrun):
-        (.tests):
-        (.test):
-        (.overall h2,):
-        (.test .indicator):
-        (.test .indicator.running):
-        (@keyframes test-running):
-        (100%):
-        (.score):
-        (.score label):
-        (.score .value):
-        (.score .units):
-        (.score .margin):
-        (.overall):
-        (.overall .score):
-        (.overall .margin):
-        (.testing, .about):
-        (.testing):
-        (.about):
-        (#about:target):
-        (@media only screen and (max-width: 784px)):
-        * ARES-6/swoop.svg: Added.
-        * ES6SampleBench: Removed.
-        * ES6SampleBench/Air: Removed.
-        * ES6SampleBench/Air/README.md: Removed.
-        * ES6SampleBench/Air/airjs-tests.yaml: Removed.
-        * ES6SampleBench/Air/all.js: Removed.
-        * ES6SampleBench/Air/allocate_stack.js: Removed.
-        * ES6SampleBench/Air/arg.js: Removed.
-        * ES6SampleBench/Air/basic_block.js: Removed.
-        * ES6SampleBench/Air/benchmark.js: Removed.
-        * ES6SampleBench/Air/code.js: Removed.
-        * ES6SampleBench/Air/custom.js: Removed.
-        * ES6SampleBench/Air/frequented_block.js: Removed.
-        * ES6SampleBench/Air/insertion_set.js: Removed.
-        * ES6SampleBench/Air/inst.js: Removed.
-        * ES6SampleBench/Air/liveness.js: Removed.
-        * ES6SampleBench/Air/make_dist.sh: Removed.
-        * ES6SampleBench/Air/opcode.js: Removed.
-        * ES6SampleBench/Air/payload-airjs-ACLj8C.js: Removed.
-        * ES6SampleBench/Air/payload-gbemu-executeIteration.js: Removed.
-        * ES6SampleBench/Air/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
-        * ES6SampleBench/Air/payload-typescript-scanIdentifier.js: Removed.
-        * ES6SampleBench/Air/reg.js: Removed.
-        * ES6SampleBench/Air/stack_slot.js: Removed.
-        * ES6SampleBench/Air/stress-test.js: Removed.
-        * ES6SampleBench/Air/strip-hash.rb: Removed.
-        * ES6SampleBench/Air/symbols.js: Removed.
-        * ES6SampleBench/Air/test.html: Removed.
-        * ES6SampleBench/Air/test.js: Removed.
-        * ES6SampleBench/Air/tmp.js: Removed.
-        * ES6SampleBench/Air/tmp_base.js: Removed.
-        * ES6SampleBench/Air/util.js: Removed.
-        * ES6SampleBench/Basic: Removed.
-        * ES6SampleBench/Basic/ast.js: Removed.
-        * ES6SampleBench/Basic/basic-tests.yaml: Removed.
-        * ES6SampleBench/Basic/basic.js: Removed.
-        * ES6SampleBench/Basic/benchmark.js: Removed.
-        * ES6SampleBench/Basic/caseless_map.js: Removed.
-        * ES6SampleBench/Basic/lexer.js: Removed.
-        * ES6SampleBench/Basic/number.js: Removed.
-        * ES6SampleBench/Basic/parser.js: Removed.
-        * ES6SampleBench/Basic/random.js: Removed.
-        * ES6SampleBench/Basic/state.js: Removed.
-        * ES6SampleBench/Basic/stress-test.js: Removed.
-        * ES6SampleBench/Basic/test.html: Removed.
-        * ES6SampleBench/Basic/test.js: Removed.
-        * ES6SampleBench/Basic/util.js: Removed.
-        * ES6SampleBench/air_benchmark.js: Removed.
-        * ES6SampleBench/basic_benchmark.js: Removed.
-        * ES6SampleBench/cli.js: Removed.
-        * ES6SampleBench/driver.js: Removed.
-        * ES6SampleBench/glue.js: Removed.
-        * ES6SampleBench/index.html: Removed.
-        * ES6SampleBench/results.js: Removed.
-        * ES6SampleBench/stats.js: Removed.
-        * ES6SampleBench/style.css: Removed.
-
-2017-02-05  Zalan Bujtas  <zalan@apple.com>
-
-        Simple line layout: Add performance test with varying string and font-size to minimize width-cache hit.
-        https://bugs.webkit.org/show_bug.cgi?id=167859
-        <rdar://problem/30368070>
+        Make StyleBench compatible with run-benchmark and run-perf-tests
+        https://bugs.webkit.org/show_bug.cgi?id=182262
 
         Reviewed by Antti Koivisto.
 
-        This is in preparation for webkit.org/b/167843.
-
-        * Layout/simple-line-layout-with-varying-content.html: Added.
-
-2017-01-16  Filip Pizlo  <fpizlo@apple.com>
-
-        Add framerate baselines to the splay-detail test
-        https://bugs.webkit.org/show_bug.cgi?id=167659
-
-        Reviewed by Geoffrey Garen.
-
-        * JetStream/Octane2/splay-detail.html:
-
-2017-01-31  Carlos Alberto Lopez Perez  <clopez@igalia.com>
-
-        [EFL][GTK] Skip some IndexedDB tests that time out on the Perf bots.
-
-        Unreviewed performance test gardening.
-
-        * Skipped:
-
-2017-01-30  Zalan Bujtas  <zalan@apple.com>
-
-        Simple line layout: Small tweaks to improve performance.
-        https://bugs.webkit.org/show_bug.cgi?id=167611
-        <rdar://problem/30274294>
-
-        Reviewed by Simon Fraser.
-
-        * Layout/simple-line-layout-non-repeating-text.html: Added.
-
-2017-01-13  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        26 MotionMark performance tests failing
-        https://bugs.webkit.org/show_bug.cgi?id=166854
-
-        Reviewed by Ryosuke Niwa.
-        
-        Skip running MotionMark on WebKit perf bots.
-
-        * Skipped:
-
-2017-01-06  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Rename the directory and the files of MotionMark from Animometer to MotionMark
-        https://bugs.webkit.org/show_bug.cgi?id=166659
-
-        Reviewed by Jon Lee.
-        
-        Rename the directory and the files of the benchmark to its new name.
-
-        * MotionMark/developer.html: Renamed from PerformanceTests/Animometer/developer.html.
-        * MotionMark/index.html: Renamed from PerformanceTests/Animometer/index.html.
-        * MotionMark/resources/debug-runner/d3.min.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/d3.min.js.
-        * MotionMark/resources/debug-runner/graph.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/graph.js.
-        * MotionMark/resources/debug-runner/motionmark.css: Renamed from PerformanceTests/Animometer/resources/debug-runner/animometer.css.
-        * MotionMark/resources/debug-runner/motionmark.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/animometer.js.
-        * MotionMark/resources/debug-runner/tests.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/tests.js.
-        * MotionMark/resources/extensions.js: Renamed from PerformanceTests/Animometer/resources/extensions.js.
-        * MotionMark/resources/runner/benchmark-runner.js: Renamed from PerformanceTests/Animometer/resources/runner/benchmark-runner.js.
-        * MotionMark/resources/runner/crystal.svg: Renamed from PerformanceTests/Animometer/resources/runner/crystal.svg.
-        * MotionMark/resources/runner/lines.svg: Renamed from PerformanceTests/Animometer/resources/runner/lines.svg.
-        * MotionMark/resources/runner/logo.svg: Renamed from PerformanceTests/Animometer/resources/runner/logo.svg.
-        * MotionMark/resources/runner/motionmark.css: Renamed from PerformanceTests/Animometer/resources/runner/animometer.css.
-        * MotionMark/resources/runner/motionmark.js: Renamed from PerformanceTests/Animometer/resources/runner/animometer.js.
-        * MotionMark/resources/runner/tests.js: Renamed from PerformanceTests/Animometer/resources/runner/tests.js.
-        * MotionMark/resources/statistics.js: Renamed from PerformanceTests/Animometer/resources/statistics.js.
-        * MotionMark/resources/strings.js: Renamed from PerformanceTests/Animometer/resources/strings.js.
-        * MotionMark/tests/3d/resources/webgl.js: Renamed from PerformanceTests/Animometer/tests/3d/resources/webgl.js.
-        * MotionMark/tests/3d/webgl.html: Renamed from PerformanceTests/Animometer/tests/3d/webgl.html.
-        * MotionMark/tests/bouncing-particles/bouncing-canvas-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-canvas-images.html.
-        * MotionMark/tests/bouncing-particles/bouncing-canvas-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html.
-        * MotionMark/tests/bouncing-particles/bouncing-css-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-css-images.html.
-        * MotionMark/tests/bouncing-particles/bouncing-css-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-css-shapes.html.
-        * MotionMark/tests/bouncing-particles/bouncing-svg-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-svg-images.html.
-        * MotionMark/tests/bouncing-particles/bouncing-svg-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-svg-shapes.html.
-        * MotionMark/tests/bouncing-particles/bouncing-tagged-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-tagged-images.html.
-        * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js.
-        * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js.
-        * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js.
-        * MotionMark/tests/bouncing-particles/resources/bouncing-css-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-css-images.js.
-        * MotionMark/tests/bouncing-particles/resources/bouncing-css-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js.
-        * MotionMark/tests/bouncing-particles/resources/bouncing-svg-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js.
-        * MotionMark/tests/bouncing-particles/resources/bouncing-svg-particles.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js.
-        * MotionMark/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js.
-        * MotionMark/tests/bouncing-particles/resources/bouncing-tagged-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-tagged-images.js.
-        * MotionMark/tests/bouncing-particles/resources/image1.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image1.jpg.
-        * MotionMark/tests/bouncing-particles/resources/image2.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image2.jpg.
-        * MotionMark/tests/bouncing-particles/resources/image3.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image3.jpg.
-        * MotionMark/tests/bouncing-particles/resources/image4.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image4.jpg.
-        * MotionMark/tests/bouncing-particles/resources/image5.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image5.jpg.
-        * MotionMark/tests/dom/compositing-transforms.html: Renamed from PerformanceTests/Animometer/tests/dom/compositing-transforms.html.
-        * MotionMark/tests/dom/focus.html: Renamed from PerformanceTests/Animometer/tests/dom/focus.html.
-        * MotionMark/tests/dom/leaves.html: Renamed from PerformanceTests/Animometer/tests/dom/leaves.html.
-        * MotionMark/tests/dom/particles.html: Renamed from PerformanceTests/Animometer/tests/dom/particles.html.
-        * MotionMark/tests/dom/resources/compositing-transforms.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/compositing-transforms.js.
-        * MotionMark/tests/dom/resources/dom-particles.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/dom-particles.js.
-        * MotionMark/tests/dom/resources/focus.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/focus.js.
-        * MotionMark/tests/dom/resources/leaves.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/leaves.js.
-        * MotionMark/tests/master/canvas-stage.html: Renamed from PerformanceTests/Animometer/tests/master/canvas-stage.html.
-        * MotionMark/tests/master/focus.html: Renamed from PerformanceTests/Animometer/tests/master/focus.html.
-        * MotionMark/tests/master/image-data.html: Renamed from PerformanceTests/Animometer/tests/master/image-data.html.
-        * MotionMark/tests/master/leaves.html: Renamed from PerformanceTests/Animometer/tests/master/leaves.html.
-        * MotionMark/tests/master/multiply.html: Renamed from PerformanceTests/Animometer/tests/master/multiply.html.
-        * MotionMark/tests/master/resources/canvas-stage.js: Renamed from PerformanceTests/Animometer/tests/master/resources/canvas-stage.js.
-        * MotionMark/tests/master/resources/canvas-tests.js: Renamed from PerformanceTests/Animometer/tests/master/resources/canvas-tests.js.
-        * MotionMark/tests/master/resources/compass.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/compass.svg.
-        * MotionMark/tests/master/resources/compass100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/compass100.png.
-        * MotionMark/tests/master/resources/console.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/console.svg.
-        * MotionMark/tests/master/resources/console100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/console100.png.
-        * MotionMark/tests/master/resources/contribute.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/contribute.svg.
-        * MotionMark/tests/master/resources/contribute100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/contribute100.png.
-        * MotionMark/tests/master/resources/debugger.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/debugger.svg.
-        * MotionMark/tests/master/resources/debugger100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/debugger100.png.
-        * MotionMark/tests/master/resources/focus.js: Renamed from PerformanceTests/Animometer/tests/master/resources/focus.js.
-        * MotionMark/tests/master/resources/image-data.js: Renamed from PerformanceTests/Animometer/tests/master/resources/image-data.js.
-        * MotionMark/tests/master/resources/inspector.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/inspector.svg.
-        * MotionMark/tests/master/resources/inspector100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/inspector100.png.
-        * MotionMark/tests/master/resources/layout.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/layout.svg.
-        * MotionMark/tests/master/resources/layout100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/layout100.png.
-        * MotionMark/tests/master/resources/leaves.js: Renamed from PerformanceTests/Animometer/tests/master/resources/leaves.js.
-        * MotionMark/tests/master/resources/multiply.js: Renamed from PerformanceTests/Animometer/tests/master/resources/multiply.js.
-        * MotionMark/tests/master/resources/particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/particles.js.
-        * MotionMark/tests/master/resources/performance.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/performance.svg.
-        * MotionMark/tests/master/resources/performance100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/performance100.png.
-        * MotionMark/tests/master/resources/script.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/script.svg.
-        * MotionMark/tests/master/resources/script100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/script100.png.
-        * MotionMark/tests/master/resources/shortcuts.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/shortcuts.svg.
-        * MotionMark/tests/master/resources/shortcuts100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/shortcuts100.png.
-        * MotionMark/tests/master/resources/standards.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/standards.svg.
-        * MotionMark/tests/master/resources/standards100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/standards100.png.
-        * MotionMark/tests/master/resources/storage.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/storage.svg.
-        * MotionMark/tests/master/resources/storage100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/storage100.png.
-        * MotionMark/tests/master/resources/styles.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/styles.svg.
-        * MotionMark/tests/master/resources/styles100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/styles100.png.
-        * MotionMark/tests/master/resources/svg-particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/svg-particles.js.
-        * MotionMark/tests/master/resources/text.js: Renamed from PerformanceTests/Animometer/tests/master/resources/text.js.
-        * MotionMark/tests/master/resources/timeline.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/timeline.svg.
-        * MotionMark/tests/master/resources/timeline100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/timeline100.png.
-        * MotionMark/tests/master/svg-particles.html: Renamed from PerformanceTests/Animometer/tests/master/svg-particles.html.
-        * MotionMark/tests/master/text.html: Renamed from PerformanceTests/Animometer/tests/master/text.html.
-        * MotionMark/tests/resources/main.js: Renamed from PerformanceTests/Animometer/tests/resources/main.js.
-        * MotionMark/tests/resources/math.js: Renamed from PerformanceTests/Animometer/tests/resources/math.js.
-        * MotionMark/tests/resources/stage.css: Renamed from PerformanceTests/Animometer/tests/resources/stage.css.
-        * MotionMark/tests/resources/star.svg: Renamed from PerformanceTests/Animometer/tests/resources/star.svg.
-        * MotionMark/tests/resources/yin-yang.png: Renamed from PerformanceTests/Animometer/tests/resources/yin-yang.png.
-        * MotionMark/tests/resources/yin-yang.svg: Renamed from PerformanceTests/Animometer/tests/resources/yin-yang.svg.
-        * MotionMark/tests/simple/resources/simple-canvas-paths.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/simple-canvas-paths.js.
-        * MotionMark/tests/simple/resources/simple-canvas.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/simple-canvas.js.
-        * MotionMark/tests/simple/resources/tiled-canvas-image.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/tiled-canvas-image.js.
-        * MotionMark/tests/simple/simple-canvas-paths.html: Renamed from PerformanceTests/Animometer/tests/simple/simple-canvas-paths.html.
-        * MotionMark/tests/simple/tiled-canvas-image.html: Renamed from PerformanceTests/Animometer/tests/simple/tiled-canvas-image.html.
-        * MotionMark/tests/template/resources/template-canvas.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-canvas.js.
-        * MotionMark/tests/template/resources/template-css.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-css.js.
-        * MotionMark/tests/template/resources/template-svg.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-svg.js.
-        * MotionMark/tests/template/template-canvas.html: Renamed from PerformanceTests/Animometer/tests/template/template-canvas.html.
-        * MotionMark/tests/template/template-css.html: Renamed from PerformanceTests/Animometer/tests/template/template-css.html.
-        * MotionMark/tests/template/template-svg.html: Renamed from PerformanceTests/Animometer/tests/template/template-svg.html.
-
-2016-12-13  Brady Eidson  <beidson@apple.com>
-
-        Add a PerfTest targeting IDBObjectStore.get().
-        https://bugs.webkit.org/show_bug.cgi?id=165816
-
-        Reviewed by Alex Christensen.
-
-        * IndexedDB/objectstore-get.html: Added.
-
-2016-12-13  Brady Eidson  <beidson@apple.com>
+        Copied resource files referenced from Speedometer directory since run-benchmark needs to be able
+        to checkout each benchmark separately.
 
-        Add a PerfTest targeting IDBIndex.get().
-        https://bugs.webkit.org/show_bug.cgi?id=165803
+        Removed the code to create tests of the same name five times in makeSteps since this
+        won't be compatible with either run-benchmark or run-perf-tests.
 
-        Reviewed by Alex Christensen.
-
-        * IndexedDB/index-get.html: Added.
-
-2016-12-12  Brady Eidson  <beidson@apple.com>
-
-        More IndexedDB perf tests.
-        https://bugs.webkit.org/show_bug.cgi?id=165634
-
-        Reviewed by Sam Weinig.
-
-        * IndexedDB/index-multientry.html:
-        * IndexedDB/large-number-of-inserts-responsiveness.html: Added.
-        * IndexedDB/large-number-of-inserts.html: Added.
-        * IndexedDB/objectstore-cursor.html: Added. Runtime cut in 1/4th compared to r209672.
-
-        * resources/runner.js:
-
-2016-12-12  Commit Queue  <commit-queue@webkit.org>
+        * StyleBench/index.html: Removed the code to show warnings for local files since run-benchmark
+        doesn't use HTTP server in WebDriver mode.
+        * StyleBench/resources/benchmark-report.js: Copied from resources/benchmark-report.js.
+        * StyleBench/resources/benchmark-runner.js: Copied from resources/benchmark-runner.js.
+        (BenchmarkRunner.prototype._finalize): Use the correction factor of 8 instead of 5 in StyleBench.
+        * StyleBench/resources/gauge.png: Copied from resources/gauge.png.
+        * StyleBench/resources/gauge@2x.png: Copied from resources/gauge@2x.png.
+        * StyleBench/resources/main.css: Copied from resources/main.css.
+        * StyleBench/resources/main.js: Copied from resources/main.js.
+        * StyleBench/resources/tests.js:
+        (makeSteps): Only make each test once.
 
-        Unreviewed, rolling out r209672.
-        https://bugs.webkit.org/show_bug.cgi?id=165766
+2018-01-26  Chris Nardi  <cnardi@chromium.org>
 
-        IndexedDB/objectstore-cursor.html perf test always times out
-        (Requested by ap on #webkit).
+        Addressing post-review comments after r226614
+        https://bugs.webkit.org/show_bug.cgi?id=182151
 
-        Reverted changeset:
+        Reviewed by Myles C. Maxfield.
 
-        "More IndexedDB perf tests."
-        https://bugs.webkit.org/show_bug.cgi?id=165634
-        http://trac.webkit.org/changeset/209672
+        * StitchMarker/wtf/text/StringImpl.h:
+        (WTF::isSpaceOrNewline):
+        * StitchMarker/wtf/text/TextBreakIterator.cpp:
+        (WTF::numCodeUnitsInGraphemeClusters):
+        * StitchMarker/wtf/text/TextBreakIterator.h:
 
-2016-12-10  Brady Eidson  <beidson@apple.com>
+2018-01-22  Antti Koivisto  <antti@apple.com>
 
-        More IndexedDB perf tests.
-        https://bugs.webkit.org/show_bug.cgi?id=165634
+        StyleBench: Separate test for :nth pseudo classes
+        https://bugs.webkit.org/show_bug.cgi?id=181932
 
         Reviewed by Sam Weinig.
 
-        * IndexedDB/index-multientry.html:
-        * IndexedDB/large-number-of-inserts-responsiveness.html: Added.
-        * IndexedDB/large-number-of-inserts.html: Added.
-        * IndexedDB/objectstore-cursor.html: Added.
-        
-        * resources/runner.js: Add "track responsiveness" functionality to PerfTestRunner.
-
-2016-12-06  Filip Pizlo  <fpizlo@apple.com>
-
-        Concurrent GC should be stable enough to land enabled
-        https://bugs.webkit.org/show_bug.cgi?id=164990
-
-        Reviewed by Geoffrey Garen.
-        
-        Made CDjs more configurable and refined the "large.js" configuration. I was using that one and
-        the new "long.js" configuration to tune concurrent eden GCs.
-        
-        Added a new way of running Splay in browser, which using chartjs to plot the execution times of
-        2000 iterations. This includes the minified chartjs.
-
-        * JetStream/Octane2/splay-detail.html: Added.
-        * JetStream/cdjs/benchmark.js:
-        (benchmarkImpl):
-        (benchmark):
-        * JetStream/cdjs/long.js: Added.
-
-2016-12-07  Brady Eidson  <beidson@apple.com>
-
-        Add IDB perf tests stressing key size.
-        https://bugs.webkit.org/show_bug.cgi?id=165567
-
-        Reviewed by Alex Christensen.
-
-        * IndexedDB/large-array-keys.html: Added.
-        * IndexedDB/large-binary-keys.html: Added.
-        * IndexedDB/large-string-keys.html: Added.
-
-2016-12-05  Brady Eidson  <beidson@apple.com>
+        Optimization strategies for nth are different from other structural pseudo classes (:first-child etc). Move them to a separate test.
 
-        Add an IndexedDB perf test to PerformanceTests.
-        https://bugs.webkit.org/show_bug.cgi?id=165430
+        * StyleBench/resources/style-bench.js:
+        (structuralPseudoClassConfiguration):
+        (nthPseudoClassConfiguration):
 
-        Reviewed by Alex Christensen.
-
-        * IndexedDB/index-multientry.html: Added.
+            Add a new configuration.
 
-2016-12-02  Filip Pizlo  <fpizlo@apple.com>
+        (predefinedConfigurations):
+        (pseudoClassConfiguration): Deleted.
 
-        ES6SampleBench should report an average for Steady State so that all of the numbers are comparable
-        https://bugs.webkit.org/show_bug.cgi?id=165325
+2018-01-17  Ryosuke Niwa  <rniwa@webkit.org>
 
-        Reviewed by Saam Barati.
+        Temporarily skip Speedometer until we fix the metrics.
 
-        This makes all of the numbers that ES6SampleBench reports comparable to each other: they all speak of the time
-        it took to run an iteration of something.
-
-        * ES6SampleBench/results.js:
-        (Results.prototype.reportResult):
-
-2016-11-18  Jer Noble  <jer.noble@apple.com>
-
-        Add some performance tests for various aspects of media loading and playback.
-        https://bugs.webkit.org/show_bug.cgi?id=164977
-
-        Reviewed by Darin Adler.
-
-        Add new tests for a few aspects of media playback; namely: how quickly  media elements fire
-        the "canplaythrough" event when all data is immediately available, how quickly HLS playback
-        switches resolutions, and at what playback rate MSE-backed video can play without dropping
-        frames. Skip these tests by default, as they're not runnable on all ports, and they require
-        a webserver (run-webkit-httpd) to complete on macOS.
-
-        * Media/HLSCanPlayThrough.html: Added.
-        * Media/HLSGearChange.html: Added.
-        * Media/MSECanPlayThrough.html: Added.
-        * Media/MSEPlaybackRate.html: Added.
-        * Media/StandardCanPlayThrough.html: Added.
-        * Media/hls/1080p/iframe_index.m3u8: Added.
-        * Media/hls/1080p/prog_index.m3u8: Added.
-        * Media/hls/1080p/test.ts: Added.
-        * Media/hls/480p/iframe_index.m3u8: Added.
-        * Media/hls/480p/prog_index.m3u8: Added.
-        * Media/hls/480p/test.ts: Added.
-        * Media/hls/720p/iframe_index.m3u8: Added.
-        * Media/hls/720p/prog_index.m3u8: Added.
-        * Media/hls/720p/test.ts: Added.
-        * Media/hls/720p/test.ts.back: Added.
-        * Media/hls/index.m3u8: Added.
-        * Media/media-source-loader.js: Added.
-        (MediaSourceLoader):
-        (MediaSourceLoader.prototype.loadManifest):
-        (MediaSourceLoader.prototype.loadManifestSucceeded):
-        (MediaSourceLoader.prototype.loadManifestFailed):
-        (MediaSourceLoader.prototype.loadMediaData):
-        (MediaSourceLoader.prototype.loadMediaDataSucceeded):
-        (MediaSourceLoader.prototype.loadMediaDataFailed):
-        (MediaSourceLoader.prototype.get type):
-        (MediaSourceLoader.prototype.get duration):
-        (MediaSourceLoader.prototype.get initSegment):
-        (MediaSourceLoader.prototype.get mediaSegmentsLength):
-        (MediaSourceLoader.prototype.mediaSegments):
-        (MediaSourceLoader.prototype.get everyMediaSegment):
-        * Media/test-fragmented-video.json: Added.
-        * Media/test-fragmented-video.mp4: Added.
-        * Media/test.mp4: Added.
         * Skipped:
 
-2016-11-18  Filip Pizlo  <fpizlo@apple.com>
-
-        Concurrent GC should be able to run splay in debug mode and earley/raytrace in release mode with no perf regression
-        https://bugs.webkit.org/show_bug.cgi?id=164282
-
-        Reviewed by Geoffrey Garen and Oliver Hunt.
-        
-        CDjs is a fun benchmark for stressing concurrent GCs, but to really give the GC a good
-        workout you need to increase the amount of work that the test does. This adds a second
-        configuration of the benchmark that has more aircraft. It uses much more memory and causes us
-        to do more GCs and those GCs take longer.
-
-        * JetStream/cdjs/benchmark.js:
-        (benchmarkImpl):
-        (benchmark):
-        * JetStream/cdjs/large.js: Added.
-
-2016-11-14  Filip Pizlo  <fpizlo@apple.com>
+2018-01-16  Alex Christensen  <achristensen@webkit.org>
 
-        Unreviewed, revert unintended change.
+        Fix Mac CMake build after r222900
 
-        * ES6SampleBench/Air/benchmark.js:
+        * MallocBench/MallocBench/CMakeLists.txt:
+        The mbmalloc target doesn't exist if we're not in developer mode, so only use it if we are.
 
-2016-10-03  Saam Barati  <sbarati@apple.com>
+2018-01-09  Ryosuke Niwa  <rniwa@webkit.org>
 
-        MapHash should speculate on the type of its child node
-        https://bugs.webkit.org/show_bug.cgi?id=161922
-
-        Reviewed by Filip Pizlo.
-
-        I gave the main generator a name so it's easier to see what
-        it is when using the sampling profiler.
-
-        * ES6SampleBench/Basic/ast.js:
-        (Basic.Program):
-
-2016-09-19  Sergio Villar Senin  <svillar@igalia.com>
-
-        [css-grid] Remove the x2 computation of row sizes with indefinite heights
-        https://bugs.webkit.org/show_bug.cgi?id=162150
-
-        Reviewed by Darin Adler.
-
-        Added a new test case which checks the layout performance of grids inside other grids, i.e,
-        grids acting both as grid container and grid item.
-
-        * Layout/nested-grid.html: Added.
-
-2016-09-09  Simon Fraser  <simon.fraser@apple.com>
-
-        Perf test Animation/css-accelerated-animation.html failing
-        https://bugs.webkit.org/show_bug.cgi?id=161795
-
-        Skip Animation/css-accelerated-animation.html since this only works as a MobileSafari
-        perf test.
-
-        * Skipped:
-
-2016-09-08  Simon Fraser  <simon.fraser@apple.com>
-
-        Add a content-animation test with accelerated CSS animations
-        https://bugs.webkit.org/show_bug.cgi?id=161776
-
-        Reviewed by Dean Jackson.
-
-        Add a test that measures the frame rate of accelerated CSS animations.
-
-        This is like css-animation.html (which animates 'left' and 'top') but animates
-        transforms instead. In order to get animation in X and Y we make two nested elements
-        and set transformX() on one, and transformY() on the other.
-
-        * Animation/css-accelerated-animation.html: Added.
-
-2016-08-23  Saam Barati  <sbarati@apple.com>
-
-        It should be easy to run ES6SampleBench from the jsc shell
-        https://bugs.webkit.org/show_bug.cgi?id=161085
-
-        Reviewed by Yusuke Suzuki.
-
-        This patch makes ES6 sample bench runnable through the `jsc` shell.
-        To do that, you need to be in the PerformanceTests/ES6SampleBench
-        directory and run `jsc cli.js`. To make this work, the benchmark
-        is now aware of being run in two modes: via the browser, and via
-        the shell. Each entry point will set a variable `isInBrowser`,
-        and the benchmark will do different things based on if that
-        variable is true or false.
-
-        * ES6SampleBench/Air/benchmark.js:
-        * ES6SampleBench/Air/stress-test.js:
-        * ES6SampleBench/Basic/benchmark.js:
-        (runBenchmark):
-        * ES6SampleBench/Basic/stress-test.js:
-        * ES6SampleBench/air_benchmark.js:
-        * ES6SampleBench/basic_benchmark.js:
-        * ES6SampleBench/cli.js: Added.
-        (return.doRun):
-        (makeBenchmarkRunner):
-        * ES6SampleBench/driver.js:
-        (Driver):
-        (Driver.prototype._recomputeSummary):
-        (Driver.prototype._iterate.window.setTimeout):
-        (Driver.prototype._iterate):
-        (Driver.prototype._updateIterations):
-        * ES6SampleBench/glue.js:
-        (reportResult):
-        * ES6SampleBench/index.html:
-        * ES6SampleBench/results.js:
-        (Results):
-        (Results.prototype.reportRunning):
-        (Results.prototype.reportDone):
-        (Results.prototype.reportError):
-        * ES6SampleBench/stats.js:
-        (Stats):
-        (Stats.prototype.toString):
-        (Stats.prototype._update):
-
-2016-08-01  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Add an option to run the MotionMark tests with classic tile size (512x512)
-        https://bugs.webkit.org/show_bug.cgi?id=160371
-
-        Reviewed by Darin Adler.
-
-        Setting the body to large size (3000x3000) and overflow to scroll forces
-        the classic tile size (512x512). This option does not affect the canvas
-        tests because the canvas is displayed on one tile regardless of its size.
-
-        * Animometer/developer.html:
-        * Animometer/resources/debug-runner/animometer.css:
-        (body.showing-test-container.tiles-big):
-        (body.showing-test-container.tiles-classic):
-        * Animometer/resources/debug-runner/animometer.js:
-        * Animometer/resources/runner/animometer.js:
-        (window.benchmarkController.startBenchmark):
-
-2016-06-29  Filip Pizlo  <fpizlo@apple.com>
-
-        Generators violate bytecode liveness validation
-        https://bugs.webkit.org/show_bug.cgi?id=159279
-
-        Reviewed by Yusuke Suzuki.
-
-        Add Basic to our test harness.
-
-        Also made some cosmetic changes to the benchmark harness.
-
-        * ES6SampleBench/Basic/basic-tests.yaml: Added.
-        * ES6SampleBench/Basic/stress-test.js: Added.
-        (preciseTime):
-        * ES6SampleBench/driver.js:
-        (Driver):
-        (Driver.prototype.start):
-        (Driver.prototype.reportError):
-        * ES6SampleBench/glue.js:
-        * ES6SampleBench/index.html:
-
-2016-06-28  Filip Pizlo  <fpizlo@apple.com>
-
-        ES6SampleBench should have a harness
-        https://bugs.webkit.org/show_bug.cgi?id=159246
-
-        Reviewed by Saam Barati.
-        
-        This adds a simple web harness for ES6SampleBench. It runs Air and Basic 10 times for 200
-        iterations each and reports three metrics:
-        
-        First iteration: the time it takes for the first iteration to run. This is the first
-        iteration after the benchmark is loaded into the iframe, so it's representative of what
-        would happen if one of these workloads only ran for a short time.
-        
-        Worst 2%: of the last 199 iterations, the average of the worst 2% iterations. If code like
-        any of these workloads was used in an important event handler, you'd want that code to run
-        well in the worst case in addition to having great throughput.
-        
-        Steady state: the total of the last 199 iterations. This is representative of what would
-        happen if you ran code like this for a long time.
-        
-        The total score is the geomean of the firstIteration/worstCase/steadyState numbers of the
-        two benchmarks.
-        
-        The harness does statistics using Student's T-distribution confidence intervals.
-
-        * ES6SampleBench/Basic/benchmark.js:
-        (Benchmark):
-        * ES6SampleBench/air_benchmark.js: Added.
-        * ES6SampleBench/basic_benchmark.js: Added.
-        * ES6SampleBench/driver.js: Added.
-        (Driver):
-        (Driver.prototype.addBenchmark):
-        (Driver.prototype.start):
-        (Driver.prototype.reportResult):
-        (Driver.prototype.reportError):
-        (Driver.prototype._recomputeSummary.Geomean):
-        (Driver.prototype._recomputeSummary.Geomean.prototype.add):
-        (Driver.prototype._recomputeSummary.Geomean.prototype.get result):
-        (Driver.prototype._recomputeSummary):
-        (Driver.prototype._iterate):
-        (Driver.prototype._updateIterations):
-        * ES6SampleBench/glue.js: Added.
-        * ES6SampleBench/index.html: Added.
-        * ES6SampleBench/results.js: Added.
-        (Results):
-        (Results.prototype.get benchmark):
-        (Results.prototype.reset):
-        (Results.prototype.reportRunning):
-        (Results.prototype.reportDone):
-        (Results.prototype.reportResult.averageAbovePercentile):
-        (Results.prototype.reportResult):
-        (Results.prototype.reportError):
-        * ES6SampleBench/stats.js: Added.
-        (Stats):
-        (Stats.prototype.reset):
-        (Stats.prototype.add):
-        (Stats.prototype.get numIterations):
-        (Stats.prototype.valueForIteration):
-        (Stats.get result.tDist):
-        (Stats.prototype.get result):
-        (Stats.prototype.toString):
-        (Stats.prototype._update):
-        * ES6SampleBench/style.css: Added.
-        (body):
-        (body, th, tr):
-        (h1, h2, h3, h4):
-        (h1):
-        (h2):
-        (h3):
-        (hr):
-        (address):
-        (img):
-        (.underline):
-        (ol.loweralpha):
-        (ol.upperalpha):
-        (ol.lowerroman):
-        (ol.upperroman):
-        (ol.arabic):
-        (.banner-link:link, .banner-link:visited):
-        (:link, :visited):
-        (h4 :link, h4 :visited, h5 :link, h5 :visited, h6 :link, h6 :visited):
-        (.anchor:link, .anchor:visited):
-        (* > .anchor:link, * > .anchor:visited):
-        (span:hover .anchor):
-        (a.forbidden, span.forbidden):
-        (a.missing:hover):
-        (a.closed:link, a.closed:visited, span.closed):
-        (pre):
-        (div.code):
-        (div.code pre):
-        (dt):
-        (dd):
-        (dd:last-child):
-        (.site-logo):
-        (.site-logo .tagline):
-        (table):
-        (#contents):
-        (p):
-        (p:last-child):
-        (th):
-        (td):
-
-2016-06-28  Jon Lee  <jonlee@apple.com>
-
-        Update focus test
-        https://bugs.webkit.org/show_bug.cgi?id=159242
-        rdar://problem/27070007
-
-        Reviewed by Dean Jackson.
-        Provisionally reviewed by Said Abou-Hallawa.
-
-        Move previous test to dom suite, and update the test for better reporting of frame rate, although
-        it uses a different rendering path.
-
-        * Animometer/resources/debug-runner/tests.js: Add to dom suite.
-        * Animometer/tests/dom/focus.html: Copied from PerformanceTests/Animometer/tests/master/focus.html.
-        * Animometer/tests/dom/resources/focus.js: Copied from PerformanceTests/Animometer/tests/master/resources/focus.js.
-        * Animometer/tests/master/focus.html: Remove center element.
-        * Animometer/tests/master/resources/focus.js: Use narrower size range with smaller particles. Remove the
-        container elements. Inline getBlurValue and getOpacityValue since they are only called once.
-
-2016-06-28  Filip Pizlo  <fpizlo@apple.com>
-
-        Move Air.js and Basic into ES6SampleBench
-
-        Rubber stamped by Geoffrey Garen.
-        
-        We want to group our ES6 benchmarks together, and eventually, we want to give them a
-        common harness.
-
-        * Air.js: Removed.
-        * Air.js/README.md: Removed.
-        * Air.js/airjs-tests.yaml: Removed.
-        * Air.js/all.js: Removed.
-        * Air.js/allocate_stack.js: Removed.
-        * Air.js/arg.js: Removed.
-        * Air.js/basic_block.js: Removed.
-        * Air.js/benchmark.js: Removed.
-        * Air.js/code.js: Removed.
-        * Air.js/custom.js: Removed.
-        * Air.js/frequented_block.js: Removed.
-        * Air.js/insertion_set.js: Removed.
-        * Air.js/inst.js: Removed.
-        * Air.js/liveness.js: Removed.
-        * Air.js/make_dist.sh: Removed.
-        * Air.js/opcode.js: Removed.
-        * Air.js/payload-airjs-ACLj8C.js: Removed.
-        * Air.js/payload-gbemu-executeIteration.js: Removed.
-        * Air.js/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
-        * Air.js/payload-typescript-scanIdentifier.js: Removed.
-        * Air.js/reg.js: Removed.
-        * Air.js/stack_slot.js: Removed.
-        * Air.js/stress-test.js: Removed.
-        * Air.js/strip-hash.rb: Removed.
-        * Air.js/symbols.js: Removed.
-        * Air.js/test.html: Removed.
-        * Air.js/test.js: Removed.
-        * Air.js/tmp.js: Removed.
-        * Air.js/tmp_base.js: Removed.
-        * Air.js/util.js: Removed.
-        * Basic: Removed.
-        * Basic/ast.js: Removed.
-        * Basic/basic.js: Removed.
-        * Basic/benchmark.js: Removed.
-        * Basic/caseless_map.js: Removed.
-        * Basic/lexer.js: Removed.
-        * Basic/number.js: Removed.
-        * Basic/parser.js: Removed.
-        * Basic/random.js: Removed.
-        * Basic/state.js: Removed.
-        * Basic/test.html: Removed.
-        * Basic/test.js: Removed.
-        * Basic/util.js: Removed.
-        * ES6SampleBench: Added.
-        * ES6SampleBench/Air: Copied from PerformanceTests/Air.js.
-        * ES6SampleBench/Basic: Copied from PerformanceTests/Basic.
-        * Skipped:
-
-2016-06-24  Filip Pizlo  <fpizlo@apple.com>
-
-        Add a ES6 generator benchmark
-        https://bugs.webkit.org/show_bug.cgi?id=159101
-
-        Rubber stamped by Keith Miller.
-        
-        This adds a Basic interpreter loosely based on ECMA-55:
-        
-        http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/ECMA-55,%201st%20Edition,%20January%201978.pdf
-        
-        It includes a lexer that is a generator, a parser that uses regular expressions, and an AST
-        walk interpreter where the walking functions for statements are generators that call each
-        other with yield*. This enables the interpreter to look like an AST walk even though it can
-        yield at INPUT and PRINT statements.
-        
-        This also uses for-of, classes, Map, and WeakMap. It also uses deprecated-but-awesome RegExp
-        features like RegExp.lastMatch and RegExp.rightContext. I did it that way because this is
-        how I've always written lexers in dynamic languages; see offlineasm's lex() method in
-        parser.rb for example.
-        
-        The benchmark runs a handful of simple Basic programs. The longest-running one computes
-        prime numbers.
-        
-        Includes a command-line and web harness. On my machine it runs in 2-3 seconds.
-
-        * Basic: Added.
-        * Basic/ast.js: Added.
-        (Basic.NumberApply):
-        (Basic.Variable):
-        (Basic.Const):
-        (Basic.NumberPow):
-        (Basic.NumberMul):
-        (Basic.NumberDiv):
-        (Basic.NumberNeg):
-        (Basic.NumberAdd):
-        (Basic.NumberSub):
-        (Basic.StringVar):
-        (Basic.Equals):
-        (Basic.NotEquals):
-        (Basic.LessThan):
-        (Basic.GreaterThan):
-        (Basic.LessEqual):
-        (Basic.GreaterEqual):
-        (Basic.GoTo):
-        (Basic.GoSub):
-        (Basic.Def):
-        (Basic.Let):
-        (Basic.If):
-        (Basic.Return):
-        (Basic.Stop):
-        (Basic.On):
-        (sideState.shouldStop):
-        (Basic.For):
-        (Basic.Next):
-        (Basic.Print):
-        (Basic.Input):
-        (Basic.Read):
-        (Basic.Restore):
-        (Basic.Dim):
-        (Basic.Randomize):
-        (Basic.End):
-        (Basic.Program):
-        * Basic/basic.js: Added.
-        (prepare):
-        (simulate):
-        * Basic/benchmark.js: Added.
-        (Benchmark):
-        (Benchmark.prototype.runIteration.expect):
-        (Benchmark.prototype.runIteration):
-        (runBenchmark):
-        * Basic/caseless_map.js: Added.
-        (CaselessMap):
-        * Basic/lexer.js: Added.
-        (lex.consumeWhitespace):
-        (lex.consume):
-        (lex):
-        * Basic/lexer_test.js: Added.
-        * Basic/number.js: Added.
-        (NumberValue):
-        (NumberValue.prototype.get value):
-        (NumberValue.prototype.apply):
-        (NumberValue.prototype.leftApply):
-        (NumberValue.prototype.assign):
-        (NumberArray.):
-        (NumberArray):
-        (NumberArray.prototype.apply):
-        (NumberArray.prototype.leftApply):
-        (NumberFunction):
-        (NumberFunction.prototype.apply):
-        (NumberFunction.prototype.leftApply):
-        (NativeFunction):
-        (NativeFunction.prototype.apply):
-        (NativeFunction.prototype.leftApply):
-        * Basic/parser.js: Added.
-        (parse):
-        (parse.pushToken):
-        (parse.peekToken):
-        (parse.consumeKind):
-        (parse.consumeToken):
-        (parse.parseVariable):
-        (parse.parseNumericExpression.parsePrimary):
-        (parse.parseNumericExpression.parseFactor):
-        (parse.parseNumericExpression.parseTerm):
-        (parse.parseNumericExpression):
-        (parse.parseConstant):
-        (parse.parseStringExpression):
-        (parse.isStringExpression):
-        (parse.parseRelationalExpression):
-        (parse.parseNonNegativeInteger):
-        (parse.parseGoToStatement):
-        (parse.parseGoSubStatement):
-        (parse.parseStatement):
-        (parse.parseStatements):
-        * Basic/random.js: Added.
-        (createRNG):
-        (createRNGWithFixedSeed):
-        (createRNGWithRandomSeed):
-        * Basic/state.js: Added.
-        (State):
-        (State.prototype.getValue):
-        (State.prototype.getSideState):
-        (State.prototype.abort):
-        (State.prototype.validate):
-        * Basic/test.html: Added.
-        * Basic/test.js: Added.
-        * Basic/util.js: Added.
-        (this.performance.performance.now.currentTime):
-        (else.this.preciseTime.currentTime):
-        (else.currentTime):
-        * Skipped: Make sure that we don't run Basic yet.
-
-2016-06-21  Jon Lee  <jonlee@apple.com>
-
-        Update canvas size when benchmark begins
-        https://bugs.webkit.org/show_bug.cgi?id=159010
-
-        Reviewed by Dean Jackson.
-
-        Previously we would evaluate the media queries and assign the canvas size to the test
-        on body.onload. Instead, do it once the user starts the benchmark.
-
-        * Animometer/resources/debug-runner/animometer.js: Move benchmarkController.determineCanvasSize()
-        to benchmarkController._startBenchmark.
-        * Animometer/resources/runner/animometer.js: Ditto.
-
-2016-06-21  Jon Lee  <jonlee@apple.com>
-
-        Add new timestamp option
-        https://bugs.webkit.org/show_bug.cgi?id=159006
-
-        Reviewed by Dean Jackson.
-
-        Add a new option to take timestamps from the rAF callback.
-
-        * Animometer/developer.html: Added option.
-        * Animometer/tests/resources/main.js:
-        (Benchmark): Fall back to using the rAF timestamp if performance.now()
-        is not available.
-        (Benchmark._animateLoop): Update how timestamp is set. Prefer to use
-        local var instead of accessing private var.
-
-2016-06-21  Jon Lee  <jonlee@apple.com>
-
-        Improvements to Animometer benchmark
-        https://bugs.webkit.org/show_bug.cgi?id=157738
-
-        Reviewed by Dean Jackson.
-        Provisionally reviewed by Said Abou-Hallawa.
-
-        Update tests.
-
-        * Animometer/tests/master/text.html: Ensure only three text sizes for
-        the three canvases.
-        * Animometer/tests/master/focus.html: Reduce the text size to fit with smaller
-        particle sizes.
-        * Animometer/tests/master/resources/focus.js: Remove the quadratic distribution for
-        particle sizes, and make it linear. Reduce the size variance. Shuffle the math to
-        reduce some calculations per frame. Fix the placement of the particles which might
-        otherwise be culled.
-        * Animometer/tests/master/resources/image-data.js: Reduce the particle size
-        to encourage larger scores.
-
-2016-06-21  Jon Lee  <jonlee@apple.com>
-
-        Improvements to Animometer benchmark
-        https://bugs.webkit.org/show_bug.cgi?id=157738
-
-        Reviewed by Dean Jackson.
-        Provisionally reviewed by Said Abou-Hallawa.
-
-        Include confidence interval for the final score, and store the canvas
-        size in the serialization so that it is accurately shown in results.
-
-        * Animometer/developer.html: Add a "confidence" div.
-        * Animometer/index.html: Ditto. Convert "mean" to "confidence".
-        * Animometer/resources/debug-runner/animometer.js: Look at options, and
-        if the configuration is included, update the body class based on it
-        (similar to what we do when we first load the page). That way, if you
-        drag-and-drop previous results in, that configuration is reflected in
-        the dashboard. Show the full confidence interval.
-
-        * Animometer/resources/debug-runner/animometer.css:
-        * Animometer/resources/debug-runner/animometer.js: Style update.
-        * Animometer/resources/runner/animometer.css:
-
-        * Animometer/resources/runner/animometer.js:
-        (_processData): Propagate the confidence interval values out and calculate
-        the lower and upper bounds. For now, shortcut the aggregate calculation,
-        since we only go through one iteration.
-        (this._processData.calculateScore): Propagate the confidence interval out
-        to be next to the score. Depending on the controller these values are
-        calculated differently.
-        (this._processData._getResultsProperty): Convenience function.
-        (this._processData.get score): Refactor.
-        (this._processData.get scoreLowerBound): Get the aggregate lower bound.
-        (this._processData.get scoreUpperBound): Get the aggregate upper bound.
-        (window.sectionsManager.setSectionScore):
-        (window.benchmarkController._startBenchmark): When the benchmark starts, note
-        the canvas size and add it to options. That way it will be automatically be
-        serialized.
-        (window.benchmarkController.showResults): Include the maximum deviation
-        percentage.
-        * Animometer/resources/runner/lines.svg: Make the background line up with the
-        skew.
-        * Animometer/resources/runner/tests.js:
-        (Headers.details.text): Refactor.
-        * Animometer/resources/statistics.js:
-        (Statistics.largestDeviationPercentage): Convenience function to calculate
-        the deviation percentage on either end and return the largest deviation.
-        * Animometer/resources/strings.js:
-
-        Allow specifying a regression profile to use instead of taking the one
-        with the lowest error.
-
-        Address an issue in the focus test when the regression calculated ends
-        up overestimating the change point, causing a cascade of tougher
-        ramps. The reason behind this is that at max complexity of an initial
-        ramp, the frame length is very high, and it influences the second
-        segment of the piecewise regression strongly, causing it to be very
-        steep. As a result, the first segment, expected to be flat, ends up
-        covering a higher range of complexity. That makes the change point
-        much higher than it should be. To avoid this, we will add a sanity
-        check on the maximum value of the ramp. If the regression's projected
-        value at the maximum complexity of the current ramp is very slow (less
-        than 20 fps), 1) reduce the maximum complexity by 20%, and 2) do not
-        include the regression's change point in the change point estimator.
-        That estimator is used as the midpoint of the next ramp, and including
-        the change point from a poor regression can bake in the error. The
-        controller already knows how to adjust for ramps that are too easy for
-        the system.
-
-        * Animometer/resources/runner/animometer.js:
-        (this._processData.findRegression): Takes a preferred profile and gives that to
-        Regression.
-        (this._processData.calculateScore): With the ramp controller, take the profile
-        of the ramp that was used the most when calculating the ramp's regression. That
-        profile is what is used for the test's score.
-        * Animometer/resources/statistics.js:
-        (Regression.Utilities.createClass): Update to take an options object which can
-        specify a profile to calculate with. Otherwise it will continue to use both and
-        select the one with the lower error.
-        (_calculateRegression): Fix an issue where we claim 0 error if the regression
-        calculation fails due to divide-by-zero. Instead reject that regression calculation
-        by giving it Number.MAX_VALUE.
-        * Animometer/resources/strings.js: New strings for marking a regression as flat
-        or slope.
-        * Animometer/tests/resources/main.js:
-        (RampController): Rename the thresholds for clarity. Add a threshold that, if
-        exceeded, will lower the maximum complexity of the next ramp.
-        (tune): Relax the cdf check to consider whether the interval definitely falls in
-        the desired frame length threshold.
-        (processSamples): Include the profile in the ramp.
-
-        Update ramp controller test. Increase the length of the test to 30 seconds, and extend
-        the interval to 120 ms during sampling. Improve the estimation of the ramp parameters.
-
-        * Animometer/developer.html: Change default to 30 seconds, and don't show the progress bar
-        by default.
-        * Animometer/resources/runner/animometer.js: Change default to 30 seconds.
-        * Animometer/tests/resources/main.js: A number of improvements to the ramp controller, in
-        the order in which they appear in the patch:
-
-        - With a longer test length use longer ramps with longer intervals to get more data at each
-        complexity. Keep the 100 ms interval length during the ramp up phase since we don't need to
-        spend more time there to find the right order of magnitude, but increase it during the
-        ramps to 120 ms.
-        - The ramp linearly interpolates the complexity to render based on its timestamp, but it would
-        never sample the minimum complexity. Instead of lerping max to min complexity from time
-        0 to t where t is the ramp length, instead lerp from 0 to (t - intervalSampleLength) so that
-        we can have at least one interval sample at the min complexity for that ramp.
-        - Some regression calculations only come out with one line segment rather than the two
-        we expect. This could be due to a noisy ramp or the ramp's range is too narrow. If that's the
-        case, influence the minimum complexity of the next ramp towards the lowest bound of 1, so that
-        we ensure that at least part of the ramp is covering a complexity range that the system can
-        handle at full 60.
-        - Remove an assignment to interpolatedFrameLength since that is never subsequently used.
-
-        Update the format used to serialize the results for analysis.
-
-        Each data point used to have named properties for fields like complexity and frame rate.
-        In addition the serialized numbers had rounding errors that took up many characters.
-        Update the format by introducing a new data container called SampleData, which contains a
-        field map. The map maps a string to an array index. Each data point is an array, so, to
-        get a stat, use the field map to get the array index into the data point. This allows future
-        versions to track other data, and reduces the size of the output string by two-thirds.
-
-        * Animometer/resources/extensions.js:
-        (Utilities.toFixedNumber): Add convenience function that truncates the number to a fixed
-        precision, and converts it back to a number.
-        (SampleData): New class that contains sample data and a field map that maps properties to
-        an array index.
-        (get length): Number of data points.
-        (addField): Add a field to the field map.
-        (push): Add a data point.
-        (sort): Sort the data.
-        (slice): Return new SampleData object with sliced data.
-        (forEach): Iterate over the data with provided function.
-        (createDatum):
-        (getFieldInDatum): Returns the data point associated with the field name by looking it up
-        in the field map in the datum provided, which can be the datum object itself (an array) or
-        an index into the data member variable.
-        (setFieldInDatum): Sets the data point associated with the field name.
-        (at): Returns the data point at the provided index.
-        (toArray): Serializes the data where the field map serves as property names for each point.
-
-        * Animometer/resources/debug-runner/graph.js:
-        (updateGraphData): Remove unused _testData. Convert the data to the old array format for the
-        graph to use, since the old format was much easier to work with when displaying the graphs.
-        (onGraphTypeChanged): For some controllers, no alternative score or mean is provided.
-        * Animometer/resources/runner/animometer.css:
-        * Animometer/resources/runner/animometer.js: Refactor to use SampleData. Update JSON output
-        to only go to 3 digits of precision for purposes of reducing the data size.
-        * Animometer/resources/strings.js: Add new strings to put into the field maps.
-        * Animometer/tests/resources/main.js: Refactor to use SampleData.
-
-        * Animometer/developer.html:
-        * Animometer/index.html: Restructure results table for both pages. Add charset attribute to
-        tests.js include.
-        * Animometer/resources/debug-runner/animometer.css: Clear out styles from release runner.
-        * Animometer/resources/debug-runner/graph.js:
-        (onGraphTypeChanged): Update score and mean if bootstrap results are available from the
-        controller, since not all controllers do bootstrapping.
-        * Animometer/resources/debug-runner/tests.js: Update header text.
-        * Animometer/resources/runner/animometer.css: Include confidence interval in results.
-        * Animometer/resources/runner/animometer.js:
-        (ResultsTable._addHeader): Header contents can be HTML, so use innerHTML instead.
-        (ResultsTable._addBody): Add tbody element.
-        (ResultsTable._addTest): Allow a data cell to invoke a JS function to get its contents.
-        (window.benchmarkController.showResults): Add table that includes tests' confidence intervals.
-        * Animometer/resources/runner/tests.js:
-        (Headers.details.text): Add new details table that includes bootstrap confidence interval.
-        The interval can be asymmetric, but for simplicity, report the maximum deviation percentage
-        on either side of the bootstrap median.
-        * Animometer/resources/statistics.js:
-        (bootstrap): Include the confidence percentage in the return object.
-
-        Report canvas size in results.
-
-        * Animometer/developer.html: Add markup to indicate whether a small, medium, or large
-        canvas was used.
-        * Animometer/index.html: Ditto.
-        * Animometer/resources/debug-runner/animometer.js: Call determineCanvasSize().
-        * Animometer/resources/runner/animometer.css: Update styles to set the canvas based on the
-        body class size.
-        * Animometer/resources/runner/animometer.js:
-        (window.benchmarkController.initialize): Update styles to set the canvas based on the
-        body class size.
-        (window.benchmarkController.determineCanvasSize): Run various media queries and set the body
-        class based on the size of the device.
-
-        * Animometer/developer.html: Refactor to include the main CSS file, and redo
-        the layout so that it doesn't rely on flexbox.
-        * Animometer/resources/debug-runner/animometer.css:
-        * Animometer/resources/debug-runner/animometer.js:
-        (updateDisplay): Since various parts of the script alter the body class, we can't
-        replace the className directly. Instead, remove all display-based values and then add
-        the one that was selected.
-        * Animometer/resources/debug-runner/graph.js:
-        (updateGraphData): To set the size of the graph, use window.innerHeight.
-        * Animometer/resources/runner/animometer.js:
-        (window.sectionsManager.showSection): Since various parts of the script alter the body
-        class, we can't replace the className directly. Remove all of the section classes
-        individually and then add the one desired.
-        * Animometer/tests/resources/stage.css: Remove -apple-system as a font to use in the
-        stage.
-
-2016-06-12  Filip Pizlo  <fpizlo@apple.com>
-
-        Fix round-down goof in Air.js's ShuffleCustom.forEachArg
-        https://bugs.webkit.org/show_bug.cgi?id=158674
-
-        Reviewed by Michael Saboff.
-        
-        x / 3 * 3 is not how you round down to multiples of 3 in JavaScript. You need to do
-        Math.floor(x / 3) * 3 instead.
-        
-        This is a benign change, because having extra arguments to a Shuffle is not something we
-        actually take advantage of yet. But I think it's best to match the original C++ code's
-        intent.
-
-        * Air.js/custom.js:
-        (const.ShuffleCustom.forEachArg):
-
-2016-06-11  Filip Pizlo  <fpizlo@apple.com>
-
-        Unreviewed, skip Air.js. It got unskipped when I renamed it from JSAir.
-
-        * Skipped:
-
-2016-06-10  Filip Pizlo  <fpizlo@apple.com>
-
-        Make it easy to package Air.js
-        https://bugs.webkit.org/show_bug.cgi?id=158652
-
-        Reviewed by Benjamin Poulain.
-        
-        If you want to give Air.js to someone, you can now do:
-        
-        cd PerformanceTests/Air.js
-        ./make_dist.sh
-        
-        This will create Air.js.tar.gz and a directory called Air.js. If you want to send someone
-        the benchmark, just send either of those things and tell them to look at index.html.
-        
-        You may have to edit make_dist.sh for wherever you have Markdown.pl. You can get that from
-        https://daringfireball.net/projects/markdown/
-
-        * Air.js/make_dist.sh: Added.
-        * Air.js/test.html:
-
-2016-06-10  Filip Pizlo  <fpizlo@apple.com>
-
-        Unreviewed, make the link to test.html into an actual link.
-
-        * Air.js/README.md:
-
-2016-06-10  Filip Pizlo  <fpizlo@apple.com>
-
-        Fix some text in Air.js/README.md
-        https://bugs.webkit.org/show_bug.cgi?id=158650
-
-        Reviewed by Benjamin Poulain.
-        
-        I read the text again and found bugs:
-        
-        - We never actually say how to run the benchmark. This change adds a blurb about how to run
-          it.
-
-        - We both say that allocateStack is responsible for the bulk of the running time and that
-          we haven't measured where the bulk of the time is spent. This changes the text to say that
-          it was a goal to make allocateStack be the hottest part of the benchmark, but that we did
-          not measure this.
-
-        * Air.js/README.md:
-
-2016-06-10  Filip Pizlo  <fpizlo@apple.com>
-
-        Air.js should have some documentation
-        https://bugs.webkit.org/show_bug.cgi?id=158648
-
-        Reviewed by Keith Miller.
-        
-        I want to be able to point people at a document if they want to know more about this
-        benchmark.
-
-        * Air.js/README.md: Added.
-
-2016-06-10  Filip Pizlo  <fpizlo@apple.com>
-
-        Rename JSAir to Air.js.
-
-        Rubber stamped by Mark Lam.
-
-        * Air.js: Copied from PerformanceTests/JSAir.
-        * Air.js/airjs-tests.yaml: Copied from PerformanceTests/JSAir/jsair-tests.yaml.
-        * Air.js/benchmark.js: Copied from PerformanceTests/JSAir/benchmark.js.
-        (Benchmark):
-        * Air.js/jsair-tests.yaml: Removed.
-        * Air.js/payload-airjs-ACLj8C.js: Copied from PerformanceTests/JSAir/payload-jsair-ACLj8C.js.
-        * Air.js/payload-jsair-ACLj8C.js: Removed.
-        * Air.js/stress-test.js: Copied from PerformanceTests/JSAir/stress-test.js.
-        * Air.js/test.html: Copied from PerformanceTests/JSAir/test.html.
-        * Air.js/test.js: Copied from PerformanceTests/JSAir/test.js.
-        * JSAir: Removed.
-        * JSAir/all.js: Removed.
-        * JSAir/allocate_stack.js: Removed.
-        * JSAir/arg.js: Removed.
-        * JSAir/basic_block.js: Removed.
-        * JSAir/benchmark.js: Removed.
-        * JSAir/code.js: Removed.
-        * JSAir/custom.js: Removed.
-        * JSAir/frequented_block.js: Removed.
-        * JSAir/insertion_set.js: Removed.
-        * JSAir/inst.js: Removed.
-        * JSAir/jsair-tests.yaml: Removed.
-        * JSAir/liveness.js: Removed.
-        * JSAir/opcode.js: Removed.
-        * JSAir/payload-gbemu-executeIteration.js: Removed.
-        * JSAir/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
-        * JSAir/payload-jsair-ACLj8C.js: Removed.
-        * JSAir/payload-typescript-scanIdentifier.js: Removed.
-        * JSAir/reg.js: Removed.
-        * JSAir/stack_slot.js: Removed.
-        * JSAir/stress-test.js: Removed.
-        * JSAir/strip-hash.rb: Removed.
-        * JSAir/symbols.js: Removed.
-        * JSAir/test.html: Removed.
-        * JSAir/test.js: Removed.
-        * JSAir/tmp.js: Removed.
-        * JSAir/tmp_base.js: Removed.
-        * JSAir/util.js: Removed.
-
-2016-06-10  Filip Pizlo  <fpizlo@apple.com>
-
-        JSC Stress Test failing: jsair-tests.yaml/test.js.ftl-eager-no-cjit
-        https://bugs.webkit.org/show_bug.cgi?id=158571
+        Speedometer 2.0: Update the About page.
+        https://bugs.webkit.org/show_bug.cgi?id=175918
 
         Reviewed by Keith Miller.
-        
-        Introduce a different harness for run-jsc-stress-tests, which runs for a minimum of 10
-        iterations and then tries to do any number of "bonus" iterations until it's been running for
-        two seconds. Since this is the sort of test that isn't really meant to stress anything in
-        particular, I think it's OK if it is time-limited in this way. The worst case is that some
-        of its failures will be flaky, but I think that they would have been flaky anyway given the
-        complexity of the test.
-
-        * JSAir/benchmark.js:
-        (Benchmark):
-        (Benchmark.prototype.runIteration):
-        (benchmark): Deleted.
-        * JSAir/jsair-tests.yaml:
-        * JSAir/stress-test.js: Added.
-        (preciseTime):
-        * JSAir/test.html:
-        * JSAir/test.js:
-
-2016-06-09  Filip Pizlo  <fpizlo@apple.com>
-
-        Unreviewed, teach the perf bots not to run JSAir.
-
-        * Skipped:
-
-2016-06-08  Filip Pizlo  <fpizlo@apple.com>
-
-        Use more ES6 features in JSAir
-        https://bugs.webkit.org/show_bug.cgi?id=158497
-
-        Reviewed by Keith Miller.
-        
-        This improves JSAir with the following ES6 features suggested by JoePeck:
-        
-        - String interpolation.
-        - Destructuring inside PatchCustom.
-        - Default arguments.
-        
-        All of these things are on hot paths.
-        
-        Note that I didn't use string interpolation everywhere that I could, only in those places
-        where it made the code more readable. In Ruby, I used the style that if the interpolation
-        expression has any non-trivial stuff (like a ternary operator, a chain of calls, or embedded
-        strings) then it's better to use regular strcat. I think that's what I carried over to here.
-        
-        Note that the previous change (Add result validation to JSAir) also made the Proxy code not
-        dead, though it's not necessarily on the hot path. The Proxy isn't called into frequently
-        but it's used from a function that is otherwise hot, so if calling into the Proxy prevents
-        that function from being optimized then it will hurt so good.
-        
-        I also reenabled tail calls in a few places.
-        
-        This change doesn't seem to change the performance of the benchmark for us. That's expected
-        since these ES6 features are cheap. Note that this claim doesn't include Proxy, which was
-        added in a separate change and that change did make the benchmark overall more expensive.
-
-        * JSAir/allocate_stack.js:
-        (allocateStack):
-        * JSAir/arg.js:
-        (Arg.createBitImm64):
-        (Arg.createAddr):
-        (Arg.createStack):
-        (Arg.logScale):
-        (Arg.createIndex):
-        * JSAir/basic_block.js:
-        (BasicBlock.get headerString):
-        (BasicBlock.prototype.get if):
-        (BasicBlock):
-        * JSAir/benchmark.js:
-        (benchmark):
-        * JSAir/code.js:
-        (Code):
-        (Code.prototype.addBlock):
-        (Code.prototype.addStackSlot):
-        (Code.prototype.newTmp):
-        (Code.prototype.get size):
-        (Code.prototype.get blocks):
-        (Code.prototype.get stackSlots):
-        (Code.prototype.tmps):
-        (Code.prototype.get callArgAreaSize):
-        (Code.prototype.toString):
-        * JSAir/custom.js:
-        (const.PatchCustom.forEachArg):
-        * JSAir/inst.js:
-        (Inst):
-        * JSAir/reg.js:
-        (Reg.prototype.toString):
-        * JSAir/util.js:
-        (symbolName):
-        (lowerSymbolName):
-
-2016-06-07  Filip Pizlo  <fpizlo@apple.com>
-
-        Add result validation to JSAir
-        https://bugs.webkit.org/show_bug.cgi?id=158493
-
-        Reviewed by Saam Barati.
-        
-        This adds the ability to hash a Code in a way that matches the C++ code's hashing of Code.
-        This allows us to check if the Code that JSAir sees is the code that C++ saw. We use this to
-        check the Code before and after allocateStack, and compare against hashes we got from C++.
-        
-        Doing this uncovered bugs. roundUpToMultipleOf wasn't doing anything. allocateStack was not
-        allocating things correctly because I was concatting a Set to an Array, which doesn't really
-        work. Now these bugs are fixed.
-        
-        The checking step adds to the running time so I reduced the number of iterations. The
-        benchmark spends a decent amount of its time computing Code hashes; I think it's around 1/3
-        total. This is probably OK. It's better to verify the results even if the running time is
-        not all in the "core" of the algorithm.
-        
-        Also add a run-jsc-stress-tests yaml file to allow this to run as a test.
-
-        * JSAir/allocate_stack.js:
-        * JSAir/arg.js:
-        (Arg.createImm):
-        (Arg.createBigImm):
-        (Arg.createBitImm):
-        (Arg.createBitImm64):
-        (Arg.createWidth):
-        (Arg.createSpecial):
-        (Arg.prototype.get kind):
-        (Arg.prototype.get isTmp):
-        (Arg.prototype.get isImm):
-        (Arg.prototype.get isSomeImm):
-        (Arg.prototype.get isSomeBigImm):
-        (Arg.prototype.get isCondition):
-        (Arg.prototype.get isWidth):
-        (Arg.prototype.get isSpecial):
-        (Arg.prototype.get isAlive):
-        (Arg.prototype.get tmp):
-        (Arg.prototype.get value):
-        (Arg.prototype.get lowValue):
-        (Arg.prototype.get highValue):
-        (Arg.prototype.get base):
-        (Arg.prototype.get isGP):
-        (Arg.prototype.get isFP):
-        (Arg.prototype.isValidForm):
-        (Arg.prototype.get isInvertible):
-        (Arg.kindCode):
-        (Arg.prototype.hash):
-        (Arg.prototype.toString):
-        (Arg):
-        * JSAir/basic_block.js:
-        (BasicBlock.get successorBlocks):
-        * JSAir/benchmark.js:
-        (benchmark):
-        * JSAir/code.js:
-        (Code.prototype.setFrameSize):
-        (Code.prototype.hash):
-        (Code.prototype.toString):
-        (Code):
-        * JSAir/inst.js:
-        (Inst.prototype.get hasNonArgEffects):
-        (Inst.prototype.hash):
-        (Inst.prototype.toString):
-        (Inst):
-        * JSAir/jsair-tests.yaml: Added.
-        * JSAir/opcode.js:
-        (Inst_forEachArg):
-        (Inst_hasNonArgEffects):
-        (opcodeCode):
-        * JSAir/payload-gbemu-executeIteration.js:
-        (createPayloadGbemuExecuteIteration):
-        * JSAir/payload-imaging-gaussian-blur-gaussianBlur.js:
-        (createPayloadImagingGaussianBlurGaussianBlur):
-        * JSAir/payload-jsair-ACLj8C.js:
-        (createPayloadJSAirACLj8C):
-        * JSAir/payload-typescript-scanIdentifier.js:
-        (createPayloadTypescriptScanIdentifier):
-        * JSAir/reg.js:
-        (Reg.prototype.get isReg):
-        (Reg.prototype.hash):
-        (Reg.prototype.toString):
-        * JSAir/stack_slot.js:
-        (StackSlot.prototype.setOffsetFromFP):
-        (StackSlot.prototype.hash):
-        (StackSlot.prototype.toString):
-        * JSAir/symbols.js:
-        (relCondCode):
-        (resCondCode):
-        (doubleCondCode):
-        * JSAir/test.html:
-        * JSAir/tmp.js:
-        (Tmp.prototype.get isReg):
-        (Tmp.prototype.hash):
-        (Tmp.prototype.toString):
-        * JSAir/util.js:
-        (roundUpToMultipleOf):
-        (symbolName):
-
-2016-06-07  Filip Pizlo  <fpizlo@apple.com>
-
-        Implement Air::allocateStack() in ES6 to see how much of a bad idea that is
-        https://bugs.webkit.org/show_bug.cgi?id=158318
-
-        Reviewed by Saam Barati.
-        
-        This adds a new benchmark for us to play with called JSAir. It's a complete ES6
-        implementation of Air's allocateStack() phase along with all of Air needed to run that
-        phase. This includes things like stack slots, registers, temporaries, basic blocks,
-        instructions, and all of the code for iterating over, inspecting, and modifying those
-        things.
-        
-        To make this work, JSC can now dump Air just before allocateStack() in the form of JS code
-        that creates a Code object that matches exactly what C++ Air saw. This benchmark comprises
-        four Air IRs:
-        
-        - Octane/gbemu's largest function, executeIteration.
-        - Kraken/imaging-gaussian-blur's largest function in OSR entry mode, gaussuanBlur.
-        - Octane/typescript's largest function that is actually hot, scanIdentifier.
-        - JSAir's largest hot function, which is anonymous, so we call it by its hash (ACLj8C).
-        
-        This runs in about 2 seconds on my machine in JSC trunk. It includes both a commandline
-        harness and a web harness. JSAir is almost exactly 100x slower in ES6 in WebKit than the
-        C++ Air::allocateStack() phase on which it is based.
-        
-        JSAir uses the following ES6 features:
-        
-        - Symbol.
-        - for-of.
-        - arrow functions.
-        - Map/Set.
-        - let/const.
-        - classes.
-        
-        All of these things are used in anger and should end up on the hot path. There is also code
-        that uses Proxies, but it ends up being dead.
-        
-        We can improve this even more:
-        I still need to add result validation: https://bugs.webkit.org/show_bug.cgi?id=158493
-        I want to make it use more ES6 features: https://bugs.webkit.org/show_bug.cgi?id=158497
-        
-        * JSAir: Added.
-        * JSAir/all.js: Added.
-        * JSAir/allocate_stack.js: Added.
-        (allocateStack.attemptAssignment):
-        (allocateStack.assign):
-        (allocateStack.interfere):
-        (allocateStack.):
-        (allocateStack):
-        * JSAir/arg.js: Added.
-        (Arg):
-        (Arg.isAnyUse):
-        (Arg.isColdUse):
-        (Arg.isWarmUse):
-        (Arg.cooled):
-        (Arg.isEarlyUse):
-        (Arg.isLateUse):
-        (Arg.isAnyDef):
-        (Arg.isEarlyDef):
-        (Arg.isLateDef):
-        (Arg.isZDef):
-        (Arg.typeForB3Type):
-        (Arg.widthForB3Type):
-        (Arg.conservativeWidth):
-        (Arg.minimumWidth):
-        (Arg.bytes):
-        (Arg.widthForBytes):
-        (Arg.createTmp):
-        (Arg.fromReg):
-        (Arg.createImm):
-        (Arg.createBigImm):
-        (Arg.createBitImm):
-        (Arg.createBitImm64):
-        (Arg.createAddr):
-        (Arg.createStack):
-        (Arg.createCallArg):
-        (Arg.createStackAddr):
-        (Arg.isValidScale):
-        (Arg.logScale):
-        (Arg.createIndex):
-        (Arg.createRelCond):
-        (Arg.createResCond):
-        (Arg.createDoubleCond):
-        (Arg.createWidth):
-        (Arg.prototype.get kind):
-        (Arg.prototype.get isTmp):
-        (Arg.prototype.get isImm):
-        (Arg.prototype.get isBigImm):
-        (Arg.prototype.get isBitImm):
-        (Arg.prototype.get isBitImm64):
-        (Arg.prototype.get isSomeImm):
-        (Arg.prototype.get isAddr):
-        (Arg.prototype.get isStack):
-        (Arg.prototype.get isCallArg):
-        (Arg.prototype.get isIndex):
-        (Arg.prototype.get isMemory):
-        (Arg.prototype.get isStackMemory):
-        (Arg.prototype.get isRelCond):
-        (Arg.prototype.get isResCond):
-        (Arg.prototype.get isDoubleCond):
-        (Arg.prototype.get isCondition):
-        (Arg.prototype.get isWidth):
-        (Arg.prototype.get isAlive):
-        (Arg.prototype.get tmp):
-        (Arg.prototype.get value):
-        (Arg.prototype.get base):
-        (Arg.prototype.get hasOffset):
-        (Arg.prototype.get offset):
-        (Arg.prototype.get stackSlot):
-        (Arg.prototype.get index):
-        (Arg.prototype.get scale):
-        (Arg.prototype.get logScale):
-        (Arg.prototype.get width):
-        (Arg.prototype.get isGPTmp):
-        (Arg.prototype.get isFPTmp):
-        (Arg.prototype.get isGP):
-        (Arg.prototype.get isFP):
-        (Arg.prototype.get hasType):
-        (Arg.prototype.get type):
-        (Arg.prototype.isType):
-        (Arg.prototype.isCompatibleType):
-        (Arg.prototype.get isGPR):
-        (Arg.prototype.get gpr):
-        (Arg.prototype.get isFPR):
-        (Arg.prototype.get fpr):
-        (Arg.prototype.get isReg):
-        (Arg.prototype.get reg):
-        (Arg.isValidImmForm):
-        (Arg.isValidBitImmForm):
-        (Arg.isValidBitImm64Form):
-        (Arg.isValidAddrForm):
-        (Arg.isValidIndexForm):
-        (Arg.prototype.isValidForm):
-        (Arg.prototype.forEachTmpFast):
-        (Arg.prototype.usesTmp):
-        (Arg.prototype.forEachTmp):
-        (Arg.prototype.is):
-        (Arg.prototype.as):
-        (Arg.prototype.forEachFast):
-        (Arg.prototype.forEach):
-        (Arg.extract):
-        (Arg.forEachFast):
-        (Arg.forEach):
-        (Arg.prototype.get condition):
-        (Arg.prototype.get isInvertible):
-        (Arg.prototype.toString):
-        * JSAir/basic_block.js: Added.
-        (BasicBlock):
-        (BasicBlock.prototype.get index):
-        (BasicBlock.prototype.get size):
-        (BasicBlock.prototype.Symbol.iterator):
-        (BasicBlock.prototype.at):
-        (BasicBlock.get last):
-        (BasicBlock.get insts):
-        (BasicBlock.get numSuccessors):
-        (BasicBlock.get successors):
-        (BasicBlock.get successorBlocks.):
-        (BasicBlock.get successorBlocks):
-        (BasicBlock.set get numPredecessors):
-        (BasicBlock.get predecessors):
-        (BasicBlock.get frequency):
-        (BasicBlock.get headerString):
-        (BasicBlock.get footerString):
-        * JSAir/benchmark.js: Added.
-        (benchmark):
-        * JSAir/code.js: Added.
-        (Code):
-        (Code.prototype.addBlock):
-        (Code.prototype.addStackSlot):
-        (Code.prototype.newTmp):
-        (Code.prototype.get size):
-        (Code.prototype.at):
-        (Code.prototype.Symbol.iterator):
-        (Code.prototype.get blocks):
-        (Code.prototype.get stackSlots):
-        (Code.prototype.tmps):
-        (Code.prototype.get callArgAreaSize):
-        (Code.prototype.requestCallArgAreaSize):
-        (Code.prototype.get frameSize):
-        (Code.prototype.setFrameSize):
-        (Code.prototype.toString):
-        * JSAir/custom.js: Added.
-        (const.ShuffleCustom.forEachArg):
-        (const.ShuffleCustom.hasNonArgNonControlEffects):
-        (const.PatchCustom.forEachArg):
-        (const.PatchCustom.hasNonArgNonControlEffects):
-        (const.CCallCustom.forEachArg):
-        (const.CCallCustom.hasNonArgNonControlEffects):
-        (const.ColdCCallCustom.forEachArg):
-        (const.ColdCCallCustom.hasNonArgNonControlEffects):
-        * JSAir/frequented_block.js: Added.
-        (FrequentedBlock):
-        (FrequentedBlock.prototype.toString):
-        * JSAir/insertion_set.js: Added.
-        (Insertion):
-        (Insertion.prototype.get index):
-        (Insertion.prototype.get element):
-        (Insertion.prototype.lessThan):
-        (InsertionSet):
-        (InsertionSet.prototype.appendInsertion):
-        (InsertionSet.prototype.append):
-        (InsertionSet.prototype.execute):
-        * JSAir/inst.js: Added.
-        (Inst):
-        (Inst.prototype.append):
-        (Inst.prototype.clear):
-        (Inst.prototype.get opcode):
-        (Inst.prototype.get args):
-        (Inst.prototype.visitArg):
-        (Inst.prototype.forEachTmpFast):
-        (Inst.prototype.forEachArg):
-        (Inst.prototype.forEachTmp):
-        (Inst.prototype.forEach):
-        (Inst.forEachDef):
-        (Inst.forEachDefWithExtraClobberedRegs):
-        (Inst.prototype.get hasNonArgEffects):
-        (Inst.prototype.toString):
-        * JSAir/liveness.js: Added.
-        (Liveness):
-        (Liveness.prototype.get thing):
-        (Liveness.prototype.get code):
-        (Liveness.prototype.get liveAtHead):
-        (Liveness.prototype.get liveAtTail):
-        (Liveness.prototype.localCalc.LocalCalc):
-        (Liveness.prototype.localCalc.LocalCalc.prototype.get liveSet):
-        (Liveness.prototype.localCalc.LocalCalc.prototype.execute):
-        (Liveness.prototype.localCalc):
-        * JSAir/opcode.js: Added.
-        (Inst_forEachArg):
-        (Inst_hasNonArgEffects):
-        * JSAir/payload-gbemu-executeIteration.js: Added.
-        (createPayloadGbemuExecuteIteration):
-        * JSAir/payload-imaging-gaussian-blur-gaussianBlur.js: Added.
-        (createPayloadImagingGaussianBlurGaussianBlur):
-        * JSAir/payload-jsair-ACLj8C.js: Added.
-        (createPayloadJSAirACLj8C):
-        * JSAir/payload-typescript-scanIdentifier.js: Added.
-        (createPayloadTypescriptScanIdentifier):
-        * JSAir/reg.js: Added.
-        (Reg):
-        (Reg.fromReg):
-        (Reg.prototype.get index):
-        (Reg.prototype.get type):
-        (Reg.prototype.get name):
-        (Reg.prototype.get isCalleeSave):
-        (Reg.prototype.get isReg):
-        (Reg.prototype.toString):
-        (Reg.extract):
-        (Reg.forEachFast):
-        (Reg.forEach):
-        (newGPR):
-        (Reg.gprs.Reg.fprs.Reg.calleeSaveGPRs.Reg.calleeSaveFPRs.Reg.calleeSaves):
-        * JSAir/stack_slot.js: Added.
-        (StackSlot):
-        (StackSlot.prototype.get byteSize):
-        (StackSlot.prototype.get kind):
-        (StackSlot.prototype.get isLocked):
-        (StackSlot.prototype.get isSpill):
-        (StackSlot.prototype.get index):
-        (StackSlot.prototype.ensureSize):
-        (StackSlot.prototype.get alignment):
-        (StackSlot.prototype.get offsetFromFP):
-        (StackSlot.prototype.setOffsetFromFP):
-        (StackSlot.prototype.toString):
-        (StackSlot.extract):
-        (StackSlot.forEachFast):
-        (StackSlot.forEach):
-        * JSAir/symbols.js: Added.
-        * JSAir/test.html: Added.
-        * JSAir/test.js: Added.
-        * JSAir/tmp.js: Added.
-        (Tmp):
-        (Tmp.fromReg):
-        (Tmp.prototype.get index):
-        (Tmp.prototype.get type):
-        (Tmp.prototype.get isReg):
-        (Tmp.prototype.toString):
-        (Tmp.extract):
-        (Tmp.forEachFast):
-        (Tmp.forEach):
-        * JSAir/tmp_base.js: Added.
-        (TmpBase.prototype.get isGP):
-        (TmpBase.prototype.get isFP):
-        (TmpBase.prototype.get isGPR):
-        (TmpBase.prototype.get isFPR):
-        (TmpBase.prototype.get reg):
-        (TmpBase.prototype.get gpr):
-        (TmpBase.prototype.get fpr):
-        (TmpBase):
-        * JSAir/util.js: Added.
-        (isRepresentableAsInt32):
-        (addIndexed):
-        (roundUpToMultipleOf):
-        (symbolName):
-        (mergeIntoSet):
-        (nonEmptyRangesOverlap):
-        (rangesOverlap):
-        (removeAllMatching):
-        (swap):
-        (bubble):
-        (bubbleSort):
-        (currentTime):
-        (else.currentTime):
-
-2016-05-26  Yusuke Suzuki  <utatane.tea@gmail.com>
-
-        [JSC] Allow JSBench to use precise time
-        https://bugs.webkit.org/show_bug.cgi?id=158050
-
-        Reviewed by Geoffrey Garen.
-
-        * JSBench/amazon-chrome-win/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/amazon-chrome/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/amazon-firefox-win/urm.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/amazon-firefox/urm.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/amazon-safari/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/facebook-chrome-win/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/facebook-chrome/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/facebook-firefox-win/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/facebook-firefox/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/facebook-safari/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/google-chrome-win/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/google-chrome/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/google-firefox-win/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/google-firefox/uem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/google-safari/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/harness.js:
-        (runBenchmark.window.currentTimeInMS):
-        (runBenchmark.else.window.currentTimeInMS):
-        * JSBench/twitter-chrome-win/rem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/twitter-chrome/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/twitter-firefox-win/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/twitter-firefox/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/twitter-safari/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/yahoo-chrome-win/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/yahoo-chrome/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/yahoo-firefox-win/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/yahoo-firefox/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-        * JSBench/yahoo-safari/urem.js:
-        (else.window.performance.window.performance.now.currentTimeInMS):
-        (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
-        (else.else.currentTimeInMS):
-        (onload.cb):
-        (onload):
-
-2016-05-25  Geoffrey Garen  <ggaren@apple.com>
-
-        replaceable own properties seem to ignore replacement after property caching
-        https://bugs.webkit.org/show_bug.cgi?id=158091
-
-        Reviewed by Darin Adler.
-
-        * MallocBench/MallocBench.xcodeproj/project.pbxproj:
-        * MallocBench/MallocBench/Benchmark.cpp:
-        * MallocBench/MallocBench/Interpreter.cpp:
-        (Interpreter::doMallocOp):
-        * MallocBench/MallocBench/Interpreter.h:
-        * MallocBench/MallocBench/fastMallocLog.63316.ops: Added.
-        * MallocBench/MallocBench/jetstream.cpp: Added.
-        (benchmark_jetstream):
-        * MallocBench/MallocBench/jetstream.h: Added.
-
-2016-05-25  Keith Miller  <keith_miller@apple.com>
-
-        Unreviewed, add JSBench to the skipped list for now since it doesn't
-        work currently.
-
-        * Skipped:
-
-2016-05-17  Keith Miller  <keith_miller@apple.com>
-        We should have JSBench in PerformanceTests
-        https://bugs.webkit.org/show_bug.cgi?id=157952
-
-        Rubber-stamped by Saam Barati.
-
-        There are some slight changes to the layout of the test directory
-        to make it work nicely with run-jsc-benchmarks. Before JSBench
-        had each of the browser specific sub-tests in a sub-directory.
-        These have been flattened e.g. amazon/safari/ has become
-        amazon-safari/.
-
-        * JSBench/amazon-chrome-win/urem.html: Added.
-        * JSBench/amazon-chrome-win/urem.js: Added.
-        * JSBench/amazon-chrome/urem.html: Added.
-        * JSBench/amazon-chrome/urem.js: Added.
-        * JSBench/amazon-firefox-win/urm.html: Added.
-        * JSBench/amazon-firefox-win/urm.js: Added.
-        * JSBench/amazon-firefox/urm.html: Added.
-        * JSBench/amazon-firefox/urm.js: Added.
-        * JSBench/amazon-safari/urem.html: Added.
-        * JSBench/amazon-safari/urem.js: Added.
-        * JSBench/browsercheck.js: Added.
-        * JSBench/facebook-chrome-win/urem.html: Added.
-        * JSBench/facebook-chrome-win/urem.js: Added.
-        * JSBench/facebook-chrome/urem.html: Added.
-        * JSBench/facebook-chrome/urem.js: Added.
-        * JSBench/facebook-firefox-win/urem.html: Added.
-        * JSBench/facebook-firefox-win/urem.js: Added.
-        * JSBench/facebook-firefox/urem.html: Added.
-        * JSBench/facebook-firefox/urem.js: Added.
-        * JSBench/facebook-safari/urem.html: Added.
-        * JSBench/facebook-safari/urem.js: Added.
-        * JSBench/google-chrome-win/urem.html: Added.
-        * JSBench/google-chrome-win/urem.js: Added.
-        * JSBench/google-chrome/urem.html: Added.
-        * JSBench/google-chrome/urem.js: Added.
-        * JSBench/google-firefox-win/urem.html: Added.
-        * JSBench/google-firefox-win/urem.js: Added.
-        * JSBench/google-firefox/uem.html: Added.
-        * JSBench/google-firefox/uem.js: Added.
-        * JSBench/google-safari/urem.html: Added.
-        * JSBench/google-safari/urem.js: Added.
-        * JSBench/harness.html: Added.
-        * JSBench/harness.js: Added.
-        * JSBench/harness.py: Added.
-        * JSBench/index.html: Added.
-        * JSBench/reload.html: Added.
-        * JSBench/twitter-chrome-win/rem.html: Added.
-        * JSBench/twitter-chrome-win/rem.js: Added.
-        * JSBench/twitter-chrome/urem.html: Added.
-        * JSBench/twitter-chrome/urem.js: Added.
-        * JSBench/twitter-firefox-win/urem.html: Added.
-        * JSBench/twitter-firefox-win/urem.js: Added.
-        * JSBench/twitter-firefox/urem.html: Added.
-        * JSBench/twitter-firefox/urem.js: Added.
-        * JSBench/twitter-safari/urem.html: Added.
-        * JSBench/twitter-safari/urem.js: Added.
-        * JSBench/yahoo-chrome-win/urem.html: Added.
-        * JSBench/yahoo-chrome-win/urem.js: Added.
-        * JSBench/yahoo-chrome/urem.html: Added.
-        * JSBench/yahoo-chrome/urem.js: Added.
-        * JSBench/yahoo-firefox-win/urem.html: Added.
-        * JSBench/yahoo-firefox-win/urem.js: Added.
-        * JSBench/yahoo-firefox/urem.html: Added.
-        * JSBench/yahoo-firefox/urem.js: Added.
-        * JSBench/yahoo-safari/urem.html: Added.
-        * JSBench/yahoo-safari/urem.js: Added.
-
-2016-05-20  Ryosuke Niwa  <rniwa@webkit.org>
-
-        run-benchmark's results should contain Animometer's debug output
-        https://bugs.webkit.org/show_bug.cgi?id=157941
-
-        Reviewed by Stephanie Lewis.
-
-        Made developer.html support the JSON generated by run-benchmark which stores everything under debugOutput.
-
-        * Animometer/resources/debug-runner/animometer.js:
-        (Utilities.initialize): Unwrap debugOutput in the case run-benchmark's result JSON is used.
-
-2016-05-18  Timothy Hatcher  <timothy@apple.com>
-
-        Make Animometer work in all browsers
-        https://bugs.webkit.org/show_bug.cgi?id=157855
-        rdar://problem/26338521
-
-        Reviewed by Jon Lee.
-
-        * Animometer/resources/runner/logo.svg: Use a symbol instead
-        of putting the id on the root svg. This works in all browsers.
-
-2016-05-07  Timothy Hatcher  <timothy@apple.com>
-
-        Update Animometer design
-        https://bugs.webkit.org/show_bug.cgi?id=157449
-
-        Reviewed by Darin Adler.
-
-        * Animometer/developer.html: Stop including runner/animometer.css.
-        * Animometer/index.html: Udpated elements to fit new styles.
-
-        * Animometer/resources/debug-runner/animometer.css:
-        Copy the old runner/animometer.css to here so the debug runner is unaffected.
-
-        * Animometer/resources/runner/animometer.css:
-        New styles for the design. Drop flex box for broad browser support.
-
-        * Animometer/resources/runner/animometer.js:
-        (ResultsTable.clear): Use textContent.
-        (window.sectionsManager.showSection): Add class to the body.
-        (window.sectionsManager.setSectionScore): Use textContent, not innerHTML.
-
-        * Animometer/resources/runner/crystal.svg: Added.
-        * Animometer/resources/runner/lines.svg: Added.
-        * Animometer/resources/runner/logo.svg: Added.
-
-        * Animometer/resources/runner/tests.js: Shorten test name and title case them.
-
-2016-05-06  Manuel Rego Casasnovas  <rego@igalia.com>
-
-        [css-grid] Unprefix CSS Grid Layout properties
-        https://bugs.webkit.org/show_bug.cgi?id=157137
-
-        Reviewed by Simon Fraser.
-
-        Remove "-webkit" prefix from all the grid layout properties,
-        including the display value.
-        Update the source code to remove the prefix where it was used too.
-
-        * Layout/auto-grid-lots-of-data.html:
-        * Layout/fixed-grid-lots-of-data.html:
-        * Layout/fixed-grid-lots-of-stretched-data.html:
-
-2016-04-25  Geoffrey Garen  <ggaren@apple.com>
-
-        bmalloc: Misc improvements to MallocBench
-        https://bugs.webkit.org/show_bug.cgi?id=157004
-
-        Reviewed by Darin Adler.
-
-        * MallocBench/run-malloc-benchmarks: Added --memory and --memory_warning
-        modes for focused memory testing.
-
-        * MallocBench/MallocBench/Benchmark.cpp:
-        (Benchmark::printReport): Clarified output.
-
-        (Benchmark::currentMemoryBytes): Added compressed memory because top
-        does the same. (It always happens to zero in the benchmarks we run. But
-        this is good for sanity.)
-
-        * MallocBench/MallocBench/CommandLine.cpp: Moved up to 8 runs to reduce
-        variance.
-
-        * MallocBench/MallocBench/alloc_free.cpp:
-        (benchmark_alloc_free): Cycle a single allocation in order to stress
-        the effect of merging on calls to madvise.
-
-        * MallocBench/MallocBench/big.cpp:
-        (benchmark_big): Graduated to 8kB-128kB because medium tests up to 8 and
-        our large allocator doesn't kick in until 64kB.
-
-        * MallocBench/MallocBench/medium.cpp:
-        (benchmark_medium): Test all the way down to 1kB because our large
-        allocator used to service 1kB allocations and 1kB is an interesting
-        middle size where memory is unusually large but allocation throughput
-        still matters.
-
-        * MallocBench/MallocBench/stress.cpp:
-        (benchmark_stress): Reduced the churn count to match stress_aligned
-        because this test was taking too long to complete.
-
-        * MallocBench/MallocBench/stress_aligned.cpp:
-        (benchmark_stress_aligned): Our new large allocator can handle even
-        more absurdly large values.
-
-2016-04-25  Simon Fraser  <simon.fraser@apple.com>
-
-        Add a content animation test that uses SVG animation.
-        https://bugs.webkit.org/show_bug.cgi?id=156827
-
-        * Animation/svg-animation.html: Added.
-        * Skipped:
-
-2016-04-22  Simon Fraser  <simon.fraser@apple.com>
-
-        Skip two content animation tests which are only meant for iOS testing.
-
-        * Animation/css-animation.html: Added.
-        * Animation/raf-animation.html: Added.
-
-        * Skipped:
-
-2016-04-20  Simon Fraser  <simon.fraser@apple.com>
-
-        Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
-        https://bugs.webkit.org/show_bug.cgi?id=156827
-
-        Add two files missing from the previous commit.
-
-        * Animation/css-animation.html: Added.
-        * Animation/raf-animation.html: Added.
-
-2016-04-20  Simon Fraser  <simon.fraser@apple.com>
-
-        Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
-        https://bugs.webkit.org/show_bug.cgi?id=156827
-
-        Reviewed by Stephanie Lewis.
-
-        Two new files for the content-animation suite.
-
-        After patching for use in the benchmark, these tests are a little different to other benchmarks.
-        The test content itself does not collect performance data; the tests spit out a boilerplate JSON
-        result with a placeholder for framerate, which is collected in native code.
-
-        When run as a benchmark, test completion involves a couple of bounces between the test and MobileSafari.
-        Test completion is initiated by a setTimeout() in the test, at which point location.hash is set to "#done".
-        MobileSafari detects that, and asynchronously dumps performance data. Once this is complete, MobileSafari
-        changes the URL has to "#submit", which triggers the XHR to the test relay that indicates the test is
-        complete.
-
-        * Animation/css-animation.html: Added.
-        * Animation/raf-animation.html: Added.
-
-2016-04-15  Jon Lee  <jonlee@apple.com>
-
-        Animometer test could report a NaN
-        https://bugs.webkit.org/show_bug.cgi?id=156646
-
-        Reviewed by Darin Adler.
-        Provisionally reviewed by Said Abou-Hallawa.
-
-        * Animometer/tests/resources/main.js:
-        (didFinishInterval): The ramp controller has a first phase where it ramps up the complexity and
-        reacts based on how well the system handles the load. The assumption was that it would handle at least
-        1 particle easily. That is not always the case. As a result, an interpolation calculation could
-        end up setting an upper bound of NaN.
-
-        This occurs because we never get out of the first tier, so this._lastTierComplexity is undefined.
-        Now that we guarantee a minimum complexity of 1, modify the conditional to check for this._lastTierComplexity
-        before interpolating the upper bound of the first ramp. In the case where the system struggles with
-        1 particle, set it to currentComplexity.
-
-2016-04-09  Jon Lee  <jonlee@apple.com>
-
-        Update Animometer to accommodate different screens
-        https://bugs.webkit.org/show_bug.cgi?id=156449
-
-        Reviewed by Darin Adler.
-        Provisionally reviewed by Said Abou-Hallawa.
-
-        * Animometer/index.html: Wrap button in a container to add padding at the bottom.
-        * Animometer/resources/debug-runner/animometer.css:
-        (@media screen and (min-device-width: 1800px)): Deleted.
-        (@media screen and (min-width: 1800px)): Cannot use min-device-width since it may match incorrectly.
-        (screen and (max-device-height: 414px) and (orientation: landscape)): Some devices swap device width
-        and height with orientation change.
-        * Animometer/resources/runner/animometer.css: Similar.
-        (screen and (min-device-width: 1024px) and (orientation: landscape)):
-        (screen and (max-device-height: 414px) and (orientation: landscape)):
-        (.frame-container): On smaller iPhones, adding 1px prevents the navigation bars from appearing.
-        (@media screen and (min-device-width: 768px) and (max-device-width: 1024px)): Deleted.
-        (@media (min-device-height: 768px) and (max-device-height: 1024px)): Target iPad Airs and similar.
-        (@media screen and (min-device-width: 1024px) and (max-device-width: 1366px)): Deleted.
-        (@media screen and (max-device-width: 1024px) and (min-device-height: 1366px)): Target iPad Pro.
-        (#results footer): Add padding below the button for testing again.
-        * Animometer/tests/master/multiply.html: Remove the center text.
-        * Animometer/tests/master/resources/text.js: Update the test so that in every frame the text moves.
-        * Animometer/tests/master/text.html: Update the text sizing depending on the size of the device.
-
-2016-04-08  Jon Lee  <jonlee@apple.com>
-
-        Have Animometer benchmark always start with complexity of 1
-        https://bugs.webkit.org/show_bug.cgi?id=156432
-
-        Reviewed by Ryosuke Niwa.
-
-        * Animometer/tests/resources/main.js: Update the default Controller and RampController to
-        set its minimum complexities to 1 instead of 0.
-
-2016-04-08  Jon Lee  <jonlee@apple.com>
-
-        Fix SVG benchmark test
-        https://bugs.webkit.org/show_bug.cgi?id=156410
-
-        Reviewed by Dean Jackson.
-
-        * Animometer/resources/extensions.js: Update Point.zero to be a static Point.
-        * Animometer/tests/simple/resources/tiled-canvas-image.js:
-        (Stage.call._setupTiles): Refactor.
-        * Animometer/tests/master/resources/particles.js:
-        (Particle.prototype.reset): Use Point.center.
-        (complexity): We are not using a gradient background anymore, so remove the +1.
-        * Animometer/tests/master/resources/svg-particles.js: Update to use SVG transform
-        instead of CSS transform.
-
-2016-04-06  Jon Lee  <jonlee@apple.com>
-
-        Update master benchmark with SVG test
-        https://bugs.webkit.org/show_bug.cgi?id=156273
-
-        Reviewed by Dean Jackson.
-        Provisionally reviewed by Said Abou-Hallawa.
-
-        Switch masks tests for SVG path test.
-
-        * Animometer/resources/debug-runner/tests.js: Move mask test here.
-        * Animometer/resources/runner/tests.js: Add SVG test here.
-        * Animometer/tests/dom/particles.html: Renamed from PerformanceTests/Animometer/tests/master/particles.html.
-        * Animometer/tests/dom/resources/dom-particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/dom-particles.js.
-
-        * Animometer/tests/master/resources/particles.js: Add minPosition for bounds checking. Prevents particle from being
-        partially obscured.
-        * Animometer/tests/master/resources/svg-particles.js: Added.
-        (Particle): The particle is either a path object or a rect using a path as a clip. The
-        same path is used either way. For each particle create a linear gradient with a random
-        rotation.
-        (SVGParticlesStage): Look in #shapes to see how many different kinds of paths are available.
-        This makes the test more generic in case other shapes need to be tested.
-        * Animometer/tests/master/svg-particles.html: Added. Have two defs, one that houses each
-        particle's gradient, and one that holds the shape templates.
-
-2016-03-27  Hunseop Jeong  <hs85.jeong@samsung.com>
-
-        [EFL] REGRESSION(r188793): It made 200 layout tests and Bindings/event-target-wrapper.html performance test fail
-        https://bugs.webkit.org/show_bug.cgi?id=148470 
-
-        Reviewed by Darin Adler.
-
-        * Skipped: Unskip the Bindings/event-target-wrapper test.
-
-2016-03-23  Jon Lee  <jonlee@apple.com>
-
-        Update focus and leaves tests
-        https://bugs.webkit.org/show_bug.cgi?id=155825
-
-        Reviewed by Simon Fraser.
-
-        Particles would improperly disappear, before they were fully off stage. Update the calculation.
-        * Animometer/tests/dom/resources/leaves.js:
-        * Animometer/tests/master/resources/leaves.js:
-
-        * Animometer/tests/master/focus.html: Update the center element styling.
-        * Animometer/tests/master/resources/focus.js:
-        (FocusElement.Utilities.createClass): Give enough space in the container for each particle for the blur
-        to spread. It should be about 3x more space than the blur radius on each side.
-        (Stage.call.initialize): Ditto for the center element.
-
-2016-03-23  Jon Lee  <jonlee@apple.com>
-
-        Update support for other platforms
-        https://bugs.webkit.org/show_bug.cgi?id=155824
-
-        Reviewed by Simon Fraser.
-
-        * Animometer/resources/debug-runner/animometer.css: Remove extraneous media query. All of it should
-        be handled in the release stylesheet.
-        * Animometer/resources/debug-runner/animometer.js: Add support for browsers that return an HTMLCollection
-        when retrieving radio elements with a name, instead of the selected value.
-        * Animometer/resources/runner/animometer.css: Adjust the queries for devices of varying widths.
-        (.frame-container): Move overflow:hidden to #stage.
-        * Animometer/tests/master/resources/stage.css: Consolidate into tests/resources/stage.css.
-        * Animometer/tests/resources/stage.css:
-        (body): Remove overflow:hidden.
-        (#stage): Set overflow:hidden here.
-        (#center-text): Moved from master/resources/stage.css.
-
-        Update stylesheet hrefs.
-        * Animometer/tests/master/canvas-stage.html:
-        * Animometer/tests/master/focus.html:
-        * Animometer/tests/master/leaves.html:
-        * Animometer/tests/master/multiply.html:
-        * Animometer/tests/master/particles.html:
-        * Animometer/tests/master/text.html: Adjust text size to fit in the device screen.
-
-2016-03-23  Jon Lee  <jonlee@apple.com>
-
-        Make the benchmark require device to be in landscape orientation
-        https://bugs.webkit.org/show_bug.cgi?id=155822
-        rdar://problem/25258650
-
-        Reviewed by Ryosuke Niwa.
-
-        Check that the device is in landscape orientation. If not, disable the button to start it,
-        and show a warning message.
-
-        * Animometer/developer.html: Add a message about how the browser should be set up. Include a
-        warning message that appears if the orientation is incorrect on mobile devices.
-        * Animometer/index.html: Ditto.
-
-        * Animometer/resources/debug-runner/animometer.css: Migrate the .hidden rule into the release
-        stylesheet. Update the style to accommodate the new UI.
-        * Animometer/resources/runner/animometer.css:
-
-        * Animometer/resources/runner/animometer.js:
-        (window.benchmarkController.initialize): Add the orientation listener is needed.
-        (window.benchmarkController.addOrientationListenerIfNecessary): Only mobile devices need this. Check
-        to see for support of window.orientation.
-        (window.benchmarkController._orientationChanged): Toggle the warning based on whether we match the
-        landscape query. Set a state variable, which is needed for the debug harness. Call updateStartButtonState.
-        (window.benchmarkController.updateStartButtonState):
-        * Animometer/resources/debug-runner/animometer.js: Change _updateStartButtonState to return
-        a boolean about whether at least one test is selected. That will be used in
-        benchmarkController.updateStartButtonState(). Move the load event listener to the release version.
-        (window.benchmarkController.updateStartButtonState): Override the release version, and also check
-        that at least one test is selected.
-
-2016-03-22  Geoffrey Garen  <ggaren@apple.com>
-
-        MallocBench: consolidate regression testing for aligned allocation
-        https://bugs.webkit.org/show_bug.cgi?id=155762
-
-        Reviewed by Michael Saboff.
-
-        * MallocBench/MallocBench.xcodeproj/project.pbxproj:
-        * MallocBench/MallocBench/Benchmark.cpp:
-        * MallocBench/MallocBench/memalign.cpp: Removed.
-        * MallocBench/MallocBench/memalign.h: Removed. The stress_aligned test
-        covers this and much more.
-
-        * MallocBench/MallocBench/stress_aligned.cpp:
-        (benchmark_stress_aligned): Include specific tests for extreme sizes
-        and alignments.
-
-2016-03-21  Jon Lee  <jonlee@apple.com>
-
-        Update benchmark tests
-        https://bugs.webkit.org/show_bug.cgi?id=155723
-
-        Reviewed by Darin Adler.
-        Provisionally reviewed by Said Abou-Hallawa.
-
-        Add quadratic and bezier segments to the canvas path test.
-
-        * Animometer/resources/runner/tests.js: Some of the query strings are unnecessary.
-        Rename the test.
-        * Animometer/tests/master/resources/canvas-stage.js:
-        (tune): Update to be able to take an array of possible constructors. Choose one randomly.
-        * Animometer/tests/master/resources/canvas-tests.js:
-        (CanvasLinePoint.Utilities.createClass): Move the point selection out to a separate
-        function called randomPoint() for reuse. Move X_LOOPS, Y_LOOPS, and offsets into the
-        class definition.
-        (randomPoint): Scale the grid down a little bit so that the lines along the edge of the
-        canvas are not cut off when the stroke size is thick.
-        (CanvasQuadraticSegment): Added.
-        (CanvasBezierSegment): Added.
-        (SimpleCanvasStage): Pass in an array of the different segment types. Since line segments
-        are short compared to the curved ones, make it twice as likely to render a line segment.
-        (SimpleCanvasStage.animate): Update the drawing code so that we render all line segments.
-
-        Add a helper method that selects a random element from an array.
-
-        * Animometer/tests/resources/main.js:
-        (Stage.randomElementInArray): Select a random element from the provided array.
-
-        * Animometer/tests/bouncing-particles/resources/bouncing-tagged-images.js: Refactor.
-        * Animometer/tests/dom/resources/leaves.js: Ditto.
-        * Animometer/tests/master/resources/dom-particles.js: Ditto.
-        * Animometer/tests/master/resources/image-data.js: Ditto.
-        * Animometer/tests/master/resources/leaves.js: Ditto.
-        * Animometer/tests/simple/resources/simple-canvas-paths.js: Ditto.
-
-        Add canvas tests that includes all stroke and fill paths. This makes it possible to avoid having to
-        include the full simple canvas suite for perf testing.
-
-        * Animometer/resources/debug-runner/tests.js: Add new tests. Move the canvas test into the Canvas
-        suite.
-        * Animometer/tests/simple/resources/simple-canvas-paths.js: Add a CanvasStroke and CanvasFill particle
-        that random selects an object to render.
-
-        * Animometer/resources/debug-runner/tests.js: Move 3D suite before basic canvas suite.
-        When updating the perf bot script, we will include the suites up to this one, but exclude
-        the basic canvas suite.
-
-        Move compositing transforms test to HTML suite and remove the empty Miscellaneous suite.
-
-        * Animometer/resources/debug-runner/tests.js:
-        * Animometer/tests/dom/compositing-transforms.html: Renamed from PerformanceTests/Animometer/tests/misc/compositing-transforms.html.
-        * Animometer/tests/dom/resources/compositing-transforms.js: Renamed from PerformanceTests/Animometer/tests/misc/resources/compositing-transforms.js.
-
-        Clean up miscellaneous test suite. Add a canvas ellipse test, and remove the other
-        canvas tests.
-
-        * Animometer/resources/debug-runner/tests.js: Add ellipse tests to the simple suite.
-        * Animometer/tests/misc/canvas-electrons.html: Removed.
-        * Animometer/tests/misc/canvas-stars.html: Removed.
-        * Animometer/tests/misc/resources/canvas-electrons.js: Removed.
-        * Animometer/tests/misc/resources/canvas-stars.js: Removed.
-        * Animometer/tests/simple/resources/simple-canvas-paths.js: Add ellipse primitives.
-
-        Merge text tests together into one.
-
-        * Animometer/resources/runner/tests.js: Remove international.html.
-        * Animometer/tests/master/international.html: Removed.
-        * Animometer/tests/master/resources/text.js:
-        (animate): Update styling. Manually calculate gradients for the shadow particles.
-        Reduce the step size for y direction to avoid cutting text off at the margins. Increase
-        step for x since there will be a little more room.
-        * Animometer/tests/master/text.html: Add more translations and lay it out in a table.
-
-2016-03-20  Jon Lee  <jonlee@apple.com>
-
-        Add a link to show debug data
-        https://bugs.webkit.org/show_bug.cgi?id=155724
-
-        Reviewed by Simon Fraser.
-
-        * Animometer/developer.html: Attach the onclick handler to the score.
-        * Animometer/index.html: Ditto.
-
-2016-03-18  Dean Jackson  <dino@apple.com>
-
-        Add a basic WebGL test to Animometer
-        https://bugs.webkit.org/show_bug.cgi?id=155475
-        <rdar://problem/25156860>
-
-        Reviewed by Simon Fraser and Jon Lee.
-
-        Add a pretty simple WebGL test to Animometer
-        which tries to draw a number of animated triangles.
-        The result still needs a bit of tuning.
-
-        * Animometer/resources/debug-runner/tests.js: Add a new
-        Suite for "3D" tests.
-        * Animometer/tests/3d/resources/webgl.js: Added.
-        * Animometer/tests/3d/webgl.html: Added.
-
-2016-03-18  Jon Lee  <jonlee@apple.com>
-
-        Add support for statically linking to a specific test
-        https://bugs.webkit.org/show_bug.cgi?id=155631
-
-        Rubber-stamped by Darin Adler.
-
-        * Animometer/developer.html: Update to call restartBenchmark instead so that it works for
-        both the preset and the manually set test sessions.
-        * Animometer/resources/debug-runner/animometer.css:
-        (.tree .link): Style the "link" UI.
-        * Animometer/resources/debug-runner/animometer.js: Move updateDisplay from suitesManager
-        to optionsManager since this is a visual option and has nothing to do with the suites
-        settings. Update the construction of the test UI by including a "link" after each test.
-        Clicking on that link brings up a JS prompt with a URL and a query string with the current
-        parameters of the controller, and selected test. Pasting this URL into the location bar will
-        automatically start running the selected test.
-        (suitesManager.suitesFromQueryString): Iterate through the Suites and tests and find the one
-        that matches the provided parameters. Returns an object similar to the form in
-        suitesManager.updateLocalStorageFromUI.
-        (benchmarkController.initialize): After settings up the events and options, try parsing the
-        query string and running the benchmark immediately. Otherwise, fall back to the form.
-        (benchmarkController.startBenchmark): Store the options and suites into member variables for
-        reuse in restartBenchmark.
-        (benchmarkController.startBenchmarkImmediatelyIfEncoded): Convert the query string to an object.
-        If that's successful, find the suite and test referenced in the query string. Start the benchmark if
-        the search for the test succeeded.
-        * Animometer/resources/extensions.js:
-        (Utilities.stripNonASCIICharacters): Helper method to convert the name of the suite and test
-        into a query-string-friendly version.
-        (Utilities.convertObjectToQueryString): Helper method to convert an object to query string
-        format.
-        (Utilities.convertQueryStringToObject): Helper method to convert query string into an object
-        with properties and values.
-
-2016-03-16  Jon Lee  <jonlee@apple.com>
-
-        Add a new benchmark test
-        https://bugs.webkit.org/show_bug.cgi?id=155570
-
-        Reviewed by Simon Fraser.
-
-        New Leaves test includes various image sizes and opacity.
-
-        * Animometer/resources/debug-runner/tests.js: Add it to the HTML test suite.
-        * Animometer/tests/dom/leaves.html: Added.
-        * Animometer/tests/dom/resources/leaves.js: Added. Override the
-        (Particle.call.reset): Uses a range of sizes, and opacity.
-        (Particle.call.animate): Opacity goes up then down. When it hits 0, reset the particle.
-        (Particle.call.move): Set transform and opacity.
-        * Animometer/tests/master/resources/leaves.js: Get rid of the closure so that it
-        can be used in this test. Update the relative path so that it works in both the master
-        and dom test suite.
-
-2016-03-15  Simon Fraser  <simon.fraser@apple.com>
-
-        Add developer Animometer test that bounces P3-tagged images
-        https://bugs.webkit.org/show_bug.cgi?id=155511
-
-        Reviewed by Tim Horton.
-        
-        Add a test for rendering performance of tagged images. The 5 images are tagged
-        with the Display P3 colorspace.
-
-        * Animometer/resources/debug-runner/tests.js:
-        * Animometer/tests/bouncing-particles/bouncing-tagged-images.html: Added.
-        * Animometer/tests/bouncing-particles/resources/bouncing-tagged-images.js: Added.
-        * Animometer/tests/bouncing-particles/resources/image1.jpg: Added.
-        * Animometer/tests/bouncing-particles/resources/image2.jpg: Added.
-        * Animometer/tests/bouncing-particles/resources/image3.jpg: Added.
-        * Animometer/tests/bouncing-particles/resources/image4.jpg: Added.
-        * Animometer/tests/bouncing-particles/resources/image5.jpg: Added.
-
-2016-03-09  Jon Lee  <jonlee@apple.com>
-
-        Enhance existing Animometer tests
-        https://bugs.webkit.org/show_bug.cgi?id=155261
-
-        Reviewed by Simon Fraser.
-
-        * Animometer/tests/master/resources/canvas-tests.js: Add a gradient to
-        the filled circles. To expose more of the gradient, add another circle.
-        (SimpleCanvasStage.call.animate): For each frame, create a gradient with
-        undulating stop points and colors. Fill the circles twice; once with
-        the solid color, and once with the gradient.
-
-        * Animometer/tests/master/resources/dom-particles.js: Refactor the
-        emission variables into a separate stage for this test. Add a colorOffset
-        variable to make the colors of each particle slightly different, since
-        the ramp controller can add large numbers of particles all at once, which
-        would otherwise get all the same color.
-        * Animometer/tests/master/resources/particles.js:
-        (initialize): Remove the code specific to the SVG mask test.
-
-        * Animometer/tests/master/resources/image-data.js:
-        (initialize): Remove unused local variable.
-        * Animometer/tests/master/resources/multiply.js:
-        (initialize): Make the test harder by adding more total particles.
-
-2016-03-09  Jon Lee  <jonlee@apple.com>
-
-        Add text tests
-        https://bugs.webkit.org/show_bug.cgi?id=155257
-
-        Reviewed by Simon Fraser.
-
-        * Animometer/resources/extensions.js:
-        (UnitBezier.Utilities.createClass): Add a class that computes Bezier points
-        assuming that two of the control points are at (0,0) and (1,1). Taken from
-        WebCore/platform/graphics/UnitBezier.h
-        * Animometer/resources/runner/tests.js: Add a test for English text and one
-        for international text.
-        * Animometer/tests/master/international.html: Added.
-        * Animometer/tests/master/resources/text.js: Added. The test assumes there is
-        #template div which it will copy. The copies are placed behind the template, and
-        are set with different colors each frame. They are moved around with CSS transform.
-        * Animometer/tests/master/text.html: Added.
-
-        Remove the other text tests, since these ones cover the same techniques.
-        * Animometer/tests/text/layering-text.html: Removed.
-        * Animometer/tests/text/resources/layering-text.js: Removed.
-        * Animometer/tests/text/resources/text-boxes.js: Removed.
-        * Animometer/tests/text/text-boxes.html: Removed.
-        * Animometer/resources/debug-runner/tests.js:
-
-2016-03-09  Jon Lee  <jonlee@apple.com>
-
-        Add a new image test
-        https://bugs.webkit.org/show_bug.cgi?id=155232
-
-        Reviewed by Dean Jackson.
-        Provisionally reviewed by Said Abou-Hallawa.
-
-        The image test renders PNGs and moves them with translate and rotate
-        transforms. Each particle has a lifetime, and when the lifetime ends or
-        the particle goes offscreen, it resets itself somewhere on the stage.
-
-        * Animometer/resources/debug-runner/tests.js: Remove the CSS bouncing PNG
-        images test, because this one tests the same technique.
-        * Animometer/resources/runner/tests.js: Added here as "Leaves".
-        * Animometer/tests/master/leaves.html: Added.
-        * Animometer/tests/master/resources/particles.js: Refactor out the parts
-        specific to the DOM particles test. Consequently make velocity a public
-        member.
-        (initialize): The options parameter is never used, so remove it.
-        (animate): Remove unused local variable.
-        * Animometer/tests/master/resources/leaves.js: Maintains a focal point that
-        moves back and forth across the canvas. That point affects the velocity
-        of the particles. When the focal point is on the leftmost side, it is
-        between [-6, -2], and set in reset(). When the focal point is on the rightmost
-        side, it will be from [2, 6].
-        * Animometer/tests/master/resources/dom-particles.js: Move JS specific to
-        this test here from particles.js.
-
-        New images.
-        * Animometer/tests/master/resources/compass100.png: Added.
-        * Animometer/tests/master/resources/console100.png: Added.
-        * Animometer/tests/master/resources/contribute100.png: Added.
-        * Animometer/tests/master/resources/debugger100.png: Added.
-        * Animometer/tests/master/resources/inspector100.png: Added.
-        * Animometer/tests/master/resources/layout100.png: Added.
-        * Animometer/tests/master/resources/performance100.png: Added.
-        * Animometer/tests/master/resources/script100.png: Added.
-        * Animometer/tests/master/resources/shortcuts100.png: Added.
-        * Animometer/tests/master/resources/standards100.png: Added.
-        * Animometer/tests/master/resources/storage100.png: Added.
-        * Animometer/tests/master/resources/styles100.png: Added.
-        * Animometer/tests/master/resources/timeline100.png: Added.
-
-2016-03-03  Jon Lee  <jonlee@apple.com>
-
-        Add ability to retrieve raw data from release harness
-        https://bugs.webkit.org/show_bug.cgi?id=155026
-
-        Reviewed by Simon Fraser.
-
-        * Animometer/developer.html: Remove the special UI in the debug
-        harness.
-        * Animometer/resources/runner/animometer.css: Add styles for the
-        overlay.
-        * Animometer/resources/runner/animometer.js: Let 'j' show the JSON
-        results, but only if the overlay doesn't exist. Add 'esc' key to dismiss
-        the overlay.
-        (window.benchmarkController.selectResults): Cycle the cases around
-        so that the first 's' press selects both the benchmark score and
-        the individual test scores.
-        * Animometer/resources/debug-runner/animometer.css: Remove
-        unneeded rules.
-        * Animometer/resources/debug-runner/animometer.js: Make the same
-        call to handleKeyPress.
-
-2016-03-03  Jon Lee  <jonlee@apple.com>
-
-        Make sure multiply test particles have at least some opacity
-        https://bugs.webkit.org/show_bug.cgi?id=155027
-
-        Reviewed by Simon Fraser.
-
-        * Animometer/tests/master/resources/multiply.js:
-        (initialize): Have the elements spin a little faster to make it
-        more obvious when the system is being stressed.
-        (_addTile):
-        (animate): Make sure each element being animated has at least 1%
-        opacity.
-
-2016-03-03  Jon Lee  <jonlee@apple.com>
-
-        Update image test
-        https://bugs.webkit.org/show_bug.cgi?id=154962
-
-        Rubber-stamped by Darin Adler.
-
-        * Animometer/tests/master/image-data.html: Make each canvas have a compositing layer.
-        * Animometer/tests/master/resources/image-data.js:
-        (initialize): Update to load multiple images serially.
-        (_loadImage):
-        (tune): Use display instead of visibility. When showing an element anew, move it somewhere else.
-        (_createTestElement): Set up the element, refactor out placement of element to _refreshElement.
-        (_refreshElement): Place element in a tile grid.
-        (animate):
-        (_getRandomNeighboringPixelIndex): Use a more conservative distribution to make the effect last a little longer.
-        * Animometer/tests/master/resources/compass.svg: Added.
-        * Animometer/tests/master/resources/console.svg: Added.
-        * Animometer/tests/master/resources/contribute.svg: Added.
-        * Animometer/tests/master/resources/debugger.svg: Added.
-        * Animometer/tests/master/resources/inspector.svg: Added.
-        * Animometer/tests/master/resources/layout.svg: Added.
-        * Animometer/tests/master/resources/performance.svg: Added.
-        * Animometer/tests/master/resources/script.svg: Added.
-        * Animometer/tests/master/resources/shortcuts.svg: Added.
-        * Animometer/tests/master/resources/standards.svg: Added.
-        * Animometer/tests/master/resources/storage.svg: Added.
-        * Animometer/tests/master/resources/styles.svg: Added.
-        * Animometer/tests/master/resources/timeline.svg: Added.
-
-2016-03-02  Jon Lee  <jonlee@apple.com>
-
-        Add some new controllers, and refine tests
-        https://bugs.webkit.org/show_bug.cgi?id=154914
-
-        Reviewed by Simon Fraser.
-
-        Improve tests.
-
-        * Animometer/tests/master/focus.html: Move each particle into a layer. Put the particle
-        in a container element. Expand the container element by the max blur radius, and clip
-        overflow. This way, when the blur is applied, it avoids causing layer resizes.
-        * Animometer/tests/master/resources/focus.js:
-        (FocusElement.Utilities.createClass): Create a container element, and put the particle
-        inside.
-        (hide): Set display:none.
-        (show): Set display:block.
-        (animate): Apply filters to the container element.
-        (FocusStage.call.initialize): Instead of inserting and removing elements from the DOM,
-        keep them in the stage, but set the display style instead. Use this._offsetIndex to
-        keep track of which elements are displayed.
-        (FocusStage.call.animate): Move some calculations around to avoid doing unneeded math.
-        (FocusStage.call.getBlurValue): Make sure elements are always blurred.
-        (FocusStage.call.getOpacityValue): Make sure elements have some opacity.
-        * Animometer/tests/master/resources/multiply.js: Have the particles on the edge of the
-        stage appear less black when the complexity gets large enough.
-        (tune): Have this._distanceFactor calculate the factor. Avoid calculating square root each
-        frame.
-
-2016-03-02  Jon Lee  <jonlee@apple.com>
-
-        Add some new controllers, and refine tests
-        https://bugs.webkit.org/show_bug.cgi?id=154914
-
-        Reviewed by Simon Fraser.
-
-        Add a controller that centers around 30 fps instead of 60 fps.
-
-        * Animometer/developer.html: Add a new option.
-        * Animometer/resources/debug-runner/animometer.js:
-        * Animometer/resources/runner/animometer.js:
-        (this._processData.findRegression): When calculating the complexity-frameLength regression,
-        check the controller, and use a 30 fps baseline if needed.
-        * Animometer/resources/statistics.js:
-        (Regression.Utilities.createClass): Update to allow clients to specify the baseline
-        frame length.
-        * Animometer/tests/resources/main.js:
-        (tune): Override some of the constants in RampController. Move those constants out for
-        easier reading.
-
-        Add a fixed controller, with no step.
-
-        * Animometer/developer.html: Add a controller that takes no step.
-        * Animometer/resources/debug-runner/animometer.js:
-        * Animometer/tests/resources/main.js:
-        (Rotater.Utilities.createClass):
-
-        Switch to ramp controller as default.
-
-        * Animometer/developer.html: Increase the test length to 20 seconds.
-        * Animometer/resources/debug-runner/animometer.js: Rename the "adjustment" field to "controller"
-        since that is a more accurate description.
-        * Animometer/resources/debug-runner/graph.js:
-        * Animometer/resources/runner/animometer.js: Update preferences for release suite.
-
-2016-02-26  Jon Lee  <jonlee@apple.com>
-
-        Address Dean's comments in 154673.
-
-        * Animometer/developer.html:
-        * Animometer/resources/debug-runner/animometer.js:
-        * Animometer/resources/debug-runner/graph.js:
-
-2016-02-25  Jon Lee  <jonlee@apple.com>
-
-        Update animation benchmark and tests
-        https://bugs.webkit.org/show_bug.cgi?id=154673
-
-        Reviewed by Dean Jackson.
-
-        Update test visuals.
-
-        * Animometer/tests/master/resources/canvas-tests.js:
-        (CanvasLineSegment.Utilities.createClass): Line segments near the edge of the stage get clipped.
-        Update circle position and radius to minimize impact.
-        * Animometer/tests/master/resources/particles.js: Get rid of rotating gradient background, and
-        have 3 locations for emitting particles.
-        * Animometer/tests/master/resources/multiply.js: Update distance metric so that fringe tiles get
-        more color.
-        (initialize): Fix some of the math for laying out the tiles.
-        (animate): When a tile isn't used, set visibility: hidden.
-
-2016-02-24  Jon Lee  <jonlee@apple.com>
-
-        Update animation benchmark and tests
-        https://bugs.webkit.org/show_bug.cgi?id=154673
-
-        Reviewed by Dean Jackson.
-
-        Update the ramp controller.
-
-        The controller refines the complexity interval to test across.
-
-        * Animometer/resources/statistics.js: Add functions that estimate cumulative distribution function.
-        (Regression): For the flat regression, force the first segment to be at 60 fps.
-        (valueAt): Add convenience function to return interpolated value based on the regression used.
-        (_calculateRegression): Include the number of points included for both segments, and the piecewise
-        errors.
-        * Animometer/tests/resources/math.js: Make the Kalman estimator subclass Experiment, and allow it
-        to be reset.
-
-        * Animometer/tests/resources/main.js: Initialize the tier such that it starts at 10^0 = 1.
-        Increase the number of ramps. Maintain three FPS thresholds-- the frame rate of interest, a limit
-        on the lowest FPS we care to go for later interpolation, and a minimum FPS threshold we want to
-        aim for each ramp. Also keep three estimators: a running average of the change point, a minimum
-        boundary for each ramp, and an estimator for all the frames within an interval. The first two
-        are used to determine the parameters of the next ramp, and the latter allows us to refine the
-        parameters.
-        (update): During the tier phase, it is possible that the highest complexity possible for a test
-        won't stress the system enough to trigger stopping the tier phase and transitioning to the ramps.
-        If the complexity doesn't change when going to the next tier, we've maxed the test out, and move
-        on. When the tier phase completed, turn off Controller.frameLengthEstimator, which estimates the
-        FPS at each tier.
-        (tune): At each interval, look at the confidence distribution of being on the 60 FPS side or the
-        slow side. If the slowest FPS we achieve at the ramp's maximum complexity is not at least
-        _fpsRampSlowThreshold, then increase the maximum complexity. If we ever achieve 60 FPS, increase
-        the ramp's minimum complexity to that level. If, at an even lower complexity, a glitch causes the
-        FPS to drop, we reset the minimum complexity.
-
-        Have the bootstrap calculation occur between tests. Clean up harness.
-
-        * Animometer/resources/debug-runner/animometer.js: Run bootstrap after a test has
-        completed to avoid doing all of it at the end before showing the results. Clean up
-        parameters being passed around.
-        * Animometer/resources/debug-runner/tests.js:
-        (text):
-        * Animometer/resources/runner/animometer.js:
-        (this._processData.calculateScore): Save the results to the same object holding the data.
-        (this._processData._processData): In the case where a file is dragged, calculate the score
-        serially. Grab the results object and move it to the results variable and remove it from
-        the data object. This avoids serializing the results into the JSON.
-        (this._processData.findRegression): Include the samples used for bootstrapping. Reduce the
-        resample size to shorten the wait.
-        * Animometer/resources/runner/benchmark-runner.js:
-        * Animometer/resources/statistics.js:
-        (bootstrap): Update how bootstrapData is sorted. In some regression results the mix of
-        floats and integers causes an alphabetical sort to occur.
-        * Animometer/resources/strings.js:
-
-        Add meta charset so that encodings between harness and test match.
-
-        * Animometer/tests/bouncing-particles/bouncing-canvas-images.html:
-        * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html:
-        * Animometer/tests/bouncing-particles/bouncing-css-images.html:
-        * Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
-        * Animometer/tests/bouncing-particles/bouncing-svg-images.html:
-        * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html:
-        * Animometer/tests/master/canvas-stage.html:
-        * Animometer/tests/master/focus.html:
-        * Animometer/tests/master/image-data.html:
-        * Animometer/tests/master/multiply.html:
-        * Animometer/tests/master/particles.html:
-        * Animometer/tests/misc/canvas-electrons.html:
-        * Animometer/tests/misc/canvas-stars.html:
-        * Animometer/tests/misc/compositing-transforms.html:
-        * Animometer/tests/simple/simple-canvas-paths.html:
-        * Animometer/tests/simple/tiled-canvas-image.html:
-        * Animometer/tests/template/template-canvas.html:
-        * Animometer/tests/template/template-css.html:
-        * Animometer/tests/template/template-svg.html:
-        * Animometer/tests/text/layering-text.html:
-        * Animometer/tests/text/text-boxes.html:
-
-        Update test harness reporting.
-
-        * Animometer/developer.html: Add missing meta charset.
-        * Animometer/index.html: Remove unnecessary utf-8 declaration.
-        * Animometer/resources/debug-runner/animometer.css: Add convenience classes for
-        formatting the results table.
-        * Animometer/resources/debug-runner/animometer.js: Adjust which stats are shown.
-        * Animometer/resources/debug-runner/tests.js: Display bootstrapping statistics.
-        * Animometer/resources/strings.js: Move strings not used by the release harness.
-
-        Switch to a pseudo-random number generator.
-
-        * Animometer/resources/statistics.js: Add a Pseudo class, with a simple
-        pseudo-random number generator.
-        (_calculateRegression): Reset the generator before running bootstrap.
-        (bootstrap): Deleted.
-
-        Replace Math.random with Pseudo.random.
-        * Animometer/tests/master/resources/canvas-tests.js:
-        * Animometer/tests/master/resources/focus.js:
-        * Animometer/tests/master/resources/particles.js:
-        * Animometer/tests/resources/main.js:
-
-        Use bootstrapping to get confidence interval in the breakpoint.
-
-        For the ramp controller, calculate the piecewise regression, and then use
-        bootstrapping in order to find the 95% confidence interval. Use the raw data.
-
-        * Animometer/developer.html: Default to the complexity graph. Add a legend
-        checkbox to toggle visibility of the bootstrap score and histogram.
-        * Animometer/resources/debug-runner/animometer.css: Make some more space to show
-        the old raw and average scores in the legend. Add new styles for the data.
-        * Animometer/resources/debug-runner/graph.js:
-        (_addRegressionLine): Allow passing an array for the variance bar tied to the
-        regression line. Now |stdev| is |range|.
-        (createComplexityGraph): Add bootstrap median, and overlay a histogram of
-        the bootstrap samples. Switch raw samples from circles to X's.
-        (onComplexityGraphOptionsChanged): Allow toggling of the bootstrap data.
-        (onGraphTypeChanged): Move the regressions for the raw and average samples to the
-        legend. In the subtitle use the bootstrap median, and include the 95% confidence
-        interval.
-        * Animometer/resources/runner/animometer.js:
-        (this._processData.findRegression): Factor out the code that determines which
-        samples to include when calculating the piecewise regression. For series that have
-        many samples, or a wider range of recorded complexities, throw away the 2.5%
-        lowest and highest samples before calculating the regression. Keep all samples
-        if the number of samples to regress is small or the range of complexities is
-        narrow.
-        (this._processData._calculateScore): Factor out regression calculation to
-        findRegression(). Bootstrap the change point of the regression. The score is the
-        median.
-        * Animometer/resources/statistics.js:
-        (_calculateRegression): Correct an issue in the calculation of the regression, where
-        the denominator can be 0.
-        (bootstrap): Template for bootstrapping. Create a bootstrap sample array, Create
-        re-samples by random selection with replacement. Return the 95% confidence samples,
-        the bootstrap median, mean, and the data itself.
-        * Animometer/resources/strings.js: Add bootstrap.
-        * Animometer/tests/resources/main.js:
-        (processSamples): Don't prematurely cut the sample data.
-
-        Fix graph drawing.
-
-        * Animometer/resources/debug-runner/animometer.js: Add spacing in the JSON output.
-        Multiple tests output a lot of JSON and can hang when selecting JSON with no whitespace.
-        * Animometer/resources/debug-runner/animometer.css:
-        (#complexity-graph .series.raw circle): Update the color.
-        * Animometer/resources/debug-runner/graph.js: Use the FPS axis instead of the
-        complexity axis, which can vary in domain. For determining the complexity domain,
-        only use samples after samplingTimeOffset.
-
-        Allow dropping results JSON.
-
-        * Animometer/developer.html: Add a button.
-        * Animometer/resources/debug-runner/animometer.css:
-        * Animometer/resources/debug-runner/animometer.js: Read the data and go straight
-        to the dashboard. With JSON output, write out only the options and the raw data.
-
-        Teach the harness to evaluate the samples and determine the test score.
-
-        This will allow us to update how the score is calculated separately from the samples recorded.
-        This also prepares the harness to be able to accept JSON of prior runs.
-
-        * Animometer/resources/strings.js: Clean up and remove unneeded strings and reduce some of the
-        hierarchy.
-        * Animometer/resources/debug-runner/tests.js: Update to use the new strings.
-
-        * Animometer/tests/resources/main.js: Allow all controllers to show a complexity-FPS graph.
-        (_processComplexitySamples): Factor out some of the sample processing done in the ramp
-        controller for the benefit of the other controllers. |complexitySamples| contains a list of
-        samples. Sort the samples by complexity. Optionally remove the top x% of samples.
-        Group them, and calculate distribution of samples within the same complexity, and add those as
-        new entries into |complexityAverageSamples|.
-        (Controller.processSamples): Move the code responsible for determining the complexity and FPS
-        scores out to ResultsDashboard. The structure of the data returned by the controller is:
-
-        {
-            controller: [time-regression, time-regression, ...], // optional, data specific to controller
-            marks: [...],
-            samples: {                    // all of the sample data
-                controller: [...],
-                complexity: [...],        // processed from controller samples
-                complexityAverage: [...], // processed from complexity samples
-            }
-        }
-
-        (AdaptiveController.processSamples): Adding the target frame length is no longer necessary; we
-        now pass the test options to the graph.
-        (Regression): Move to statistics.js.
-        * Animometer/resources/statistics.js: Move Regression to here. Add a check if the sampling range
-        only contains one sample, since we cannot calculate a regression from one sample point.
-
-        Teach the test harness to evaluate the data.
-        * Animometer/resources/runner/animometer.js:
-        (ResultsDashboard): Store the options used to run the test and the computed results/score separately
-        from the data. The results are stored as:
-
-        {
-            score: /* geomean of iteration score */,
-            iterationsResults: [
-                {
-                    score: /* geomean of tests */,
-                    testsResults: {
-                        suiteName: {
-                            testName: {
-                                controller: {
-                                    average:
-                                    concern:
-                                    stdev:
-                                    percent:
-                                },
-                                frameLength: { ... },
-                                complexity: {
-                                    complexity:
-                                    stdev:
-                                    segment1:
-                                    segment2:
-                                },
-                                complexityAverage: { ... }
-                            },
-                            testName: { ... },
-                        },
-                        ... next suite ...
-                    }
-                },
-                { ...next iteration... }
-            ]
-        }
-
-        * Animometer/resources/debug-runner/animometer.js: Pass options around instead of relying
-        on what was selected in the form. This will later allow for dropping previous results, and
-        using those runs' options when calculating scores.
-        (ResultsTable._addGraphButton): Simplify button action by using attached test data.
-        * Animometer/resources/debug-runner/graph.js: Refactor to use the data.
-
-        Consolidate JS files, and move statistics out to a separate JS.
-
-        Preparation for having the Controller only handle recording and storage of the samples,
-        and leave the evaluation of the test score out to the harness. Move Experiment to
-        a new statistics.js, where Regression will also eventually go. Get rid of algorithm.js
-        and move it to utilities.js since the Heap is used only for Experiments.
-
-        * Animometer/tests/resources/algorithm.js: Removed. Heap is in utilities.js.
-        * Animometer/tests/resources/sampler.js: Removed. Experiment is in statistics.js,
-        Sampler in main.js.
-        * Animometer/tests/resources/main.js: Move Sampler here.
-        * Animometer/resources/statistics.js: Added. Move Statistics and Experiment here.
-        * Animometer/resources/extensions.js: Move Heap here. Attach static method to create
-        a max or min heap to Heap, instead of a new Algorithm object.
-
-        Update JS files.
-        * Animometer/developer.html:
-        * Animometer/index.html:
-        * Animometer/tests/bouncing-particles/bouncing-canvas-images.html:
-        * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html:
-        * Animometer/tests/bouncing-particles/bouncing-css-images.html:
-        * Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
-        * Animometer/tests/bouncing-particles/bouncing-svg-images.html:
-        * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html:
-        * Animometer/tests/master/canvas-stage.html:
-        * Animometer/tests/master/focus.html:
-        * Animometer/tests/master/image-data.html:
-        * Animometer/tests/master/multiply.html:
-        * Animometer/tests/master/particles.html:
-        * Animometer/tests/misc/canvas-electrons.html:
-        * Animometer/tests/misc/canvas-stars.html:
-        * Animometer/tests/misc/compositing-transforms.html:
-        * Animometer/tests/simple/simple-canvas-paths.html:
-        * Animometer/tests/simple/tiled-canvas-image.html:
-        * Animometer/tests/template/template-canvas.html:
-        * Animometer/tests/template/template-css.html:
-        * Animometer/tests/template/template-svg.html:
-        * Animometer/tests/text/layering-text.html:
-        * Animometer/tests/text/text-boxes.html:
-
-        Fix the cursor in the graph analysis when the min
-        complexity is not 0.
-
-        * Animometer/resources/debug-runner/graph.js:
-        (_addRegression):
-        (createComplexityGraph):
-
-2016-02-23  Geoffrey Garen  <ggaren@apple.com>
-
-        Fix some issues in MallocBench
-        https://bugs.webkit.org/show_bug.cgi?id=154600
-
-        Reviewed by Oliver Hunt.
-
-        * MallocBench/MallocBench.xcodeproj/project.pbxproj: Make nimlang.ops
-        a part of the build so that it copies to the right place for execution.
-
-        * MallocBench/MallocBench/Interpreter.cpp:
-        (Interpreter::Interpreter): Don't try to open .ops files for writing
-        because we're only going to read and we might need extra permissions to
-        write.
-
-        (Interpreter::~Interpreter): Give more context when opening a file fails
-        to help with debugging.
-
-        * MallocBench/MallocBench/stress.cpp:
-        (benchmark_stress): Reduce iterations to complete in less than 10 seconds.
-
-2016-02-23  Michael Saboff  <msaboff@apple.com>
-
-        Unreviewed change to revert extraneous changes made part of change set 196955.
-
-        * MallocBench/MallocBench/Interpreter.cpp:
-        (Interpreter::doMallocOp):
-        (Interpreter::Thread::switchTo):
-        (writeData): Deleted.
-
-2016-02-19  Michael Saboff  <msaboff@apple.com>
-
-        MallocBench: Added recording for nimlang website, new recording details and added new options
-        https://bugs.webkit.org/show_bug.cgi?id=154485
-
-        Reviewed by Geoff Garen.
-
-        Added new capabilities to MallocBench.  These include:
-            Added a recording of http://nim-lang.org/docs/lib.html.
-            Added thread id to the recording and the ability to playback switching threads in MallocBench
-            Added aligned allocations to recordings and the ability to playback
-            Added --use-thread-id option to honor recorded thread ids
-            Added --detailed-report to output remaining allocations by size after playback
-            Added --no-warmup to not run the warm up iteration
-
-        Changed the way that options are passed down to the benchmarks.  Instead of passing individual
-        boolean or numeric option values, just pass a reference the CommandLine itself.  Each benchmark
-        can access the options that are appropriate.  The Benchmark class also uses the options for
-        is parallel, run counts and warm up.
-
-        Added thread id and aligned malloc to the Op by noticing that structure padding and Opcode allowed
-        for another 32 bits of data.  Breaking that unused 32 bits into a 16 bit thread id value and a
-        16 bit log base 2 of the alignment for aligned malloc allowed for existing recordings to playback
-        without any incompatibilities.
-
-        Threaded operation is simulated by creating threads as needed.  As long as the next Op's thread id
-        is the same as the last, operation continues as normal.  When the next Op has a different thread id,
-        we switch to that thread using the shared Op stream to continue playing back.  There is a mutex to
-        assure that only one thread is really running at a time and a condition variable used to wait
-        that the current thread id matches each block thread's thread id.  This doesn't simulate true
-        concurrent threading, but is instead plays back Ops recorded for multiple thread faithfully.
-
-        * MallocBench/MallocBench.xcodeproj/project.pbxproj:
-        * MallocBench/MallocBench/Benchmark.cpp:
-        (deallocateHeap):
-        (Benchmark::Benchmark):
-        (Benchmark::runOnce):
-        (Benchmark::run):
-        * MallocBench/MallocBench/Benchmark.h:
-        (Benchmark::isValid):
-        * MallocBench/MallocBench/CommandLine.cpp:
-        (CommandLine::printUsage):
-        * MallocBench/MallocBench/CommandLine.h:
-        (CommandLine::isValid):
-        (CommandLine::benchmarkName):
-        (CommandLine::isParallel):
-        (CommandLine::useThreadID):
-        (CommandLine::detailedReport):
-        (CommandLine::warmUp):
-        (CommandLine::heapSize):
-        (CommandLine::runs):
-        * MallocBench/MallocBench/Interpreter.cpp:
-        (Interpreter::Interpreter):
-        (Interpreter::run):
-        (Interpreter::readOps):
-        (Interpreter::doOnSameThread):
-        (Interpreter::switchToThread):
-        (Interpreter::detailedReport):
-        (compute2toPower):
-        (writeData):
-        (Interpreter::doMallocOp):
-        (Interpreter::Thread::Thread):
-        (Interpreter::Thread::stop):
-        (Interpreter::Thread::~Thread):
-        (Interpreter::Thread::runThread):
-        (Interpreter::Thread::waitToRun):
-        (Interpreter::Thread::switchTo):
-        * MallocBench/MallocBench/Interpreter.h:
-        (Interpreter::Thread::isMainThread):
-        * MallocBench/MallocBench/alloc_free.cpp: Added.
-        (benchmark_alloc_free):
-        * MallocBench/MallocBench/alloc_free.h: Added.
-        * MallocBench/MallocBench/balloon.cpp:
-        (benchmark_balloon):
-        * MallocBench/MallocBench/balloon.h:
-        * MallocBench/MallocBench/big.cpp:
-        (benchmark_big):
-        * MallocBench/MallocBench/big.h:
-        * MallocBench/MallocBench/churn.cpp:
-        (benchmark_churn):
-        * MallocBench/MallocBench/churn.h:
-        * MallocBench/MallocBench/facebook.cpp:
-        (benchmark_facebook):
-        * MallocBench/MallocBench/facebook.h:
-        * MallocBench/MallocBench/flickr.cpp:
-        (benchmark_flickr):
-        (benchmark_flickr_memory_warning):
-        * MallocBench/MallocBench/flickr.h:
-        * MallocBench/MallocBench/fragment.cpp:
-        (validate):
-        (benchmark_fragment):
-        (benchmark_fragment_iterate):
-        * MallocBench/MallocBench/fragment.h:
-        * MallocBench/MallocBench/list.cpp:
-        (benchmark_list_allocate):
-        (benchmark_list_traverse):
-        * MallocBench/MallocBench/list.h:
-        * MallocBench/MallocBench/main.cpp:
-        (main):
-        * MallocBench/MallocBench/medium.cpp:
-        (benchmark_medium):
-        * MallocBench/MallocBench/medium.h:
-        * MallocBench/MallocBench/memalign.cpp:
-        (test):
-        (benchmark_memalign):
-        * MallocBench/MallocBench/memalign.h:
-        * MallocBench/MallocBench/message.cpp:
-        (benchmark_message_one):
-        (benchmark_message_many):
-        * MallocBench/MallocBench/message.h:
-        * MallocBench/MallocBench/nimlang.cpp: Added.
-        (benchmark_nimlang):
-        * MallocBench/MallocBench/nimlang.h: Added.
-        * MallocBench/MallocBench/nimlang.ops: Added.
-        * MallocBench/MallocBench/realloc.cpp:
-        (benchmark_realloc):
-        * MallocBench/MallocBench/realloc.h:
-        * MallocBench/MallocBench/reddit.cpp:
-        (benchmark_reddit):
-        (benchmark_reddit_memory_warning):
-        * MallocBench/MallocBench/reddit.h:
-        * MallocBench/MallocBench/stress.cpp:
-        (deallocate):
-        (benchmark_stress):
-        * MallocBench/MallocBench/stress.h:
-        * MallocBench/MallocBench/stress_aligned.cpp:
-        (benchmark_stress_aligned):
-        * MallocBench/MallocBench/stress_aligned.h:
-        * MallocBench/MallocBench/theverge.cpp:
-        (benchmark_theverge):
-        (benchmark_theverge_memory_warning):
-        * MallocBench/MallocBench/theverge.h:
-        * MallocBench/MallocBench/tree.cpp:
-        (benchmark_tree_allocate):
-        (benchmark_tree_traverse):
-        (benchmark_tree_churn):
-        * MallocBench/MallocBench/tree.h:
-        * MallocBench/run-malloc-benchmarks:
-
-2016-02-11  Jon Lee  <jonlee@apple.com>
-
-        Fix a missing refactoring.
-
-        * Animometer/tests/master/resources/multiply.js:
-        (animate): Move to Utilities.lerp.
-        (_lerp): Deleted.
-
-2016-02-10  Jon Lee  <jonlee@apple.com>
-
-        Add new benchmark tests.
-        https://bugs.webkit.org/show_bug.cgi?id=154063
-
-        Provisionally reviewed by Said Abou-Hallawa.
-
-        Add tests for get/put image data, filters, opacity, and css transforms.
-
-        * Animometer/resources/runner/benchmark-runner.js:
-        (_runBenchmarkAndRecordResults): Update the body background color to match that of
-        the stage.
-        (this._runNextIteration): Clear the background color style for the results page.
-        * Animometer/resources/runner/tests.js:
-        * Animometer/tests/master/focus.html: Added.
-        * Animometer/tests/master/image-data.html: Added.
-        * Animometer/tests/master/multiply.html: Added.
-        * Animometer/tests/master/resources/focus.js: Added.
-        * Animometer/tests/master/resources/image-data.js: Added.
-        * Animometer/tests/master/resources/multiply.js: Added.
-        * Animometer/tests/master/resources/stage.css: Move common styles out.
-        * Animometer/tests/resources/main.js: Update Stage.randomBool to use Math.random.
-        Add Stage.randomSign for randomly setting a direction. Add the notion of the
-        current timestamp of the test to Benchmark, since some animations cycle through
-        colors and rely on an incremental counter like the time.
-
-2016-02-09  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Add internal benchmark tests for CSS mix-blend-modes and filters
-        https://bugs.webkit.org/show_bug.cgi?id=154058
-
-        Provisionally reviewed by Jon Lee.
-
-        * Animometer/resources/debug-runner/tests.js: Include the new tests in the
-        "HTML suite" of the debug runner.
-
-        * Animometer/resources/extensions.js:
-        (Utilities.browserPrefix):
-        (Utilities.setElementPrefixedProperty): Utility functions to allow setting
-        prefixed style properties.
-
-        * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
-        Set the mix-blend-mode and the filter to some random values if the options
-        of the test requested that.
-
-        * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
-        (parseShapeParameters): Parse the url options "blend" and "filter" and set
-        the corresponding flags.
-
-        * Animometer/tests/resources/main.js:
-        (randomStyleMixBlendMode):
-        (randomStyleFilter): Return random mix-blend-mode and filter.
-
-2016-02-08  Jon Lee  <jonlee@apple.com>
-
-        Add a ramp controller
-        https://bugs.webkit.org/show_bug.cgi?id=154028
-
-        Provisionally reviewed by Said Abou-Hallawa.
-
-        Enhance the graph to include a complexity-fps graph, in addition
-        to the time graph.
-
-        * Animometer/developer.html: Add a ramp option.
-        * Animometer/resources/debug-runner/animometer.css: Update the style.
-        * Animometer/resources/strings.js: Flatten the Strings.text constants.
-        * Animometer/resources/debug-runner/animometer.js:
-        (ResultsTable.call._addGraphButton): Refactor.
-        (ResultsTable.call._addTest): Add regression data.
-        (benchmarkController): Add a form that allows the user to switch between the two forms,
-        Add a form that allows the user to toggle different data. Hide certain header columns
-        depending on the selected controller.
-        * Animometer/resources/debug-runner/graph.js: Add the complexity regressions.
-        * Animometer/resources/debug-runner/tests.js: Add headers for the ramp results.
-        * Animometer/resources/runner/animometer.js:
-        (ResultsTable): If a header is disabled don't include them in _flattenedHeaders.
-        * Animometer/tests/resources/main.js:
-        (Controller): Allow options to specify the capacity for sample arrays.
-        (Regression): A piecewise regression that tries to fit a slope and a flat profile.
-        (_calculateRegression): Options can fix the slope and bias when calculating the minimal
-        error. Sweep across the samples in time (which could be backward depending on the controller)
-        and calculate the intersection point.
-        (RampController): This controller assumes that the target frame rate is below
-        58 FPS. It runs in two stages. The first stage quickly determines the order of
-        magnitude of objects needed to stress the system by the setting the complexity
-        to increasingly difficult tiers. Perform a series of ramps descending from a
-        high-water mark of complexity. The complexity needed to reach the target frame
-        length is done by performing a piecewise regression on each ramp, and track a
-        running average of these values. For the next ramp, make that running average
-        the center of the ramp. With a minimum complexity of 0, the high-water mark is
-        twice that average. The score is based on the highest complexity that can
-        reach 60 fps.
-
-2016-02-08  Jon Lee  <jonlee@apple.com>
-
-        Address Said's comments on the benchmark, and do some clean up.
-
-        * Animometer/developer.html:
-        * Animometer/resources/debug-runner/animometer.css: Add styles for averages.
-        * Animometer/resources/debug-runner/animometer.js: Use the right
-        Strings constants.
-        * Animometer/resources/debug-runner/graph.js:
-        (_addRegressionLine): Add missing code to draw the line and standard
-        deviation highlight.
-        (onGraphTypeChanged): Remove unneeded variables
-        (onTimeGraphOptionsChanged):
-        * Animometer/resources/runner/benchmark-runner.js:
-        (_runBenchmarkAndRecordResults): Rename samplers to suiteResults and
-        _suitesSamplers to _suitesResults.
-        * Animometer/tests/resources/main.js:
-        (results): Call processSamples().
-        (update): Change sampling timestamp comparison.
-        (_animateLoop): Move shouldStop call to before the update.
-        * Animometer/tests/resources/sampler.js:
-        (process): Rename to processSamples().
-
-2016-02-07  Jon Lee  <jonlee@apple.com>
-
-        Teach Controller to measure intervals, and turn off the frame length estimator.
-
-        * Animometer/tests/resources/main.js: Default interval length is 100 ms.
-        (start): Set the first interval.
-        (_measureAndResetInterval): Reports the average frame length of the interval that just
-        completed, and sets up the next interval.
-        (update): If there is no length, then just use the estimator per frame, otherwise the
-        estimator measures per interval. Add a didFinishInterval for subclasses to process
-        prior to recording the sample. Update tune() to include whether an interval had
-        finished.
-        (StepController): Step controllers don't measure on an interval basis.
-
-2016-02-07  Jon Lee  <jonlee@apple.com>
-
-        Minor refactoring. Rename Controller._estimator to Controller._frameLengthEstimator
-        and switch the parameters for start(), update(), and tune(), so that the timestamp
-        is first and stage is second.
-
-        * Animometer/tests/resources/main.js:
-
-2016-02-07  Jon Lee  <jonlee@apple.com>
-
-        Move ResultsTable functionality not needed for release tests out.
-        Move reporting of score and mean to selection of the time-based graph.
-
-        * Animometer/developer.html: Rename graph-options to time-graph-options.
-        * Animometer/resources/debug-runner/animometer.js:
-        (DeveloperResultsTable): Moved from runner/animometer.js. Switch from mean
-        values to "average" objects which can hold stdev. Move graph button and
-        calculation of noisy measurements here. Sophisticated header processing
-        is not needed in release suite.
-        (populateTable): Use DeveloperResultsTable.
-        * Animometer/resources/debug-runner/graph.js: Pull time graph creation to
-        its own function, and add a new onGraphTypeChanged handler in preparation
-        of a complexity graph to be added later.
-        * Animometer/resources/runner/animometer.js:
-        (ResultsTable): Simplify to just handle test names and scores.
-
-2016-02-07  Jon Lee  <jonlee@apple.com>
-
-        Tests: reuse objects already made.
-
-        Avoid thrash of object creation and removal by maintaining an index that
-        moves along the array as the adjust values change. If the tune value
-        requires more objects than the maximum size of the object array, then create
-        new objects. This means that the object array size never decreases.
-
-        * Animometer/tests/master/resources/canvas-stage.js: Maintain a separate
-        offsetIndex. For these tests, we want to avoid drawing the oldest objects,
-        so the scene will draw the object at offsetIndex to the end of the array.
-        (tune): Reverse the logic since "removal" of objects is much simpler and
-        involves simply changing the offsetIndex.
-        (animate): Update the for loop to draw from offsetIndex to the end.
-        (complexity): Update the definition.
-        * Animometer/tests/master/resources/canvas-tests.js: Maintain a separate
-        offsetIndex. For these tests, we want to avoid drawing the newest objects,
-        so the scene will draw the object at index 0 to the object at offsetIndex.
-        (SimpleCanvasStage.animate): Fly-by removal of local stage variable,
-        which is unneeded. Update the for loop to draw from offsetIndex to the end.
-        * Animometer/tests/simple/resources/simple-canvas-paths.js:
-        (SimpleCanvasStage.animate): Update the for loop to draw from 0 to
-        offsetIndex.
-        * Animometer/tests/simple/resources/simple-canvas.js:
-        (tune): Update logic. Here, offsetIndex represents the boundary of the last
-        index to render.
-        (animate): Update the for loop to draw from 0 to offsetIndex.
-        (complexity): Update the definition.
-
-2016-02-07  Jon Lee  <jonlee@apple.com>
-
-        Tests: refactor and update styles.
-
-        * Animometer/tests/resources/main.js: Add helper methods that return
-        a color that hue rotates based on the date, and a counter value that
-        increases based on the date. Fix randomInt() to not bias against the min and
-        max values.
-
-        * Animometer/tests/master/resources/canvas-tests.js: Use new helper methods.
-        * Animometer/tests/master/resources/dom-particles.js: Ditto.
-        * Animometer/tests/master/resources/particles.js: Ditto.
-        * Animometer/tests/simple/resources/simple-canvas-paths.js: Refactor to
-        use a rotating color instead of a random color. The fast switching of color
-        is too vivid to watch.
-
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
-        (BouncingSvgParticlesStage.call.createGradient): Fix the gradient so
-        that the last stop is located at the end.
-
-2016-02-07  Jon Lee  <jonlee@apple.com>
-
-        Refactor tune() to not return the complexity of the scene.
-
-        We have stage.complexity() now, so returning the complexity through tune
-        is unnecessary.
-
-        * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
-        * Animometer/tests/master/resources/canvas-stage.js:
-        * Animometer/tests/master/resources/particles.js:
-        * Animometer/tests/misc/resources/canvas-electrons.js:
-        * Animometer/tests/misc/resources/canvas-stars.js:
-        * Animometer/tests/resources/main.js:
-        * Animometer/tests/simple/resources/simple-canvas.js:
-        * Animometer/tests/simple/resources/tiled-canvas-image.js:
-        * Animometer/tests/template/resources/template-canvas.js:
-        * Animometer/tests/template/resources/template-css.js:
-        * Animometer/tests/template/resources/template-svg.js:
-        * Animometer/tests/text/resources/layering-text.js:
-
-2016-02-07  Jon Lee  <jonlee@apple.com>
-
-        Make the fixed controller a step controller instead. Halfway through the test
-        it will bump up the complexity 4-fold. Calculate the step timestamp using options
-        instead of a separate parameter to the Controller constructor.
-
-        * Animometer/developer.html: Change value to "step"
-        * Animometer/resources/debug-runner/animometer.js:
-        (window.suitesManager.updateEditsElementsState): Show number inputs when set to "step".
-        * Animometer/tests/resources/main.js:
-        (update): Provide a hook for subclasses to tune.
-        (StepController): Maintain a flag determining whether we've stepped, and the time
-        we should step.
-        (Benchmark): Use the new StepController.
-
-2016-02-07  Jon Lee  <jonlee@apple.com>
-
-        Adjust the FPS graph scale.
-
-        Instead of making the FPS graph linearly scale, scale it based on the frame length,
-        but show the data in terms of FPS. Because it is inversely proportional, and most
-        of the data never gets below 20, concentrate the axis from 20-60 FPS, since otherwise
-        over half of the available graph space ends up blank.
-
-        This means we should convert all of the FPS data to frame length data.
-
-        * Animometer/resources/debug-runner/graph.js: Update the domain to be based on
-        frame length in milliseconds instead of FPS. Update the cursor to consider all of the
-        values being shown, and then pick the min and max values to represent the length of the
-        cursor.
-        * Animometer/resources/runner/animometer.js:
-        * Animometer/resources/strings.js:
-        * Animometer/tests/resources/main.js:
-        (processSamples): Add the ability to only sample a range of the data instead of everything
-        after an offset index. Update sampler to record the frame lengths instead of the frame
-        rate.
-
-2016-02-07  Jon Lee  <jonlee@apple.com>
-
-        Add option to use different methods for retrieving a timestamp.
-
-        * Animometer/developer.html: Add performance.now and Date.now options.
-        * Animometer/resources/runner/animometer.js: Default to performance.now.
-        (window.benchmarkController.startBenchmark):
-        * Animometer/tests/resources/main.js: Tie the desired method to _getTimestamp.
-        (run): Use _getTimestamp.
-        (_animateLoop): Ditto.
-
-2016-02-07  Jon Lee  <jonlee@apple.com>
-
-        Allow adding any number of markers to the graph. The markers can be labeled
-        and contain timestamp and sample index data. Make it a part of the controller
-        rather than keeping it in the sampler.
-
-        * Animometer/resources/debug-runner/animometer.css: Add styles for markers
-        * Animometer/resources/debug-runner/graph.js: Create the markers and add
-        text labels.
-        * Animometer/resources/runner/animometer.js: Assume the samplingTimeOffset
-        is just one of the marks provided.
-        * Animometer/resources/strings.js: Add Strings.json.marks.
-        * Animometer/tests/resources/main.js:
-        (Controller): Keep marks here. They are keyed by the marker name, so no two
-        markers should have the same name.
-        (recordFirstSample): Refactor to use mark.
-        (mark): Allows for arbitrary data if needed later. The timestamp maintained
-        is relative to the absolute start timestamp.
-        (containsMark): Checks whether a mark with a specific comment exists.
-        (processSamples): Removes the _startTimestamp offset from the marks before
-        setting it in results.
-        * Animometer/tests/resources/sampler.js: Remove marks.
-
-2016-02-07  Jon Lee  <jonlee@apple.com>
-
-        Get rid of options member variable in Benchmark.
-
-        Options are only needed when initializing the stage or benchmark, so there's no
-        need to also keep a reference to it.
-
-        * Animometer/tests/resources/main.js: Get rid of options variable in Benchmark.
-        Pass options to Controllers and Stages.
-        (Controller.Utilities.createClass):
-        (Benchmark.Utilities.createClass):
-        (get options): Deleted.
-
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
-        * Animometer/tests/master/resources/canvas-stage.js:
-        * Animometer/tests/master/resources/canvas-tests.js:
-        * Animometer/tests/master/resources/particles.js:
-        * Animometer/tests/misc/resources/canvas-electrons.js:
-        * Animometer/tests/misc/resources/canvas-stars.js:
-        * Animometer/tests/misc/resources/compositing-transforms.js:
-        * Animometer/tests/simple/resources/simple-canvas-paths.js:
-        * Animometer/tests/simple/resources/tiled-canvas-image.js:
-        * Animometer/tests/template/resources/template-canvas.js:
-        * Animometer/tests/template/resources/template-css.js:
-        * Animometer/tests/template/resources/template-svg.js:
-        * Animometer/tests/text/resources/layering-text.js:
-
-2016-02-07  Jon Lee  <jonlee@apple.com>
-
-        Update how the benchmark is run
-        https://bugs.webkit.org/show_bug.cgi?id=153960
-
-        Provisionally reviewed by Said Abou-Hallawa.
-
-        Introduce the notion of a Controller. It is responsible for recording, updating,
-        and processing the statistics and complexity of the benchmark. This allows
-        plugging in different Controllers.
-
-        This strips most of the functionality from Animator and BenchmarkState, so fold
-        what's left into Benchmark. Now, Benchmarks only own a stage and a controller, but
-        are responsible for driving the animation loop.
-
-        Rewrite Animator._shouldRequestAnotherFrame into two different Controllers. One
-        maintains a fixed complexity, and the other adapts the complexity to meet a
-        fixed FPS.
-
-        Fix the Kalman estimator to be modeled on a scalar variable with no model.
-
-        * Animometer/tests/resources/main.js: Remove BenchmarkState and Animator, and
-        replace it with a Controller. Add a FixedController and refactor the previous controller
-        to an AdaptiveController.
-
-        (Controller): Controllers own the estimator and the sampler. When a new frame is
-        displayed, the animation loop calls update(). The estimator and sampler record
-        stats, then tune. Samplers can track multiple series of data. The basic controller
-        tracks timestamp, complexity, and estimated frame rate.
-                The Kalman estimation is based on the frame length rather than the frame
-        rate. Because FPS is inverse proportional to frame length, in the case where the measured
-        frame length is very small, the FPS ends up being a wildly large number (in the order of
-        600-1000 "FPS"), and it pulls the estimator up drastically enough that it takes a while
-        for it to settle back down. Using frame length reduces the impact of these spikes.
-                Converging the estimation takes enough time to avoid initializing it immediately
-        when the benchmark starts. Instead, the benchmark runs for a brief period of time (100ms)
-        before running it in earnest. Allow controllers an opportunity to set the complexity
-        before starting recording.
-                When the benchmark is complete, the controller has an opportunity to process
-        the samples. The default implementation calculates the raw FPS based on the time
-        difference of the samples, and calculates the complexity score. This is moved from
-        Benchmark.processSamples.
-
-        (Controller): Initialize timestamps. These are at first relative to the start of the
-        benchmark, but are offset by the absolute start time during start(). By default maintain
-        3 data series, but subclasses can override.
-        (start): Calls recordFirstSample() for subclasses to override if needed.
-        (recordFirstSample): For basic controller, start sampling at the beginning.
-        (update): Update the frame length estimator and sample.
-        (shouldStop): Checks that the time is before _endTimestamp.
-        (results): Returns the processed samples.
-        (processSamples): Iterate through the sample data and collate them. Include scores.
-
-        (FixedComplexityController): Controller that tunes the stage to the desired complexity
-        prior to starting, and keeps it at that complexity.
-
-        (AdaptiveController): Have the estimator estimate the interval frame rate instead of the
-        raw frame rate.
-                The previous version of this controller ignored the frame that came after the
-        adjustment. The raw FPS show that whatever noise the scene change adds is negligible
-        compared to the noise of the system overall. Stop ignoring that frame and include all
-        frames in the measurements.
-
-        (Benchmark): Remove dependency on animator, and instantiate a runner based on what is
-        selected. Most of the loop's functionality is in Controller, so remove here.
-        (Benchmark.run): Remove start() since it is only called from run(), and fold it in here.
-        (Benchmark._animateLoop): Fold in from Animator.animateLoop. Let the benchmark run for
-        a brief period before calling Controller.start().
-
-        * Animometer/tests/resources/math.js: Fix the Kalman estimator. The filter estimates
-        a scalar variable, and makes basic assumptions regarding the model. As a result
-        none of the linear algebra classes are needed, so remove Matrix, Vector3, and Matrix3.
-        (SimpleKalmanEstimator): Calculate the gain based on the provided process and
-        measurement errors.
-        (KalmanEstimator): Deleted.
-        (IdentityEstimator): Deleted.
-        (PIDController): Refactor to use the Utilities.createClass() helper.
-
-        The Kalman filter algorithm is explained here http://greg.czerniak.info/guides/kalman1/.
-        The state, represented by a scalar, is the estimated frame length. There is no user
-        transition of the state, and the state is the same as the measurement. With this model,
-        the estimation error converges, so calculate the gain ahead of time.
-
-        * Animometer/developer.html: Remove fixed-after-warmup since it is not useful.
-        Replace the option to toggle the estimator, and make it possible to customize the
-        estimator's error parameters. Show raw FPS by default, and remove interval FPS,
-        which will be shown instead of the filtered raw FPS.
-        * Animometer/resources/debug-runner/animometer.css: Put the header behind the graph.
-        Remove #intervalFPS rules; move the color to #filteredFPS.
-        * Animometer/resources/debug-runner/graph.js:
-        (updateGraphData): Update the hr style to force the layout to be calculated
-        correctly. Change the tick format to be in terms of seconds, since the timestamps
-        are in milliseconds. Remove interval data.
-        * Animometer/resources/runner/animometer.js:
-        (window.benchmarkController.startBenchmark): Set Kalman parameters.
-        * Animometer/resources/runner/benchmark-runner.js:
-        (_runBenchmarkAndRecordResults): When a benchmark completes, expect it to return
-        the final data, rather than passing a sampler from the controller. This avoids
-        needing to expose the sampler variable in the benchmark.
-        * Animometer/tests/resources/sampler.js:
-        (process): Move the setting of the target frame rate to AdaptiveController.
-
-2016-02-06  Jon Lee  <jonlee@apple.com>
-
-        Code clean up: Move Rotater function closer to Stage static methods.
-        The Rotater is used together with those methods; keep them close.
-
-        * Animometer/tests/resources/main.js:
-
-2016-02-06  Jon Lee  <jonlee@apple.com>
-
-        Update the JS includes due to ResultsTable move.
-
-        * Animometer/developer.html:
-        * Animometer/index.html:
-
-2016-02-06  Jon Lee  <jonlee@apple.com>
-
-        Move createElement and createSVGElement to Utilities.
-
-        * Animometer/resources/extensions.js:
-        (Utilities.createElement): Added.
-        (Utilities.createSVGElement): Added.
-        (DocumentExtension.createElement): Deleted.
-        (DocumentExtension.createSvgElement): Deleted.
-
-        * Animometer/resources/debug-runner/animometer.js:
-        * Animometer/resources/runner/animometer.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
-
-2016-02-06  Jon Lee  <jonlee@apple.com>
-
-        Add a convenience function for creating a class.
-
-        The pattern for creating a class is common enough to add as a Utilities
-        helper function. It also makes it easy to collapse class definitions when
-        editing.
-
-        * Animometer/resources/debug-runner/animometer.js: Move ProgressBar definition,
-        since it is only used here.
-        * Animometer/resources/runner/animometer.js: Move ResultsDashboard and
-        ResultsTable definition, since it is only used here.
-        * Animometer/resources/extensions.js: Move Utilities definition to the top. Convert
-        Point, Insets, SimplePromise.
-        (ProgressBar): Moved to animometer.js.
-        (ResultsDashboard): Moved to animometer.js.
-        (ResultsTable): Moved to animometer.js.
-        * Animometer/resources/runner/benchmark-runner.js: Convert BenchmarkRunnerState,
-        BenchmarkRunner.
-        * Animometer/tests/resources/main.js: Convert Rotater, Stage, Animator, Benchmark.
-        * Animometer/tests/resources/sampler.js: Convert Experiment, Sampler.
-
-        Convert test primitives.
-        * Animometer/tests/master/resources/canvas-tests.js: Convert CanvasLineSegment,
-        CanvasArc, CanvasLinePoint.
-        * Animometer/tests/simple/resources/simple-canvas-paths.js: Convert CanvasLineSegment,
-        CanvasLinePoint, CanvasQuadraticSegment, CanvasQuadraticPoint, CanvasBezierSegment,
-        CanvasBezierPoint, CanvasArcToSegment, CanvasArcToSegmentFill, CanvasArcSegment,
-        CanvasArcSegmentFill, CanvasRect, CanvasRectFill.
-        * Animometer/tests/simple/resources/tiled-canvas-image.js: Convert CanvasImageTile.
-
-2016-02-06  Jon Lee  <jonlee@apple.com>
-
-        Minor improvements to debug harness.
-
-        * Animometer/developer.html:
-        * Animometer/resources/debug-runner/animometer.css:
-        (#suites): Put the complexity text boxes closer to the test names.
-        (#options):
-        (#rawFPS circle): Make the interval FPS appear as a separate data series, with a line.
-        (#intervalFPS path):
-        (#intervalFPS circle):
-        * Animometer/resources/debug-runner/animometer.js:
-        (window.optionsManager.updateLocalStorageFromUI): Convert number inputs from text.
-        (window.suitesManager._onChangeTestCheckbox): Refactor to take a checkbox.
-        (window.suitesManager._createTestElement): Enhance such that typing into the complexity
-        input will automatically select that test for running.
-        (window.suitesManager.updateLocalStorageFromJSON): Make the harness work for private
-        browsing.
-        * Animometer/resources/debug-runner/graph.js: Separate the intervalFPS data, and show
-        more accuracy in timestamps.
-
-2016-02-06  Jon Lee  <jonlee@apple.com>
-
-        Refactor helper methods for getting random values for a stage.
-
-        Instead of requiring a Stage instance, just attach it to the Stage object.
-
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
-        * Animometer/tests/master/resources/canvas-tests.js:
-        * Animometer/tests/master/resources/particles.js:
-        * Animometer/tests/misc/resources/canvas-electrons.js:
-        * Animometer/tests/misc/resources/canvas-stars.js:
-        * Animometer/tests/misc/resources/compositing-transforms.js:
-        * Animometer/tests/resources/main.js:
-        * Animometer/tests/simple/resources/simple-canvas-paths.js:
-
-2016-02-05  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Add a new graphics test for CanvasRenderingContext2D functions: getImageData and putImageData
-        https://bugs.webkit.org/show_bug.cgi?id=151716
-
-        Reviewed by Darin Adler.
-
-        The purpose of this test is to measure the performance of getImageData
-        and putImageData functions. This test draws a background on the canvas
-        and then gets some random tiles from this background and draw them in
-        destinations different from their original sources.
-
-        * Animometer/resources/debug-runner/tests.js: Adding the new test to the canvas simple tests suite.
-
-        * Animometer/resources/extensions.js:
-        (Array.prototype.shuffle): Shuffles the elements of an array.
-
-        (Point.zero): Returns a new Point object whose x and y are equal zero.
-        (Point.prototype.str): Used for debugging the Point object.
-
-        * Animometer/tests/simple/resources/tiled-canvas-image.js: Added.
-        (CanvasImageTile):
-        (CanvasImageTile.prototype.getImageData):
-        (CanvasImageTile.prototype.putImageData):
-        (Stage.call.initialize):
-        (Stage.call._createTiles):
-        (Stage.call._nextTilePosition):
-        (Stage.call.tune):
-        (Stage.call._drawBackground):
-        (Stage.call.animate):
-        (Stage.call.complexity):
-        (Stage.call):
-        * Animometer/tests/simple/tiled-canvas-image.html: Added.
-
-2016-01-07  Jon Lee  <jonlee@apple.com>
-
-        Fix new test.
-
-        * Animometer/resources/runner/tests.js: Wrong URL from an
-        old patch.
-        * Animometer/tests/master/particles.html:
-        * Animometer/tests/master/resources/dom-particles.js:
-        (Particle.call.reset): Figured out a simpler way to set up
-        the particles.
-        (this.move.reset): Deleted.
-        (this.move._applyAttributes): Deleted.
-        * Animometer/tests/master/resources/particles.js:
-        (Particle): Call move() after reset().
-
-2016-01-07  Jon Lee  <jonlee@apple.com>
-
-        Update benchmark test suite
-        https://bugs.webkit.org/show_bug.cgi?id=152679
-
-        Reviewed by Simon Fraser.
-
-        Add a new test. The test has a rotating background
-        gradient, and does a better job physically simulating
-        particles.
-
-        * Animometer/resources/extensions.js: Teach Point to take constants as well as other Points.
-        (Point.prototype.length): Added.
-        (Point.prototype.normalize): Added.
-        * Animometer/resources/runner/tests.js: Add the test to the master suite.
-        * Animometer/tests/master/particles.html: Added.
-        * Animometer/tests/master/resources/particles.js: Added. Parent class for different kinds of particles.
-        (Particle):
-        (Particle.prototype.reset): If the particle starts slowing down in terms of its animation,
-        reset it.
-        (Particle.prototype.animate): Bounce off the walls elastically, and include gravity.
-        (Particle.prototype.move): Subclasses should override.
-        (ParticlesStage): Stage includes a rotating gradient background.
-        * Animometer/tests/master/resources/dom-particles.js: Added. Creates a <div> and adds it to
-        the stage.
-        * Animometer/tests/resources/star.svg: Added.
-
-2016-01-03  Jon Lee  <jonlee@apple.com>
-
-        Update benchmark test suite
-        https://bugs.webkit.org/show_bug.cgi?id=152679
-
-        Reviewed by Simon Fraser.
-
-        Move algorithm.js and sampler.js to tests/ and benchmark-runner.js to runner/.
-
-        Needed by both harnesses.
-        * Animometer/resources/runner/benchmark-runner.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/benchmark-runner.js.
-        * Animometer/developer.html:
-        * Animometer/index.html:
-
-        Needed only by the tests. Move to tests/. Statistics, in sampler.js, is used by ResultsDashboard, so move that
-        into extensions.js.
-        * Animometer/resources/extensions.js:
-        * Animometer/tests/resources/algorithm.js: Renamed from PerformanceTests/Animometer/resources/algorithm.js.
-        * Animometer/tests/resources/sampler.js: Renamed from PerformanceTests/Animometer/resources/sampler.js.
-        * Animometer/tests/bouncing-particles/bouncing-canvas-images.html:
-        * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html:
-        * Animometer/tests/bouncing-particles/bouncing-css-images.html:
-        * Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
-        * Animometer/tests/bouncing-particles/bouncing-svg-images.html:
-        * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html:
-        * Animometer/tests/master/canvas-stage.html:
-        * Animometer/tests/misc/canvas-electrons.html:
-        * Animometer/tests/misc/canvas-stars.html:
-        * Animometer/tests/misc/compositing-transforms.html:
-        * Animometer/tests/simple/simple-canvas-paths.html:
-        * Animometer/tests/template/template-canvas.html:
-        * Animometer/tests/template/template-css.html:
-        * Animometer/tests/template/template-svg.html:
-        * Animometer/tests/text/layering-text.html:
-        * Animometer/tests/text/text-boxes.html:
-
-2016-01-07  Jon Lee  <jonlee@apple.com>
-
-        Update benchmark test suite
-        https://bugs.webkit.org/show_bug.cgi?id=152679
-
-        Reviewed by Simon Fraser.
-
-        Fix tests for other browsers.
-
-        * Animometer/resources/extensions.js:
-        (Point.elementClientSize): Some browsers return 0 for SVG clientWidth and clientHeight.
-        Use getBoundingClientRect() instead.
-        * Animometer/tests/misc/resources/canvas-electrons.js:
-        (CanvasElectron.prototype._draw): Some browsers don't support ellipse.
-
-2016-01-07  Jon Lee  <jonlee@apple.com>
-
-        Add a waitUntilReady() step
-        https://bugs.webkit.org/show_bug.cgi?id=152862
-
-        Reviewed by Simon Fraser.
-
-        Add a waitUntilReady() callback that lets the benchmark complete
-        its setup before running the benchmark.
-
-        * Animometer/tests/resources/main.js:
-        (Benchmark.prototype.run): First call waitUntilReady, which returns
-        a promise. When the promise resolves, run everything that was in this
-        function.
-        (Benchmark.prototype.waitUntilReady): Default implementation returns
-        a resolved promise.
-        (Benchmark.prototype.resolveWhenFinished): Deleted.
-        * Animometer/tests/template/resources/template-canvas.js:
-        (new.TemplateCanvasStage.waitUntilReady): Example on how to override.
-
-2016-01-03  Jon Lee  <jonlee@apple.com>
-
-        Update data reporting and analysis
-        https://bugs.webkit.org/show_bug.cgi?id=152670
-
-        Reviewed by Simon Fraser.
-
-        Show new graph data. Provide controls to show different series data. Provide an
-        interactive cursor that shows the data at a given sample.
-
-        * Animometer/developer.html: Add a nav section in #results. Each part of the graph
-        has a checkbox for visual toggling, as well as companion spans to contain the data.
-                The numbers will always be shown even if the SVG isn't.
-        * Animometer/resources/debug-runner/animometer.css:
-        (#suites): Adjust spacing when doing fixed complexity.
-        (#test-graph nav): Place the nav in the upper right corner.
-        (#test-graph-data > svg): Fix the FPS scale from 0-60. It makes the raw FPS goes past
-        that scale. Allow it to show.
-        (.target-fps): Add a dotted line for where the benchmark is supposed to settle for FPS.
-        (#cursor line): The cursor contains a line and highlight circles for the data being shown.
-        (#cursor circle):
-        (#complexity path): This and rules afterward are named by series type.
-        (#complexity circle):
-        (#filteredFPS path):
-        (#filteredFPS circle):
-        (#rawFPS path):
-        (#intervalFPS circle):
-        (.left-samples): Deleted.
-        (.right-samples): Deleted.
-        * Animometer/resources/debug-runner/animometer.js:
-        (initialize): Add a "changed" listener when the checkboxes change in the nav.
-        (onBenchmarkOptionsChanged): Renamed.
-        (showTestGraph): All graph data is passed in as graphData instead of as arguments.
-        * Animometer/resources/debug-runner/graph.js: Extend BenchmarkController. When showing
-        a new graph, call updateGraphData(). It creates all of the d3 graphs. onGraphOptionsChanged()
-        toggles the data on and off.
-        (updateGraphData): Add the axes. Add the average lines and markers for sample time and
-        target FPS. Add the cursor group. Use helper function addData() to add the data. On top of
-        everything add a transparent area which will catch all of the mouse events. When the mouse
-        moves in the graph, find the closest data point, show the data in the nav area, and highlight
-        the data points.
-        (addData): Adds a line and circle for each data point. Also adds a highlight cursor with a
-        size a little larger than the circle radius for the data points.
-        (onGraphOptionsChanged): Called when data is visually toggled.
-        (showOrHideNodes): Helper function to toggle the .hidden class.
-        * Animometer/resources/extensions.js:
-        (ResultsDashboard.prototype.get data): Get rid of the arguments for _processData.
-        (ResultsTable.prototype._addGraphButton): Shove all of the graph data into a singular object.
-
-        Producing the JSON can take a while with all of the data. Make it on-demand with a
-        button.
-
-        * Animometer/resources/debug-runner/animometer.js:
-        (showResults): When showing the results, don't serialize the JSON data. Move that to...
-        (showJSONResults): ...here. Remove the button.
-
-        * Animometer/developer.html: Add a button. The button will remove itself and populate
-        the textarea with the JSON data.
-        * Animometer/resources/debug-runner/animometer.css:
-        (.hidden): Add a universal hidden class.
-        (#results button.small-button): Promote the small-button styles to the whole results
-        section for use in the JSON button.
-        (#results button.small-button:active):
-        (#results-data button.small-button): Deleted.
-        (#results-data button.small-button:active): Deleted.
-
-        Refactor how Animator does its recording.
-
-        * Animometer/tests/resources/math.js: Create a new, simple estimator that just returns
-        the same interval frame rate for adjustment.
-        * Animometer/tests/resources/main.js:
-        (Animator): Remove _dropFrameCount, and make variables more accurate described.
-        (Animator.prototype.initialize): Use the identity estimator instead of using a bool.
-        (Animator.prototype._intervalTimeDelta): Rename, only used internally.
-        (Animator.prototype._shouldRequestAnotherFrame): Assume we drop one frame for adjustment
-        of the scene. If we are within the number of frames to measure for the interval, just
-        record the timestamp. Otherwise we are ready to evaluate and adjust the scene. Record
-        the interval frame rate and the estimator's frame rate.
-
-        Avoid processing the data through the Experiment while the test is running. Reconfigure
-        the sampler to just record the raw samples. After the test is done, run the samples through
-        the Experiment to get the score.
-
-        * Animometer/resources/sampler.js:
-        (Experiment): Fold _init() into the constructor since nobody else will call it. This is not
-        needed until the test concludes, so remove startSampling(). Clients should just call sample().
-        (Sampler): Pre-allocate arrays given the number of data points being recorded, and a capacity
-        of how many samples will be used. The processor is a called when it's time to process the data
-        since that is the client also telling the Sampler what to record.
-                Introduce the notion of marks as well, which allows the client to mark when an
-        event occurs. When we mark sample start, we can attach the timestamp there, instead of storing
-        it separately.
-        (Sampler.prototype.startSampling): Deleted. Clients should just call record().
-        (Sampler.prototype.record): The data to record is passed in as variable arguments.
-        (Sampler.prototype.mark): When adding a mark, a client needs to provide a unique string, and
-        can provide extra data object for later retrieval.
-        (Sampler.prototype.process): Renamed from toJSON. Trim the sampling arrays to what was used.
-        Call the processor to process the samples.
-        * Animometer/resources/debug-runner/benchmark-runner.js:
-        (BenchmarkRunner.prototype._runBenchmarkAndRecordResults): Call process().
-
-        * Animometer/resources/strings.js: Add some new strings, remove the graph ones since they are
-        not used.
-        * Animometer/tests/resources/main.js:
-        (Benchmark): Create a sampler with 4 series. The maximum number of points expected is the
-        number of seconds multiplied by 60 fps. Benchmark, as a client of the Sampler, knows about all
-        of the data being added to the Sampler. It is added through record(), and processed through
-        processSamples().
-        (Benchmark.prototype.update): Mark when we've passed warmup and are starting to sample. Include
-        the timestamp in the custom data for the mark. This avoids the need to store is separately in
-        the Sampler. Fold what was in record() here, since nothing else needs this functionality.
-        record() now just relays the information to the sampler.
-        (Benchmark.prototype.record): Called by Animator, which provides the data to the sampler.
-        Animator's calls to this is part of a later patch. Requires each stage to return its complexity.
-        (Benchmark.prototype.processSamples): If the sampling mark exists, add it to the results.
-                Go through all of the samples. All samples contain a timestamp and complexity. We
-        calculate "raw FPS" which is the time differential from the previous sample. At regular intervals
-        the Kalman-filtered FPS and the interval average FPS are also recorded. We also create two
-        experiments, to get the scores for the complexity and smoothed FPS, and add those samples to
-        the experiments. Grab those scores and add them into results also.
-
-        Add complexity() to the tests for Benchmark.record().
-        * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
-        * Animometer/tests/misc/resources/canvas-electrons.js:
-        * Animometer/tests/misc/resources/canvas-stars.js:
-        * Animometer/tests/text/resources/layering-text.js:
-
-2015-12-27  Jon Lee  <jonlee@apple.com>
-
-        Simplify the test harness
-        https://bugs.webkit.org/show_bug.cgi?id=152562
-
-        Reviewed by Simon Fraser.
-
-        Update the simple canvas tests. For the paths, start from the center instead of the
-        top-left corner. Instead of using a coordinate limit, use a canonized factor, and
-        use that along both the x and y axes, so that more capable tests use more of the
-        canvas.
-
-        * Animometer/tests/simple/resources/simple-canvas-paths.js:
-        (CanvasLinePoint): Rewrite to use the coordinate maximum factor.
-        (CanvasQuadraticPoint): Ditto.
-        (CanvasBezierPoint): Ditto.
-        * Animometer/tests/simple/resources/simple-canvas.js:
-        (tune): Calculate a factor instead of a maximum coordinate.
-
-2015-12-27  Jon Lee  <jonlee@apple.com>
-
-        Simplify the test harness
-        https://bugs.webkit.org/show_bug.cgi?id=152562
-
-        Reviewed by Simon Fraser.
-
-        All of the benchmarks use the default Animator(). Don't require new tests
-        to pass a new instance, and instead just make one in the Benchmark constructor.
-
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
-        * Animometer/tests/master/resources/canvas-tests.js:
-        * Animometer/tests/misc/resources/canvas-electrons.js:
-        * Animometer/tests/misc/resources/canvas-stars.js:
-        * Animometer/tests/misc/resources/compositing-transforms.js:
-        * Animometer/tests/resources/main.js:
-        * Animometer/tests/simple/resources/simple-canvas-paths.js:
-        * Animometer/tests/template/resources/template-canvas.js:
-        * Animometer/tests/template/resources/template-css.js:
-        * Animometer/tests/template/resources/template-svg.js:
-        * Animometer/tests/text/resources/layering-text.js:
-        * Animometer/tests/text/resources/text-boxes.js:
-
-        Refactor the template.
-
-        * Animometer/tests/template/resources/template-canvas.js:
-        * Animometer/tests/template/resources/template-css.js:
-        * Animometer/tests/template/resources/template-svg.js:
-        * Animometer/tests/template/template-canvas.html:
-        * Animometer/tests/template/template-css.html:
-        * Animometer/tests/template/template-svg.html:
-
-        Refactor the SVG suite.
-
-        * Animometer/tests/bouncing-particles/bouncing-svg-images.html: Move scripts to the end.
-        * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html: Ditto.
-
-        * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Remove extraneous includes
-        to stage.js.
-        * Animometer/tests/text/text-boxes.html: Ditto.
-
-        BouncingCanvasParticlesBenchmark is not necessary. Use Benchmark directly when subclassing.
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Remove
-        BouncingCanvasParticlesBenchmark.
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js: Use Benchmark.
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Ditto.
-
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js: Require the shape
-        in the constructor instead of having subclasses set the private variable.
-
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js: Refactor.
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
-
-        Refactor the HTML suite.
-
-        Move scripts to the end.
-        * Animometer/tests/bouncing-particles/bouncing-css-images.html:
-        * Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
-        * Animometer/tests/text/layering-text.html:
-        * Animometer/tests/text/text-boxes.html:
-
-        Refactor to use the new variables.
-        * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
-        * Animometer/tests/text/resources/layering-text.js:
-        * Animometer/tests/text/resources/text-boxes.js:
-
-        Refactor the bouncing canvas tests.
-
-        * Animometer/tests/bouncing-particles/bouncing-canvas-images.html: Move scripts to the end.
-        * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Move scripts to the end.
-
-        * Animometer/tests/bouncing-particles/resources/bouncing-particles.js: Promote a few
-        properties to "public" since they are used by subclasses.
-        (BouncingParticlesStage): Fix the constructor, which was missing "this". Make particles
-        "public" for subclasses.
-        (BouncingParticlesStage.initialize): Fix the max velocity, which was accidentally changed.
-        * Animometer/tests/misc/resources/compositing-transforms.js: Refactor.
-
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
-        BouncingCanvasParticlesAnimator is no longer needed.
-        (BouncingCanvasParticle): Change constructor to take a shape as a parameter instead of
-        having subclasses set the variable.
-
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js: Refactor.
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Refactor.
-
-        Move example/ files into misc/.
-
-        * Animometer/tests/misc/canvas-electrons.html: Renamed from PerformanceTests/Animometer/tests/examples/canvas-electrons.html.
-        * Animometer/tests/misc/canvas-stars.html: Renamed from PerformanceTests/Animometer/tests/examples/canvas-stars.html.
-        * Animometer/tests/misc/resources/canvas-electrons.js: Renamed from PerformanceTests/Animometer/tests/examples/resources/canvas-electrons.js.
-        * Animometer/tests/misc/resources/canvas-stars.js: Renamed from PerformanceTests/Animometer/tests/examples/resources/canvas-stars.js.
-
-        * Animometer/resources/debug-runner/tests.js: Update test URLs.
-
-        Refactor miscellaneous suite.
-
-        * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
-        Remove BouncingParticlesAnimator and BouncingParticleBenchmark, which are
-        not needed.
-        (tune): Remove console assert.
-        * Animometer/tests/resources/main.js: Add Rotater back in from stage.js.
-
-        * Animometer/tests/examples/resources/canvas-electrons.js: Remove CanvasElectronsAnimator.
-        * Animometer/tests/examples/resources/canvas-stars.js: Remove CanvasStarsAnimator.
-        * Animometer/tests/misc/resources/compositing-transforms.js:
-        * Animometer/tests/examples/canvas-electrons.html: Move scripts to the end.
-        * Animometer/tests/examples/canvas-stars.html: Ditto.
-        * Animometer/tests/misc/compositing-transforms.html: Ditto.
-
-        Refactor the simple suite.
-
-        * Animometer/tests/master/resources/canvas-stage.js:
-        (tune): Remove coordinateMaximum since it is not needed in any
-        of the master tests.
-        * Animometer/tests/simple/resources/simple-canvas.js:
-        SimpleCanvasAnimator and SimpleCanvasBenchmark are no longer
-        needed.
-        (tune): Manage the objects differently, but instead of duplicating
-        all of SimpleCanvasStage here, just replace tune(). Include
-        coordinateMaximum, and remove items from the end of the list
-        instead of the beginning.
-        (StageBenchmark.call.createAnimator): Deleted.
-        (StageBenchmark.call): Deleted.
-        * Animometer/tests/simple/resources/simple-canvas-paths.js:
-        * Animometer/tests/simple/simple-canvas-paths.html: Move
-        scripts to the end.
-
-        Get rid of stage.js, StageAnimator, and StageBenchmark. Don't have the progress bar update during the test.
-
-        * Animometer/resources/debug-runner/animometer.js:
-        (initialize): Move the setting of testsCount to the debug runner.
-        (didRunTest): Nicer name.
-        * Animometer/resources/debug-runner/benchmark-runner.js:
-        (BenchmarkRunner.prototype._runBenchmarkAndRecordResults): Don't pass in the progress bar to benchmarks.
-        * Animometer/resources/extensions.js:
-        (ProgressBar): Refactor. Make variables "private". Resetting the progress when instantiating.
-        (ProgressBar.prototype.incrementRange): This is called every time a benchmark completes.
-        * Animometer/resources/runner/animometer.js:
-        (window.benchmarkRunnerClient.initialize): Remove unneeded setting of testsCount.
-        * Animometer/resources/strings.js: These are no longer needed.
-        * Animometer/tests/master/canvas-stage.html: Remove script inclusion. Other tests will follow.
-        * Animometer/tests/master/resources/canvas-tests.js: Use Benchmark instead of StageBenchmark.
-        * Animometer/tests/resources/main.js: Messages are no longer needed
-        (Animator.prototype._shouldRequestAnotherFrame): Rename from animate(), since this method returns a boolean
-        indicating whether another frame should be requested. Collapse the logic from StageAnimator into animateLoop.
-        (BenchmarkState.prototype.currentStage): Deleted.
-        (BenchmarkState.prototype.currentMessage): Deleted.
-        (BenchmarkState.prototype.currentProgress): Deleted.
-        (Animator.prototype.animate): Deleted.
-        (Animator.prototype.animateLoop): The stage is animated only when we have another frame to draw.
-        (Benchmark.prototype.record): No need to update the progress bar.
-        * Animometer/tests/resources/stage.js: Removed. Rotater will appear in a later patch, in main.js.
-
-        * Animometer/resources/debug-runner/benchmark-runner.js:
-        (BenchmarkRunner.prototype._runBenchmarkAndRecordResults): Each test is run as a benchmark.
-        Remove the call to runBenchmark by merging the options here, and calling benchmark.run()
-        directly.
-
-        Make the class relationships more easily understandable. The benchmark owns the stage,
-        animator, and options. Make the stage and animator no longer have their own references to
-        the options. Make Stage a first-class citizen by promoting it to main.js. Later patches
-        will try to get rid of stage.js altogether.
-        * Animometer/tests/resources/main.js:
-        (Stage): Moved from stage.js.
-        (Animator): Don't pass in benchmark and options in its constructor. It will get initialized
-        by benchmark-related parameters in initialize().
-        (Animator.prototype.initialize): Add a back-reference to benchmark and cache an option.
-        (Animator.prototype.get benchmark):
-        (Animator.prototype.animate): Refactor to use the cached option, to remove its dependency on
-        the options dictionary.
-        (Benchmark): Require all benchmarks to have a stage and animator. The instance will initialize
-        them.
-        (Benchmark.prototype.get options):
-        (Benchmark.prototype.get stage): BenchmarkStates.stages will need to be renamed to avoid confusion.
-        (Benchmark.prototype.get animator):
-        (Benchmark.prototype.start):
-        (Benchmark.prototype.update): Ask the stage directly to tune or clear instead of adding another
-        level of indirection.
-        (window.runBenchmark): Deleted. Remove the need for a benchmarkClient. Also remove the standalone
-        path, since tests can be individually selected, and remove the need for runBenchmark since that is
-        handled in BenchmarkRunner._runBenchmarkAndRecordResults.
-        * Animometer/tests/resources/stage.js:
-        (Stage): Deleted. Moved to main.js.
-        (StageBenchmark): What's left is updating the progress bar; to be removed.
-        (StageAnimator): What's left can be folded in Animator.
-
-        Refactor master suite.
-        * Animometer/tests/master/resources/canvas-stage.js: This now only has SimpleCanvasStage.
-        (animate): Push the clearRect() into each stage.
-        (complexity):
-        (StageBenchmark.call.createAnimator): Deleted.
-        (StageBenchmark.call): Deleted.
-        * Animometer/tests/master/resources/canvas-tests.js: SimpleCanvasPathStrokeStage is no longer needed.
-        (CanvasLineSegment.prototype.draw):
-        (CanvasArc):
-        (CanvasLinePoint): Remove the draw call because depending on its index it either needs to be moveTo
-        or lineTo, and it is otherwise a very small draw operation that doesn't need the overhead of the
-        function call. Do all of the drawing through the stage.
-
-        Refactor the subclass pattern. Introduce Utilities.createSubclass().
-
-        * Animometer/resources/debug-runner/benchmark-runner.js:
-        * Animometer/resources/extensions.js:
-        (window.Utilities.createSubclass): Takes the super class, a function representing
-        the class's constructor, and additional methods to attach to the new class's
-        prototype object.
-        * Animometer/tests/text/text-boxes.html: Remove unneeded reference to utilities.js.
-
-        Refactor tests.
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
-        * Animometer/tests/examples/resources/canvas-electrons.js:
-        * Animometer/tests/examples/resources/canvas-stars.js:
-        * Animometer/tests/master/resources/canvas-stage.js:
-        * Animometer/tests/master/resources/canvas-tests.js:
-        * Animometer/tests/misc/resources/compositing-transforms.js:
-        * Animometer/tests/resources/stage.js:
-        * Animometer/tests/simple/resources/simple-canvas-paths.js:
-        * Animometer/tests/simple/resources/simple-canvas.js:
-        * Animometer/tests/template/resources/template-canvas.js:
-        * Animometer/tests/template/resources/template-css.js:
-        * Animometer/tests/template/resources/template-svg.js:
-        * Animometer/tests/text/resources/layering-text.js: Reorder some of the methods
-        and properties since they rely on each other.
-        * Animometer/tests/text/resources/text-boxes.js:
-
-        * Animometer/resources/debug-runner/animometer.js: Arrange calls
-        in the order they are evoked.
-        * Animometer/resources/debug-runner/benchmark-runner.js:
-        (BenchmarkRunnerState.prototype.next): Get rid of return value since
-        no caller to next() uses it.
-        (BenchmarkRunnerState.prototype.prepareCurrentTest): Refactor the
-        promise to resolve simply when onload() is called instead of
-        looking for #stage.
-        (BenchmarkRunner.prototype._runTestAndRecordResults): Suite.run
-        simply calls runBenchmark(). Call it directly rather than through
-        the Suite.
-        (BenchmarkRunner.prototype.step): Remove unused parameter in
-        resolve callback.
-        (BenchmarkRunner.prototype.runMultipleIterations): Use this instead
-        of self since it is outside of the closure which needed the self
-        variable.
-        (resolveIfReady): Deleted.
-        (BenchmarkRunner.prototype.waitForElement): Deleted.
-        * Animometer/resources/runner/tests.js: prepare() and run() are
-        no longer needed.
-        (Suite.prototype.prepare): Deleted.
-        (Suite.prototype.run): Deleted.
-        * Animometer/tests/master/canvas-stage.html: Move all scripts to
-        the end of the page.
-
-2015-12-23  Simon Fraser  <simon.fraser@apple.com>
-
-        Add an Animometer developer test which animates text-rich boxes
-        https://bugs.webkit.org/show_bug.cgi?id=152544
-
-        Reviewed by Zalan Bujtas.
-
-        Add a test that draws lots of international text. This is a particle test,
-        moving the boxes around with absolution positioning.
-
-        * Animometer/resources/debug-runner/tests.js:
-        * Animometer/tests/text/resources/text-boxes.js: Added.
-        (BouncingTextBox):
-        (BouncingTextBox.prototype._move):
-        (BouncingTextBox.prototype.animate):
-        (BouncingTextBoxStage):
-        (BouncingTextBoxStage.prototype.createParticle):
-        (BouncingTextBoxStage.prototype.particleWillBeRemoved):
-        (BouncingTextBoxsBenchmark):
-        (BouncingTextBoxsBenchmark.prototype.createStage):
-        (window.benchmarkClient.create):
-        * Animometer/tests/text/text-boxes.html: Added.
-
-2015-12-23  Jon Lee  <jonlee@apple.com>
-
-        Split benchmark into two different pages
-        https://bugs.webkit.org/show_bug.cgi?id=152458
-
-        Reviewed by Simon Fraser.
-
-        Add tests to 'animometer' suite.
-
-        * Animometer/resources/runner/tests.js:
-        * Animometer/tests/master/canvas-stage.html: Added.
-        * Animometer/tests/master/resources/canvas-stage.js: Added.
-        * Animometer/tests/master/resources/canvas-tests.js: Added.
-        * Animometer/tests/master/resources/stage.css: Added.
-
-2015-12-23  Jon Lee  <jonlee@apple.com>
-
-        Split benchmark into two different pages
-        https://bugs.webkit.org/show_bug.cgi?id=152458
-
-        Reviewed by Simon Fraser.
-
-        Address comments.
-
-        * Animometer/resources/debug-runner/benchmark-runner.js:
-        (BenchmarkRunner.prototype._runTestAndRecordResults): When the testing is complete the frame owning the
-        sampler goes away, and a later call to get the JSON data is no longer available. Process the data
-        right here, instead, and just reference it when displaying the results in ResultsDashboard.prototype._processData.
-        * Animometer/resources/extensions.js:
-        (Array.prototype.fill.Array.prototype.fill): Add a null check. Remove braces around single-line clause.
-        (Array.prototype.find.Array.prototype.find): Update the null check.
-        (ResultsDashboard.prototype._processData): Use the already-processed data.
-        * Animometer/resources/runner/animometer.css:
-        (.frame-container > iframe): Remove calc().
-
-        Move Array functions to extensions.js since that is included by the harness.
-        Add ES6 Array polyfills.
-
-        * Animometer/resources/algorithm.js:
-        (Array.prototype.swap): Moved to extensions.js.
-        * Animometer/resources/extensions.js:
-        (Array.prototype.swap):
-        (Array.prototype.fill): Added.
-        (Array.prototype.find): Added.
-
-        Adjust styles for iPad.
-
-        * Animometer/resources/runner/animometer.css:
-        (@media screen and (min-device-width: 768px)): Apply to iPad as well.
-        (@media screen and (max-device-width: 1024px)): Update width for iPads.
-
-        Adjustment styles for iOS.
-
-        * Animometer/developer.html: Different divs contain the iframe, so use a class instead and
-        update the style rules.
-        * Animometer/index.html:
-        * Animometer/resources/debug-runner/animometer.css: Remove extraneous rules.
-        (@media screen and (min-device-width: 1800px)): Move this up.
-        * Animometer/resources/runner/animometer.css: Add rules to accomodate iOS.
-
-        Get rid of prefixed flex properties for now.
-
-        * Animometer/resources/debug-runner/animometer.css:
-        * Animometer/resources/runner/animometer.css:
-
-        Update the structure of the harness. Remove the JSON-per-test but keep
-        the JSON of the whole test run. Use the full page in order to display
-        the graph.
-
-        * Animometer/developer.html: Update several of the JS file includes to UTF-8. Remove header and footer. Test results screen includes score,
-        average, and worst 5% statistics.
-        * Animometer/index.html: Make structure similar to developer.html.
-        * Animometer/resources/debug-runner/animometer.css: Remove most of the
-        button rules since they are superfluous. Move the progress bar to the
-        top, fixed. Update the results page rules.
-        * Animometer/resources/debug-runner/animometer.js: Remove most of the
-        additions to sectionsManager since they are no longer needed.
-        (setSectionHeader): Updates header of the section.
-        (window.suitesManager._updateStartButtonState): Update selector.
-        (showResults): Add keypress event for selecting different data for
-        copy/paste. Update how the results are populated. Include full test
-        JSON in a textarea, rather than requiring a button press.
-        (showTestGraph):
-        * Animometer/resources/debug-runner/tests.js: Update structure of Headers. Define different kinds of headers. Headers can control their
-        title, and the text used as the cell contents, including class name.
-        * Animometer/resources/extensions.js:
-        (ResultsTable): Update to include a flattened version of the headers,
-        used while populating table contents. Remove unneeded helper functions
-        for creating the table. Rename "show" to "add".
-        * Animometer/resources/runner/animometer.css: Update rules to
-        accommodate the new structure.
-        * Animometer/resources/runner/animometer.js:
-        (window.sectionsManager.setSectionScore): Helper function to set the
-        score and mean for a section.
-        (window.sectionsManager.populateTable): Helper function to set the table.
-        (window.benchmarkController.showResults): Refactor.
-        (window.benchmarkController.selectResults): Update selectors.
-        * Animometer/resources/runner/tests.js: Set Headers. Debug harness
-        extends it.
-
-        Update debug runner to have similar names to the basic runner. Include
-        that page's CSS and remove extraneous CSS rules.
-
-        Get rid of the statistics table #record.
-
-        * Animometer/developer.html: Rename #home to #intro. Rename .spacer to hr.
-        * Animometer/resources/debug-runner/animometer.css: Set to flexbox when selected.
-        * Animometer/resources/debug-runner/animometer.js: Remove recordTable.
-        (window.suitesManager._updateStartButtonState): Update selector to #intro.
-        (setupRunningSectionStyle): Deleted.
-
-        * Animometer/resources/runner/animometer.css:
-        (#test-container.selected): Change to flex-box only when visible.
-
-        Remove recordTable.
-        * Animometer/resources/debug-runner/benchmark-runner.js:
-        (BenchmarkRunner.prototype._runTestAndRecordResults):
-        * Animometer/resources/runner/tests.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
-        * Animometer/tests/examples/resources/canvas-electrons.js:
-        * Animometer/tests/examples/resources/canvas-stars.js:
-        * Animometer/tests/misc/resources/compositing-transforms.js:
-        * Animometer/tests/resources/main.js:
-        * Animometer/tests/resources/stage.js:
-        (StageBenchmark): Remove _recordTable.
-        * Animometer/tests/simple/resources/simple-canvas-paths.js:
-        * Animometer/tests/simple/resources/simple-canvas.js:
-        * Animometer/tests/template/resources/template-canvas.js:
-        * Animometer/tests/template/resources/template-css.js:
-        * Animometer/tests/template/resources/template-svg.js:
-        * Animometer/tests/text/resources/layering-text.js:
-
-        * Animometer/resources/debug-runner/animometer.js:
-        (willStartFirstIteration): Fix selector, since results-table is used
-        in multiple places, so it cannot be an id.
-
-        Make it possible to select the scores, or the whole table data,
-        by cycling through different selections through key press of 's'.
-
-        * Animometer/resources/runner/animometer.js:
-        (window.benchmarkController.showResults): Attach a keypress handler
-        if it hasn't been added already.
-        (window.benchmarkController.selectResults):
-        * Animometer/resources/runner/tests.js: Cycle through different
-        ranges.
-
-        Fix a few fly-by errors.
-
-        * Animometer/resources/debug-runner/benchmark-runner.js:
-        (BenchmarkRunnerState.prototype.prepareCurrentTest): Update the frame relative path
-        since the files are now in the top directory instead of inside runner/.
-        (BenchmarkRunner.prototype._runTestAndRecordResults): Incorrect reference to function.
-        (BenchmarkRunner.prototype.step): Member variable is never used.
-
-        A little stylistic cleanup.
-
-        * Animometer/resources/debug-runner/benchmark-runner.js:
-        * Animometer/resources/extensions.js:
-        (window.DocumentExtension.createElement):
-        * Animometer/tests/resources/main.js:
-        (Benchmark.prototype.record):
-        * Animometer/tests/resources/stage.js:
-        (StageBenchmark.prototype.showResults): Reverse progress and message.
-        The message appears less frequently than the progress.
-        * Animometer/tests/simple/resources/simple-canvas.js:
-        (SimpleCanvasBenchmark): Remove unused options.
-
-        Add newer version of harness in a new page. Consolidate differences between the two
-        pages.
-
-        * Animometer/developer.html: Include runner/animometer.js. Rename the JS function
-        to run the benchmark to startBenchmark() instead of startTest(). Rename #running to
-        #test-container.
-        * Animometer/index.html: Added. Similarly calls startBenchmark() and has #test-container.
-        * Animometer/resources/debug-runner/animometer.css: Make the canvas 2:1 (1200px x 800px)
-        instead of 4:3.
-
-        Split out benchmarkRunnerClient and benchmarkController.
-
-        * Animometer/resources/debug-runner/animometer.js: Move needed functions out of
-        benchmarkRunnerClient, and leave the rest here to extend that object. Get rid of _resultsTable
-        and move populating the results table into benchmarkController. Rename _resultsDashboard
-        to results and make it accessible for other objects to use.
-        (willAddTestFrame): This is unnecessary. Remove.
-
-        (window.sectionsManager.showScore): Grab it from the results object instead of
-        benchmarkRunnerClient.
-        (window.sectionsManager.showSection): Deleted. Moved to runner/animometer.js.
-
-        (window.benchmarkController._runBenchmark): Deleted. Mostly moved into _startBenchmark.
-        (window.benchmarkController.startBenchmark): Refactor to call _startBenchmark.
-        (window.benchmarkController.showResults): Include most of benchmarkRunnerClient.didFinishLastIteration()
-        here.
-
-        * Animometer/resources/debug-runner/benchmark-runner.js:
-        (BenchmarkRunner.prototype._appendFrame): Remove unneeded call to willAddTestFrame.
-        * Animometer/resources/extensions.js:
-        (ResultsDashboard): Change the class to process the sampler data on-demand and hold onto that data
-        for later referencing.
-        (ResultsDashboard.prototype.toJSON): Deleted.
-        (ResultsDashboard.prototype._processData): Rename toJSON to _processData since it's not really
-        outputting JSON. Store the processed data into a member variable that can be referenced later.
-        (ResultsDashboard.prototype.get data): Process the data if it hasn't already.
-        (ResultsDashboard.prototype.get score): Process the data if it hasn't already, then return the
-        aggregate score.
-        (ResultsTable.prototype._showHeader): When outputting the results to a table, don't force the
-        need for an empty children array. This was to allow for a header row in the table that spanned
-        multiple columns. In the simpler harness, this is not needed.
-        (ResultsTable.prototype._showEmptyCells):
-        (ResultsTable.prototype._showTest): This hardcoded the columns. At least for the name and score,
-        which is the bare minimum needed for the simpler harness, key off of the header name provided.
-        * Animometer/resources/runner/animometer.css: Added. Use a similar 2:1 ratio. The score tables are
-        split into the data and the headers, and are also displayed RTL so that a later patch allows a
-        user to copy-paste the data easily.
-        * Animometer/resources/runner/animometer.js: Added. Use a simpler version of benchmarkRunnerClient.
-        The debug harness will extend these classes.
-        (window.benchmarkController._startBenchmark): Used by both harnesses.
-        (window.benchmarkController.startBenchmark): Set hard-coded options.
-        (window.benchmarkController.showResults): Includes most of benchmarkRunnerClient.didFinishLastIteration()
-        here.
-
-        Get rid of utilities.js. Move it all into extensions.js.
-
-        * Animometer/resources/extensions.js:
-        * Animometer/tests/resources/utilities.js: Removed.
-
-        * Animometer/tests/bouncing-particles/bouncing-canvas-images.html: Remove script link.
-        * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Ditto.
-        * Animometer/tests/bouncing-particles/bouncing-css-images.html: Ditto.
-        * Animometer/tests/bouncing-particles/bouncing-css-shapes.html: Ditto.
-        * Animometer/tests/bouncing-particles/bouncing-svg-images.html: Ditto.
-        * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html: Ditto.
-        * Animometer/tests/examples/canvas-electrons.html: Ditto.
-        * Animometer/tests/examples/canvas-stars.html: Ditto.
-        * Animometer/tests/misc/compositing-transforms.html: Ditto.
-        * Animometer/tests/simple/simple-canvas-paths.html: Ditto.
-        * Animometer/tests/template/template-canvas.html: Ditto.
-        * Animometer/tests/template/template-css.html: Ditto.
-        * Animometer/tests/template/template-svg.html: Ditto.
-        * Animometer/tests/text/layering-text.html: Ditto.
-
-        Split tests.js into two. Add a new suite to runner/tests.js.
-
-        * Animometer/developer.html: Update the script order. Scripts from
-        debug-runner/ will always build on those from runner/, and have the
-        same name.
-        * Animometer/resources/debug-runner/tests.js: Move "complex examples"
-        suite into "miscellaneous tests".
-        (Suite): Deleted.
-        (Suite.prototype.prepare): Deleted.
-        (Suite.prototype.run): Deleted.
-        (suiteFromName): Deleted.
-        * Animometer/resources/runner/tests.js: Added. Take definitions and
-        functions needed by the test harness. Leave the test suites behind.
-        (Suite): Moved from debug script.
-        (Suite.prototype.prepare): Ditto.
-        (Suite.prototype.run): Ditto.
-        (suiteFromName): Ditto.
-        (testFromName): Ditto.
-
-        Move benchmark resources out into resources/debug-runner, and update URLs.
-
-        * Animometer/developer.html: Renamed from PerformanceTests/Animometer/runner/animometer.html.
-        * Animometer/resources/debug-runner/animometer.css: Renamed from PerformanceTests/Animometer/runner/resources/animometer.css.
-        * Animometer/resources/debug-runner/animometer.js: Renamed from PerformanceTests/Animometer/runner/resources/animometer.js.
-        * Animometer/resources/debug-runner/benchmark-runner.js: Renamed from PerformanceTests/Animometer/runner/resources/benchmark-runner.js.
-        * Animometer/resources/debug-runner/d3.min.js: Renamed from PerformanceTests/Animometer/runner/resources/d3.min.js.
-        * Animometer/resources/debug-runner/graph.js: Renamed from PerformanceTests/Animometer/runner/resources/graph.js.
-        * Animometer/resources/debug-runner/tests.js: Renamed from PerformanceTests/Animometer/runner/resources/tests.js.
-
-2015-12-11  Jon Lee  <jonlee@apple.com>
-
-        Improve Animometer on iOS
-        https://bugs.webkit.org/show_bug.cgi?id=152180
-
-        Reviewed by Simon Fraser.
-
-        Improve experience on phones. Make the canvas take
-        up the whole screen.
-
-        * Animometer/runner/animometer.html: Add meta viewport.
-        Remove the container div.
-        * Animometer/runner/resources/animometer.css: Have buttons lay
-        out vertically. Update detail arrow glyph. Make the suites and
-        options section lay out vertically. Remove the top spacers since
-        we want the canvas to take over the whole screen. Minimal display
-        is recommended for use.
-
-2015-12-07  Jon Lee  <jonlee@apple.com>
-
-        Update suites for benchmark
-        https://bugs.webkit.org/show_bug.cgi?id=151957
-
-        Reviewed by Simon Fraser.
-
-        * Animometer/runner/animometer.html: Use spacers instead of relying on
-        justify-content center to center the content. That allows the opening screen
-        to grow downward when expanding the list of choices, otherwise it expands
-        from the center, and off the top edge of the screen.
-        * Animometer/runner/resources/animometer.css:
-        (.tree): Don't overflow scroll.
-        (.tree > li > label.tree-label:before): Use better glyphs.
-        (.tree > li > :checked ~ label.tree-label:before):
-        (main): Using flex-start for justify-content so that if the section grows too
-        big it gets pinned to the top edge of the document instead of growing past it.
-        (.spacer): Make the spacers have a minimum 20px and grow evenly.
-        (section#home): Add a min-height so that the border will expand if the suite
-        tests shown make the section grow past the height.
-        * Animometer/runner/resources/animometer.js: Update the selectors.
-        (window.suitesManager._treeElement):
-        (window.suitesManager._suitesElements):
-        (window.suitesManager._editsElements):
-
-2015-12-07  Jon Lee  <jonlee@apple.com>
-
-        Update options for benchmark
-        https://bugs.webkit.org/show_bug.cgi?id=151956
-
-        Reviewed by Simon Fraser.
-
-        Move "Fix test complexity" and "Adaptive" checkboxes into a radio group.
-
-        Move "Show running results" into a radio group, and add options to remove the HUD.
-
-        * Animometer/runner/animometer.html: Get rid of the preamble. Wrap the options
-        in a form for easier referencing in JS.
-        * Animometer/runner/resources/animometer.css: Show the surrounding border if the
-        body's display-minimal class name is set.
-        * Animometer/runner/resources/animometer.js:
-
-        Update the way optionsManager gets and sets default values. Include support for
-        radio groups.
-        (window.optionsManager.valueForOption):
-        (window.optionsManager.updateUIFromLocalStorage):
-        (window.optionsManager.updateLocalStorageFromUI):
-
-        (window.benchmarkRunnerClient.willStartFirstIteration):
-        (window.sectionsManager.setupRunningSectionStyle):
-        (window.suitesManager._treeElement): Fly-by whitespace fix.
-        (window.suitesManager._suitesElements): Ditto.
-        (window.suitesManager.updateEditsElementsState): Update options check.
-        (window.suitesManager.updateDisplay): Add a new update function for the HUD.
-        Attach a class to the body depending on the user's choice.
-        (window.benchmarkController.initialize): Add an event listener when the form
-        radio buttons update.
-        (window.benchmarkController.onFormChanged):
-        (window.optionsManager._optionsElements): Deleted.
-        (window.optionsManager._adaptiveTestElement): Deleted.
-        (window.benchmarkController.onChangeAdaptiveTestCheckbox): Deleted.
-        * Animometer/tests/resources/main.js:
-        (Benchmark.prototype.update): Update options checks.
-        * Animometer/tests/resources/stage.js: Update option check.
-        (StageBenchmark.prototype.showResults):
-
-2015-12-01  Simon Fraser  <simon.fraser@apple.com>
-
-        Add a basic compositing Animometer test
-        https://bugs.webkit.org/show_bug.cgi?id=151724
-
-        Reviewed by Dean Jackson.
-
-        Add a "bouncing particles" test that moves composited layers around, optionally with a filter.
-
-        This is added under a new "Miscellaneous" category.
-
-        Remove the test templates category from the UI.
-
-        * Animometer/runner/resources/tests.js:
-        * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
-        (BouncingCssShape.prototype.animate):
-        * Animometer/tests/misc/compositing-transforms.html: Added.
-        * Animometer/tests/misc/resources/compositing-transforms.js: Added.
-        (BouncingCompositedImage):
-        (BouncingCompositedImage.prototype._move):
-        (BouncingCompositedImage.prototype.animate):
-        (CompositingTransformsStage):
-        (CompositingTransformsStage.prototype.createParticle):
-        (CompositingTransformsStage.prototype.particleWillBeRemoved):
-        (CompositedTransformsBenchmark):
-        (CompositedTransformsBenchmark.prototype.createStage):
-        (window.benchmarkClient.create):
-
-2015-11-30  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Fix the graphics benchmark complexity bounds adjustment
-        https://bugs.webkit.org/show_bug.cgi?id=151670
-
-        Reviewed by Simon Fraser.
-
-        Make sure the graphics benchmark complexity bounds adjustment is applied
-        to the absolute lower bound.
-
-        * Animometer/tests/resources/math.js:
-        (PIDController.prototype._saturate):
-
-2015-11-30  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Add an option to select the results form the graphics benchmark
-        https://bugs.webkit.org/show_bug.cgi?id=151666
-
-        Reviewed by Ryosuke Niwa.
-
-        We need an easy way to select the graphics benchmark results table such
-        that when it is copied to the clipboard, rich text format is set to the
-        clipboard.
-
-        * Animometer/runner/animometer.html: Add a new button to select the results table or JSON.
-
-        * Animometer/runner/resources/animometer.js:
-        (window.sectionsManager._sectionDataElement): Selects the container <data> element.
-        (window.sectionsManager._sectionDataDivElement): Replace a literal string with a string table entry.
-        (window.sectionsManager.showTestName): Replace a literal string with a string table entry.
-        (window.sectionsManager.selectData): Selects the container <data> element in a selection.
-        (window.sectionsManager.selectDataContents): Select the contents of container <data> element in a selection.
-        (window.benchmarkController.selectResults): Selects the results table.
-        (window.benchmarkController.showJSON): Function rename.
-        (window.benchmarkController.selectJSON): Selects the contents of the results JSON.
-        (window.benchmarkController.showJson): Deleted.
-
-2015-11-20  Simon Fraser  <simon.fraser@apple.com>
-
-        Animometer: graphs should not do interpolation
-        https://bugs.webkit.org/show_bug.cgi?id=151526
-
-        Reviewed by Simon Fraser.
-
-        Having the graphs do interpolation is misleading, because you can't see the actual data.
-
-        Also remove "shape-rendering: crispEdges;" so the lines get antialiased.
-
-        * Animometer/runner/resources/animometer.css:
-        (section#test-graph > data > svg): Deleted.
-        * Animometer/runner/resources/graph.js:
-        (graph): Deleted.
-
-2015-11-19  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Calculate the graphics benchmark test gain adaptively
-        https://bugs.webkit.org/show_bug.cgi?id=151208
-
-        Reviewed by Darin Adler.
-
-        We need to calculate the gain of the graphics benchmark tests adaptively
-        and get rid of the gain and limits parameters we have to choose manually
-        for every test. We are going to use the classic Ziegler–Nichols method for
-        calculating the gain and integral and derivative times. We are going to
-        try moving on a cubic curve during the manual stage from y0 to reach ysp.
-        We also going to use a saturation actuator to ensure the system does not
-        fluctuate.
-
-        * Animometer/resources/extensions.js:
-        (ResultsTable.prototype._isNoisyMeasurement): Fix a parameter name.
-        (ResultsTable.prototype._isNoisyTest): Since score is a member of testResults, we need to limit our search to frame rate and complexity.
-        (ResultsTable.prototype._showTest): Pass the correct parameter to _isNoisyMeasurement().
-
-        * Animometer/resources/strings.js: Fix the indentation and name and value of a string.
-
-        * Animometer/runner/resources/tests.js: Remove all the manual gains and limits parameters which had to be passed to every test.
-
-        * Animometer/tests/resources/main.js:
-        (BenchmarkState.prototype.currentStage): Fix an enum name.
-        (Benchmark): Get rid of manual gain and limits.
-        (Benchmark.prototype.update): Simplify the calculation by having all the times in ms.
-
-        * Animometer/tests/resources/math.js:
-        (PIDController): Get rid of the manual gain and limits and the magic numbers for Ti and Td.
-        (PIDController.prototype._yPosition): Tells whether the test current output is moving towards the set-point or away from it.
-        (PIDController.prototype._distanceUltimate): Calculates the ultimate distance from y0 after time t using a cubic formula.
-        (PIDController.prototype._distance): Calculates the distance of y relative to y0.
-        (PIDController.prototype._gainIncrement): Decides how much the proportional gain should be increased during the manual gain stage.
-        (PIDController.prototype._updateStage): Updates the stage of the controller based on its current stage and the system output.
-        (PIDController.prototype._tuneP): Tunes the system before calculating the PID controller gains.
-        (PIDController.prototype._tunePID): PID tuning function.
-        (PIDController.prototype._tune):
-        (PIDController.prototype._saturate):
-        (PIDController.prototype.tune): Manages calculating the controller parameters. It then returns a PID tuning value.
-        (PIDController.prototype._sat): Deleted. We may need to return it back but the limits have to be calculated adaptively not manually.
-
-2015-11-17  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Reorganize the graphics benchmark string table
-        https://bugs.webkit.org/show_bug.cgi?id=151334
-
-        Reviewed by Simon Fraser.
-
-        Make the graphics benchmark string table be an object of sub-objects. Each
-        sub-object represents an associative array, the key is the string name and
-        the value is the string data.
-
-        * Animometer/resources/extensions.js:
-        (ResultsDashboard.prototype.toJSON):
-        (ResultsTable.prototype._showGraph):
-        (ResultsTable.prototype._showJSON):
-        (ResultsTable.prototype._isNoisyMeasurement):
-        (ResultsTable.prototype._isNoisyTest):
-        (ResultsTable.prototype._showTest):
-        (ResultsTable.prototype._showSuite):
-        (ResultsTable.prototype._showIteration):
-        * Animometer/resources/sampler.js:
-        (Sampler.prototype.toJSON):
-        * Animometer/resources/strings.js:
-        * Animometer/runner/resources/animometer.js:
-        (window.benchmarkRunnerClient.didFinishLastIteration):
-        (window.suitesManager.updateLocalStorageFromJSON):
-        (window.benchmarkController.showResults):
-        (window.benchmarkController.showJson):
-        (window.benchmarkController.showTestGraph):
-        (window.benchmarkController.showTestJSON):
-        * Animometer/runner/resources/tests.js:
-        * Animometer/tests/resources/main.js:
-
-2015-11-17  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Disable flattening the stage iframe of the graphics benchmark when running on iOS
-        https://bugs.webkit.org/show_bug.cgi?id=151361
-
-        Reviewed by Simon Fraser.
-
-        Use fixed size for stage iframe of the graphics benchmark to disable
-        flattening the iframe while animating the particles. Also ensure the
-        bouncing particles do not go outside the iframe's boundaries.
-
-        * Animometer/runner/resources/animometer.css:
-        (section#running > #running-test > iframe):
-        (@media screen and (min-device-width: 1800px)):
-        * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
-        (BouncingParticle.prototype.animate):
-
-2015-11-17  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Use the media queries to dynamically set the stage for the graphics benchmark
-        https://bugs.webkit.org/show_bug.cgi?id=151327
-
-        Reviewed by Simon Fraser.
-
-        Clean setting the benchmark css rules by using the media queries. Accessing
-        document.stylesheets.cssRules seems to be unreliable. Fix the test harness
-        load event listener invocation. And also remove the options for normalizing
-        the stage resolution for retina display.
-
-        * Animometer/resources/extensions.js:
-        (window.DocumentExtension.insertCssRuleAfter): Deleted.
-        * Animometer/runner/animometer.html:
-        * Animometer/runner/resources/animometer.css:
-        (@media screen and (min-device-width: 1800px)):
-        * Animometer/runner/resources/animometer.js:
-        (window.sectionsManager.setupRunningSectionStyle):
-        (window.benchmarkController.initialize):
-        (window.sectionsManager.setupSectionStyle): Deleted.
-        * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
-        (BouncingParticlesStage):
-        * Animometer/tests/text/layering-text.html:
-        * Animometer/tests/text/resources/layering-text.js:
-        (LayeringTextStage):
-        (LayeringTextStage.prototype._setFontSize): Deleted.
-
-2015-11-16  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Remove the option for animating using setInterval from the graphics benchmark
-        https://bugs.webkit.org/show_bug.cgi?id=151283
-
-        Reviewed by Darin Adler.
-
-        Get rid of the option to run animation using setInterval().
-
-        * Animometer/tests/resources/main.js:
-        (Animator.prototype.animate):
-        (Benchmark):
-        (Benchmark.prototype.start):
-        (Animator.prototype.start): Deleted.
-
-2015-11-16  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Highlight the alarming test results in the graphics benchmark results page
-        https://bugs.webkit.org/show_bug.cgi?id=151286
-
-        Reviewed by Simon Fraser.
-
-        When showing the results of a test in the graphics benchmark the following
-        criteria is going to be applied:
-
-        1. If the standard deviation of the test complexity or the frame rate is
-           equal to or more than 10%, the standard deviation and the test name
-           will be displayed in red.
-        2. If the average frame rate is not in the range = [(desired_frame_rate - 2)
-           .. (desired_frame_rate + 2)], the average frame rate and the test name will
-           be displayed in red.
-
-        * Animometer/resources/extensions.js:
-        (ResultsTable.prototype._showHeaderRow):
-        (ResultsTable.prototype._showHeader):
-        (ResultsTable.prototype._showEmptyCell):
-        (ResultsTable.prototype._showText):
-        (ResultsTable.prototype._showFixedNumber):
-        (ResultsTable.prototype.):
-        (ResultsTable.prototype._showGraph):
-        (ResultsTable.prototype._showJSON):
-        (ResultsTable.prototype._isAlarmingMeasurement):
-        (ResultsTable.prototype._isAlarmingTestResults):
-        (ResultsTable.prototype._showEmptyCells):
-        (ResultsTable.prototype._showEmptyRow):
-        (ResultsTable.prototype._showTest):
-        (ResultsTable.prototype._showSuite):
-        (ResultsTable.prototype._showIteration):
-        (ResultsTable.prototype.showRecord):
-        (ResultsTable.prototype.showIterations):
-        (ResultsTable.prototype._showEmpty): Deleted.
-        * Animometer/runner/resources/animometer.js:
-        (window.benchmarkRunnerClient.didFinishLastIteration):
-        * Animometer/tests/resources/stage.js:
-        (StageBenchmark.prototype.showResults):
-
-2015-11-16  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Clean referencing the options object in the graphics benchmark
-        https://bugs.webkit.org/show_bug.cgi?id=151284
-
-        Reviewed by Simon Fraser.
-
-        Get rid of the Benchmark.options member and rely only on the private member
-        Benchmark._options. The animator need to have its own options member instead
-        of accessing it from its reference to Benchmark object.
-
-        * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
-        (BouncingCanvasParticlesAnimator):
-        (BouncingCanvasParticlesBenchmark.prototype.createAnimator):
-        * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
-        (BouncingParticle.prototype.animate):
-        (BouncingParticlesAnimator):
-        (BouncingParticlesBenchmark.prototype.createAnimator):
-        * Animometer/tests/examples/resources/canvas-electrons.js:
-        (CanvasElectronsStage.prototype.animate):
-        (CanvasElectronsAnimator):
-        (CanvasElectronsBenchmark.prototype.createAnimator):
-        (window.benchmarkClient.create):
-        * Animometer/tests/examples/resources/canvas-stars.js:
-        (CanvasStarsStage.prototype.animate):
-        (CanvasStarsAnimator):
-        (CanvasStarsBenchmark.prototype.createAnimator):
-        (window.benchmarkClient.create):
-        * Animometer/tests/resources/main.js:
-        (BenchmarkState.prototype.currentProgress):
-        (Animator):
-        (Animator.prototype.animate):
-        (Benchmark):
-        (Benchmark.prototype.update):
-        * Animometer/tests/resources/stage.js:
-        (Stage.prototype.clear):
-        (StageAnimator):
-        (StageBenchmark.prototype.createAnimator):
-        (StageBenchmark.prototype.tune):
-        (StageBenchmark.prototype.showResults):
-        * Animometer/tests/simple/resources/simple-canvas.js:
-        (SimpleCanvasStage.prototype.animate):
-        (SimpleCanvasAnimator):
-        (SimpleCanvasAnimator.prototype.animate):
-        (SimpleCanvasBenchmark.prototype.createAnimator):
-        * Animometer/tests/template/resources/template-canvas.js:
-        (TemplateCanvasStage.prototype.animate):
-        (TemplateCanvasBenchmark.prototype.createAnimator):
-        (window.benchmarkClient.create):
-
-2015-11-13  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Eliminate a request for layout every time an item is added to the stage of the graphics benchmark
-        https://bugs.webkit.org/show_bug.cgi?id=151289
-
-        Reviewed by Simon Fraser.
-
-        Cache the stage size when it is created instead of requesting every time
-        an object is added via clientWidth and clientHeight.
-
-        * Animometer/resources/extensions.js:
-        (Insets.elementPadding):
-        * Animometer/tests/resources/stage.js:
-        (Stage):
-        (Stage.prototype.get size):
-
-2015-11-06  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Initialize the graphics benchmark's Kalman filter with estimated 60 FPS
-        https://bugs.webkit.org/show_bug.cgi?id=150965
-
-        Reviewed by Darin Adler.
-
-        This should give the benchmark more accurate reading at warmup time. And
-        hence we can safely reduce the test running time to be 10 seconds.
-
-        * Animometer/runner/animometer.html:
-        Add "defer" back when loading resources/animometer.js since this script
-        depends on many other scripts and we need to wait till the page is parsed.
-        Also change the default test interval to be 10 seconds.
-
-        * Animometer/runner/resources/graph.js:
-        (graph): Make the test results curves smoother.
-
-        * Animometer/tests/resources/main.js:
-        (Animator): Initialize the Kalman filter with 60 FPS which should be true
-        if the test page is empty.
-
-        (Animator.prototype.animate):
-        * Animometer/tests/resources/math.js:
-        (KalmanEstimator): Fix the initial value of _vecX_est.
-            _vecX_est[0] = current FPS (= 60FPS when the test page is empty)
-            _vecX_est[1] = first time derivative of FPS (=0; FPS has been constant).
-            _vecX_est[2] = second time derivative of FPS (=0; since _vecX_est[1]=0).
-        (KalmanEstimator.prototype.estimate): Add some comments.
-
-2015-11-04  Said Abou-Hallawa  <sabouhallawa@apple.com>
-
-        Remove "defer" from the scripts' references in the graphics benchmark home page
-        https://bugs.webkit.org/show_bug.cgi?id=150915
-
-        Reviewed by Simon Fraser.
-
-        It causes the benchmark to be very flakey.
-
-        * Animometer/runner/animometer.html:
-
-2015-11-01  Said Abou-Hallawa  <sabouhallawa@apple,com>
-
-        Add an option to make the graphics benchmark runs a specific test with fixed complexity
-        https://bugs.webkit.org/show_bug.cgi?id=150529
-
-        Reviewed by Darin Adler.
-
-        Beside each test in the suites tree, we are going to show the complexity
-        arithmetic mean of the of the last run in an edit control. Based on a
-        new option these edit controls will all be visible or hidden. If they are
-        visible their values can be changed. The benchmark runner if it run in
-        the non-adaptive mode will set the complexity of the test to the passed
-        value and will not change it ever. The animator will animate the test and
-        frame rate will also be measured.
-
-        * Animometer/runner/animometer.html: Add a new option for the non-adaptive mode.
-
-        * Animometer/runner/resources/animometer.css:
-        (section#home input[type="number"]): Define the width of all the edit control in the <home> section.
-        (section#home > suites input[type="number"]): The edit controls in the <suites> box will be right aligned and hidden by default.
-        (section#home > suites input[type="number"].selected): When the class "selected" is added, the edit controls will be visible.
-        (section#home > options > label > input[type="number"]): Deleted.
-
-        * Animometer/runner/resources/animometer.js:
-        (window.benchmarkRunnerClient.didFinishLastIteration): Update the local storage with the results of each test.
-        (window.optionsManager._adaptiveTestElement): Returns the checkbox for setting the adaptive test option.
-        (window.suitesManager._editElement):  Returns the edit element associated with each test element in the suites tree.
-        (window.suitesManager._editsElements): Returns a list of all the elements in the <suites> box.
-        (window.suitesManager._localStorageNameForTest): Change this function to take strings.
-        (window.suitesManager._createTestElement): Adds an edit control beside each test.
-        (window.suitesManager.updateEditsElementsState): Adds/Removes the 'selected' class to/from all the tests edit elements.
-        (window.suitesManager.updateUIFromLocalStorage): Reads the edit control value from the local storage.
-        (window.suitesManager.updateLocalStorageFromUI): Saves the edit control value to the local storage.
-        (window.suitesManager.updateLocalStorageFromJSON): Saves the last run results to the local storage.
-        (window.benchmarkController.initialize): Shows/Hides the test edit controls based on the adaptive test option.
-        (window.benchmarkController.onChangeAdaptiveTestCheckbox): An onchange event handler for the adaptive test checkbox.
-
-        * Animometer/tests/resources/main.js:
-        (Benchmark.prototype.update): Fix the complexity of the test if the running mode is non-adaptive test and desired complexity is not zero.
-        (window.runBenchmark): Add the test complexity as a new benchmark option.
-
-2015-11-01  Said Abou-Hallawa  <sabouhallawa@apple,com>
-
-        Make the size of the benchmark canvas adaptive to the screen size and screen resolution
-        https://bugs.webkit.org/show_bug.cgi?id=150530
-
-        Reviewed by Darin Adler.
-
-        We want to set the size of the benchmark stage dynamically such that it
-        depends on the screen resolution and the device scale factor. This patch
-        does more than that because the home page css was not done properly. To
-        use the flex box layout, the animometer.css has to be rewritten almost from
-        scratch. The suites tree has to be rewritten also because it was not collapsing
-        and with the flex box layout it was going outside of the window area. The
-        options handling and the local storage handling had to be rewritten to
-        allow more flexibility with this patch and the future patches. The code
-        in animometer.js was reorganized into objects to allow distributing the code
-        nicely among separate entities.
-
-        * Animometer/resources/extensions.js:
-      &n