[INTL] Add PerformanceTests for Intl objects
[WebKit-https.git] / PerformanceTests / ChangeLog
index 814537e..9e385a8 100644 (file)
+2017-05-04  Andy VanWagoner  <thetalecrafter@gmail.com>
+
+        [INTL] Add PerformanceTests for Intl objects
+        https://bugs.webkit.org/show_bug.cgi?id=171695
+
+        Reviewed by Benjamin Poulain.
+
+        * 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.
+
+2017-04-27  Michael Saboff  <msaboff@apple.com>
+
+        Add back tests inadvertently deleted in r205032.
+
+        Rubber stamped by Geoffrey Garen.
+
+        * MallocBench/run-malloc-benchmarks:
+
+2017-04-25  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        Add performance test for FontCache::systemFallbackForCharacters()
+        https://bugs.webkit.org/show_bug.cgi?id=170842
+
+        Reviewed by Tim Horton.
+
+        * Layout/word-joiner.html: Added.
+
+2017-04-24  Saam Barati  <sbarati@apple.com>
+
+        Add ML to ARES6
+        https://bugs.webkit.org/show_bug.cgi?id=171206
+
+        Rubber stamped by Filip Pizlo.
+
+        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.
+
+        This test is failing on performance bots.
+
+        Reverted changeset:
+
+        "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
+
+2017-04-14  Myles C. Maxfield  <mmaxfield@apple.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
+
+        Reviewed by Tim Horton.
+
+        * 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
+
+        Reviewed by Simon Fraser.
+
+        * Layout/ArabicLineLayout-pre-and-wrap.html: Added.
+
+2017-03-08  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        [JSC] Add helpers to run Six Speed to run-jsc-benchmarks
+        https://bugs.webkit.org/show_bug.cgi?id=169351
+
+        Reviewed by Saam Barati.
+
+        * SixSpeed/wrappers/wrapper.js: Added.
+        (assertEqual):
+        (test):
+        (jscRun):
+
+2017-03-08  Jon Davis  <jond@apple.com>
+
+        Fixed ARES-6 animations for other browsers
+
+        Rubber stamped by Saam Barati.
+
+        * ARES-6/styles.css:
+        (.swoop):
+        (.logo):
+
+2017-03-07  Filip Pizlo  <fpizlo@apple.com>
+
+        Revise the ARES-6 explainer text
+        https://bugs.webkit.org/show_bug.cgi?id=169287
+
+        Reviewed by Saam Barati.
+        
+        Just did some copy-editing.
+
+        * ARES-6/about.html:
+
+2017-03-06  Jon Davis  <jond@apple.com>
+
+        Refined the ARES-6 experience
+        https://bugs.webkit.org/show_bug.cgi?id=169205
+
+        Reviewed by Saam Barati.
+
+        * 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
+
+        Reviewed by Simon Fraser.
+
+        * Layout/simple-line-layout-with-varying-content-and-optimized-speed.html: Added.
+
+2017-02-10  Zalan Bujtas  <zalan@apple.com>
+
+        Mail hangs when removing multiple rows from large table.
+        https://bugs.webkit.org/show_bug.cgi?id=168103
+        <rdar://problem/30090186>
+
+        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>
+
+        Playback stalls when a SourceBuffer append causes frame eviction
+        https://bugs.webkit.org/show_bug.cgi?id=167834
+
+        Reviewed by Eric Carlson.
+
+        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.
+
+        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.
+
+        * 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>
+
+        Make ARES-6 work from the CLI again
+        https://bugs.webkit.org/show_bug.cgi?id=167895
+
+        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):
+
+2017-02-06  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Skip ARES-6 on performance bots
+        https://bugs.webkit.org/show_bug.cgi?id=167863
+
+        Unreviewed test gardening.
+
+        ES6SampleBench was renamed to ARES-6, so this should be updated in PerformanceTests/Skipped as well.
+
+        * Skipped:
+
+2017-02-05  Filip Pizlo  <fpizlo@apple.com>
+
+        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>
+
+        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>
+
+        Add a PerfTest targeting IDBIndex.get().
+        https://bugs.webkit.org/show_bug.cgi?id=165803
+
+        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>
+
+        Unreviewed, rolling out r209672.
+        https://bugs.webkit.org/show_bug.cgi?id=165766
+
+        IndexedDB/objectstore-cursor.html perf test always times out
+        (Requested by ap on #webkit).
+
+        Reverted changeset:
+
+        "More IndexedDB perf tests."
+        https://bugs.webkit.org/show_bug.cgi?id=165634
+        http://trac.webkit.org/changeset/209672
+
+2016-12-10  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.
+        
+        * 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>
+
+        Add an IndexedDB perf test to PerformanceTests.
+        https://bugs.webkit.org/show_bug.cgi?id=165430
+
+        Reviewed by Alex Christensen.
+
+        * IndexedDB/index-multientry.html: Added.
+
+2016-12-02  Filip Pizlo  <fpizlo@apple.com>
+
+        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
+
+        Reviewed by Saam Barati.
+
+        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>
+
+        Unreviewed, revert unintended change.
+
+        * ES6SampleBench/Air/benchmark.js:
+
+2016-10-03  Saam Barati  <sbarati@apple.com>
+
+        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
+
+        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