523e35a0e1244c6d4b001159a11ecff833548af0
[WebKit-https.git] / PerformanceTests / ChangeLog
1 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
2
3         Speedometer: Update the Flight.js implementation to a more recent library version
4         https://bugs.webkit.org/show_bug.cgi?id=171471
5
6         Reviewed by Ryosuke Niwa.
7
8         Speedometer: Update FlightJS TodoMVC implementation
9
10         * Speedometer/resources/todomvc/dependency-examples/flight/.gitignore: Removed.
11         * Speedometer/resources/todomvc/dependency-examples/flight/.jshintrc: Removed.
12         * Speedometer/resources/todomvc/dependency-examples/flight/app/js/main.js: Removed.
13         * Speedometer/resources/todomvc/dependency-examples/flight/app/js/store.js: Removed.
14         * Speedometer/resources/todomvc/dependency-examples/flight/bower.json: Removed.
15         * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Removed.
16         * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Removed.
17         * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Removed.
18         * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Removed.
19         * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Removed.
20         * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Removed.
21         * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Removed.
22         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/data/stats.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/data/stats.js.
23         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/data/todos.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/data/todos.js.
24         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/main.js: Added.
25         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/page/app.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/app.js.
26         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/store.js: Added.
27         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/main_selector.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/main_selector.js.
28         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/new_item.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/new_item.js.
29         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/stats.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/stats.js.
30         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/todo_list.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/todo_list.js.
31         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/toggle_all.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/toggle_all.js.
32         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/with_filters.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/with_filters.js.
33         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/utils.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/utils.js.
34         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/templates/stats.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/templates/stats.html.
35         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/templates/todo.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/templates/todo.html.
36         * Speedometer/resources/todomvc/dependency-examples/flight/flight/index.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/index.html.
37         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/README.md: Added.
38         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/depot.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/depot/depot.js.
39         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/depot.min.js: Added.
40         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/package.json: Added.
41         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/LICENSE: Added.
42         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-sham.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-sham.js.
43         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-sham.min.js: Added.
44         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.js: Added.
45         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.min.js: Added.
46         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/LICENSE: Added.
47         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/index.js: Added.
48         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/advice.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/advice.js.
49         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/base.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/base.js.
50         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/component.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/component.js.
51         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/compose.js: Added.
52         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/debug.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/debug.js.
53         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/logger.js: Added.
54         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/registry.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/registry.js.
55         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/utils.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/utils.js.
56         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/README.md: Added.
57         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.js: Added.
58         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.min.js: Added.
59         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/package.json: Added.
60         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/memorystorage/memorystorage.js: Added.
61         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/LICENSE: Added.
62         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/README.md: Added.
63         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/bower.json: Added.
64         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/package.json: Added.
65         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/text.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text/text.js.
66         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/README.md: Added.
67         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/package.json: Added.
68         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/requirejs/require.js.
69         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/index.css: Added.
70         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/package.json: Added.
71         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/readme.md: Added.
72         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/base.css: Added.
73         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/base.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.js.
74         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/package.json: Added.
75         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/readme.md: Added.
76         * Speedometer/resources/todomvc/dependency-examples/flight/flight/package.json: Added.
77         * Speedometer/resources/todomvc/dependency-examples/flight/karma.conf.js: Removed.
78         * Speedometer/resources/todomvc/dependency-examples/flight/package.json: Removed.
79         * Speedometer/resources/todomvc/dependency-examples/flight/readme.md: Removed.
80         * Speedometer/resources/todomvc/dependency-examples/flight/test/.jshintrc: Removed.
81         * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Removed.
82         * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Removed.
83         * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Removed.
84         * Speedometer/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Removed.
85         * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Removed.
86         * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Removed.
87         * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Removed.
88         * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Removed.
89         * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Removed.
90         * Speedometer/resources/todomvc/dependency-examples/flight/test/test-main.js: Removed.
91
92 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
93
94         Speedometer: Update the AngularJS implementation to a more recent library version
95         https://bugs.webkit.org/show_bug.cgi?id=171307
96
97         Reviewed by Ryosuke Niwa.
98
99         Updates the AngularJS implementation of TodoMVC to 1.4.x
100
101         * Speedometer/resources/todomvc/architecture-examples/angularjs/bower.json: Removed.
102         * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Removed.
103         * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Removed.
104         * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Removed.
105         * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Removed.
106         * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Removed.
107         * Speedometer/resources/todomvc/architecture-examples/angularjs/index.html:
108         * Speedometer/resources/todomvc/architecture-examples/angularjs/js/app.js:
109         * Speedometer/resources/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js:
110         * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Removed.
111         * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js:
112         * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js:
113         * Speedometer/resources/todomvc/architecture-examples/angularjs/js/services/todoStorage.js:
114         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.js: Added.
115         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.js: Added.
116         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.js: Added.
117         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/index.css: Added.
118         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/package.json: Added.
119         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/readme.md: Added.
120         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.css: Added.
121         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.js: Added.
122         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/package.json: Added.
123         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/readme.md: Added.
124         * Speedometer/resources/todomvc/architecture-examples/angularjs/package.json: Added.
125         * Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md:
126         * Speedometer/resources/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Removed.
127         * Speedometer/resources/todomvc/architecture-examples/angularjs/test/package.json: Removed.
128         * Speedometer/resources/todomvc/architecture-examples/angularjs/test/readme.md: Removed.
129         * Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Removed.
130         * Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Removed.
131         * Speedometer/resources/todomvc/architecture-examples/angularjs/todomvc-index.html: Added.
132
133 2017-05-09  Jon Davis  <jond@apple.com>
134
135         [ARES6] Improved the running test indicator
136         https://bugs.webkit.org/show_bug.cgi?id=171400
137         
138         Running tests show a triangle before the test title and the titles are white.
139
140         Reviewed by Joseph Pecoraro.
141
142         * ARES-6/index.html:
143         * ARES-6/styles.css:
144         (.test .running):
145         (.test .running:before):
146         (.test .indicator): Deleted.
147         (.test .indicator.running): Deleted.
148         (@keyframes test-running): Deleted.
149
150 2017-05-04  Andy VanWagoner  <thetalecrafter@gmail.com>
151
152         [INTL] Add PerformanceTests for Intl objects
153         https://bugs.webkit.org/show_bug.cgi?id=171695
154
155         Reviewed by Benjamin Poulain.
156
157         * Intl/collator-compare-all-options.html: Added.
158         * Intl/collator-compare-default.html: Added.
159         * Intl/collator-create-all-options.html: Added.
160         * Intl/collator-create-default.html: Added.
161         * Intl/datetimeformat-create-all-options.html: Added.
162         * Intl/datetimeformat-create-default.html: Added.
163         * Intl/datetimeformat-format-all-options.html: Added.
164         * Intl/datetimeformat-format-default.html: Added.
165         * Intl/numberformat-create-all-options.html: Added.
166         * Intl/numberformat-create-default.html: Added.
167         * Intl/numberformat-format-all-options.html: Added.
168         * Intl/numberformat-format-default.html: Added.
169
170 2017-04-27  Michael Saboff  <msaboff@apple.com>
171
172         Add back tests inadvertently deleted in r205032.
173
174         Rubber stamped by Geoffrey Garen.
175
176         * MallocBench/run-malloc-benchmarks:
177
178 2017-04-25  Myles C. Maxfield  <mmaxfield@apple.com>
179
180         Add performance test for FontCache::systemFallbackForCharacters()
181         https://bugs.webkit.org/show_bug.cgi?id=170842
182
183         Reviewed by Tim Horton.
184
185         * Layout/word-joiner.html: Added.
186
187 2017-04-24  Saam Barati  <sbarati@apple.com>
188
189         Add ML to ARES6
190         https://bugs.webkit.org/show_bug.cgi?id=171206
191
192         Rubber stamped by Filip Pizlo.
193
194         This patch adds a new test to ARES6 called ML. ML is an implementation of
195         a feedforward neural network: https://github.com/mljs/feedforward-neural-networks.
196         It makes heavy use of classes, and does non-trivial matrix math using the
197         ml-matrix library: https://github.com/mljs/matrix
198
199         * ARES-6/about.html:
200         * ARES-6/cli.js:
201         * ARES-6/glue.js:
202         * ARES-6/index.html:
203         * ARES-6/ml: Added.
204         * ARES-6/ml/benchmark.js: Added.
205         * ARES-6/ml/index.js: Added.
206         * ARES-6/ml_benchmark.js: Added.
207
208 2017-04-21  Zalan Bujtas  <zalan@apple.com>
209
210         Simple line layout: Add performance test to measure mid-word line breaking with long text.
211         https://bugs.webkit.org/show_bug.cgi?id=171136
212
213         Reviewed by Ryosuke Niwa.
214
215         * Layout/simple-line-layout-word-break-long-text.html: Added.
216
217 2017-04-17  Ryan Haddad  <ryanhaddad@apple.com>
218
219         Unreviewed, rolling out r215366.
220
221         This test is failing on performance bots.
222
223         Reverted changeset:
224
225         "Add performance test for asking the platform for a font for
226         U+2060 WORD JOINER"
227         https://bugs.webkit.org/show_bug.cgi?id=170842
228         http://trac.webkit.org/changeset/215366
229
230 2017-04-14  Myles C. Maxfield  <mmaxfield@apple.com>
231
232         Add performance test for asking the platform for a font for U+2060 WORD JOINER
233         https://bugs.webkit.org/show_bug.cgi?id=170842
234
235         Reviewed by Tim Horton.
236
237         * Layout/word-joiner.html: Added.
238
239 2017-04-03  Saam Barati  <sbarati@apple.com>
240
241         Add a new test to ARES6
242         https://bugs.webkit.org/show_bug.cgi?id=170077
243
244         Rubber stamped by Filip Pizlo.
245
246         This patch adds a new test to ARES6. The test is called Babylon. Babylon is
247         the JavaScript parser that is part of the Babel transpiler. The test runs
248         the parser on 4 different JS scripts.
249
250         * ARES-6/Babylon: Added.
251         * ARES-6/Babylon/AUTHORS: Added.
252         * ARES-6/Babylon/air-blob.js: Added.
253         (Reg):
254         (Reg.fromReg):
255         (Reg.prototype.get index):
256         (Reg.prototype.get type):
257         (Reg.prototype.get name):
258         (Reg.prototype.get isCalleeSave):
259         (Reg.prototype.get isReg):
260         (Reg.prototype.hash):
261         (Reg.prototype.toString):
262         (Reg.extract):
263         (Reg.forEachFast):
264         (Reg.forEach):
265         (newGPR):
266         (Reg.gprs.Reg.fprs.Reg.calleeSaveGPRs.Reg.calleeSaveFPRs.Reg.calleeSaves):
267         * ARES-6/Babylon/babylon-blob.js: Added.
268         (export.default.Parser):
269         (export.default.Parser.prototype.isReservedWord):
270         (export.default.Parser.prototype.hasPlugin):
271         (export.default.Parser.prototype.extend):
272         (export.default.Parser.prototype.loadPlugins):
273         (export.default.Parser.prototype.parse):
274         * ARES-6/Babylon/basic-blob.js: Added.
275         (Basic.NumberApply):
276         (Basic.Variable):
277         (Basic.Const):
278         (Basic.NumberPow):
279         (Basic.NumberMul):
280         (Basic.NumberDiv):
281         (Basic.NumberNeg):
282         (Basic.NumberAdd):
283         (Basic.NumberSub):
284         (Basic.StringVar):
285         (Basic.Equals):
286         (Basic.NotEquals):
287         (Basic.LessThan):
288         (Basic.GreaterThan):
289         (Basic.LessEqual):
290         (Basic.GreaterEqual):
291         (Basic.GoTo):
292         (Basic.GoSub):
293         (Basic.Def):
294         (Basic.Let):
295         (Basic.If):
296         (Basic.Return):
297         (Basic.Stop):
298         (Basic.On):
299         (sideState.shouldStop):
300         (Basic.For):
301         (Basic.Next):
302         (Basic.Print):
303         (Basic.Input):
304         (Basic.Read):
305         (Basic.Restore):
306         (Basic.Dim):
307         (Basic.Randomize):
308         (Basic.End):
309         (Basic.Program):
310         * ARES-6/Babylon/benchmark.js: Added.
311         (this.performance.performance.now.currentTime):
312         (else.this.preciseTime.currentTime):
313         (else.currentTime):
314         (BabylonBenchmark.appendSource):
315         (BabylonBenchmark):
316         (BabylonBenchmark.prototype.runIteration.parse):
317         (BabylonBenchmark.prototype.runIteration.parseExpression):
318         (BabylonBenchmark.prototype.runIteration):
319         (runBenchmark):
320         * ARES-6/Babylon/index.js: Added.
321         (isIdentifierStart):
322         (isIdentifierChar):
323         (isNewLine):
324         (Position):
325         (SourceLocation):
326         (getLineInfo):
327         (TokenType):
328         (KeywordTokenType):
329         (BinopTokenType):
330         (TokContext):
331         (tt.parenR.updateContext.tt.braceR.updateContext):
332         (tt.name.updateContext):
333         (tt.braceL.updateContext):
334         (tt.dollarBraceL.updateContext):
335         (tt.parenL.updateContext):
336         (tt.incDec.updateContext):
337         (tt._function.updateContext):
338         (tt.backQuote.updateContext):
339         (State.prototype.init):
340         (State.prototype.curPosition):
341         (State.prototype.clone):
342         (State):
343         (Token):
344         (codePointToString):
345         (Tokenizer):
346         (Tokenizer.prototype.next):
347         (Tokenizer.prototype.eat):
348         (Tokenizer.prototype.match):
349         (Tokenizer.prototype.isKeyword):
350         (Tokenizer.prototype.lookahead):
351         (Tokenizer.prototype.setStrict):
352         (Tokenizer.prototype.curContext):
353         (Tokenizer.prototype.nextToken):
354         (Tokenizer.prototype.readToken):
355         (Tokenizer.prototype.fullCharCodeAtPos):
356         (Tokenizer.prototype.pushComment):
357         (Tokenizer.prototype.skipBlockComment):
358         (Tokenizer.prototype.skipLineComment):
359         (Tokenizer.prototype.skipSpace):
360         (Tokenizer.prototype.finishToken):
361         (Tokenizer.prototype.readToken_dot):
362         (Tokenizer.prototype.readToken_slash):
363         (Tokenizer.prototype.readToken_mult_modulo):
364         (Tokenizer.prototype.readToken_pipe_amp):
365         (Tokenizer.prototype.readToken_caret):
366         (Tokenizer.prototype.readToken_plus_min):
367         (Tokenizer.prototype.readToken_lt_gt):
368         (Tokenizer.prototype.readToken_eq_excl):
369         (Tokenizer.prototype.getTokenFromCode):
370         (Tokenizer.prototype.finishOp):
371         (Tokenizer.prototype.readRegexp):
372         (Tokenizer.prototype.readInt):
373         (Tokenizer.prototype.readRadixNumber):
374         (Tokenizer.prototype.readNumber):
375         (Tokenizer.prototype.readCodePoint):
376         (Tokenizer.prototype.readString):
377         (Tokenizer.prototype.readTmplToken):
378         (Tokenizer.prototype.readEscapedChar):
379         (Tokenizer.prototype.readHexChar):
380         (Tokenizer.prototype.readWord1):
381         (Tokenizer.prototype.readWord):
382         (Tokenizer.prototype.braceIsBlock):
383         (Tokenizer.prototype.updateContext):
384         (getOptions):
385         (prototype.isReservedWord):
386         (prototype.hasPlugin):
387         (prototype.extend):
388         (prototype.loadPlugins):
389         (prototype.parse):
390         (last):
391         (pp.addComment):
392         (pp.processComment):
393         (pp.checkPropClash):
394         (pp.getExpression):
395         (pp.parseExpression):
396         (pp.parseMaybeAssign):
397         (pos.set i):
398         * ARES-6/Babylon/inspector-blob.js: Added.
399         (WebInspector.ScriptSyntaxTree):
400         (WebInspector.ScriptSyntaxTree.prototype.get parsedSuccessfully):
401         (WebInspector.ScriptSyntaxTree.prototype.forEachNode):
402         (WebInspector.ScriptSyntaxTree.prototype.filter):
403         (WebInspector.ScriptSyntaxTree.prototype.containersOfOffset):
404         (WebInspector.ScriptSyntaxTree.prototype.filterByRange.filterForNodesInRange):
405         (WebInspector.ScriptSyntaxTree.prototype.filterByRange):
406         (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement.removeFunctionsFilter):
407         (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
408         (WebInspector.ScriptSyntaxTree.functionReturnDivot):
409         (WebInspector.ScriptSyntaxTree.prototype.updateTypes):
410         (WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration.gatherIdentifiers):
411         (WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
412         (WebInspector.ScriptSyntaxTree.prototype._defaultParserState):
413         (WebInspector.ScriptSyntaxTree.prototype._recurse):
414         (WebInspector.ScriptSyntaxTree.prototype._recurseArray):
415         (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
416         * ARES-6/about.html:
417         * ARES-6/babylon_benchmark.js: Added.
418         * ARES-6/cli.js:
419         * ARES-6/glue.js:
420         * ARES-6/index.html:
421         * ARES-6/results.js:
422         (Results.prototype.reportResult):
423         (Results.prototype.reportResult.averageAbovePercentile): Deleted.
424         * ARES-6/styles.css:
425         (.test):
426         (@media only screen and (max-width: 784px)):
427
428 2017-03-29  Zalan Bujtas <zalan@apple.com>
429
430         [Arabic text] Add whitespace preserve/word wrap performance test.
431         https://bugs.webkit.org/show_bug.cgi?id=170243
432
433         Reviewed by Simon Fraser.
434
435         * Layout/ArabicLineLayout-pre-and-wrap.html: Added.
436
437 2017-03-08  Yusuke Suzuki  <utatane.tea@gmail.com>
438
439         [JSC] Add helpers to run Six Speed to run-jsc-benchmarks
440         https://bugs.webkit.org/show_bug.cgi?id=169351
441
442         Reviewed by Saam Barati.
443
444         * SixSpeed/wrappers/wrapper.js: Added.
445         (assertEqual):
446         (test):
447         (jscRun):
448
449 2017-03-08  Jon Davis  <jond@apple.com>
450
451         Fixed ARES-6 animations for other browsers
452
453         Rubber stamped by Saam Barati.
454
455         * ARES-6/styles.css:
456         (.swoop):
457         (.logo):
458
459 2017-03-07  Filip Pizlo  <fpizlo@apple.com>
460
461         Revise the ARES-6 explainer text
462         https://bugs.webkit.org/show_bug.cgi?id=169287
463
464         Reviewed by Saam Barati.
465         
466         Just did some copy-editing.
467
468         * ARES-6/about.html:
469
470 2017-03-06  Jon Davis  <jond@apple.com>
471
472         Refined the ARES-6 experience
473         https://bugs.webkit.org/show_bug.cgi?id=169205
474
475         Reviewed by Saam Barati.
476
477         * ARES-6/about.html: Copied from PerformanceTests/ARES-6/index.html.
478         * ARES-6/driver.js:
479         (Driver.prototype.start):
480         (Driver.prototype._updateIterations):
481         (Driver):
482         * ARES-6/index.html:
483         * ARES-6/stats.js:
484         (Stats.prototype.toString.span.span):
485         * ARES-6/styles.css:
486         (body):
487         (.swoop):
488         (p):
489         (.logo):
490         (.start):
491         (.test):
492         (.test:nth-child(odd)):
493         (.overall):
494         (.about h2):
495         (.button):
496         (.button:hover):
497         (.button.return:before):
498         (@keyframes fade-in):
499         (@keyframes scale-in):
500         (@keyframes flicker-in):
501         (@keyframes wipe-in):
502         (.flip): Deleted.
503         (.testing, .about): Deleted.
504         (.testing): Deleted.
505         (.about): Deleted.
506         (#about:target): Deleted.
507
508 2017-03-06  Jeremy Jones  <jeremyj@apple.com>
509
510         StandardCanPlayThrough.html does not work on iOS.
511         https://bugs.webkit.org/show_bug.cgi?id=169207
512
513         Reviewed by Jer Noble.
514
515         On iOS only, add muted=true and autoplay=allowed. The loading policy on iOS requires these attributes to load enough
516         data to trigger canPlayThrough.
517
518         * Media/StandardCanPlayThrough.html:
519
520 2017-02-13  Zalan Bujtas <zalan@apple.com>
521
522         Simple line layout: Add performance test with text-rendering: optimizeSpeed
523         https://bugs.webkit.org/show_bug.cgi?id=168248
524
525         Reviewed by Simon Fraser.
526
527         * Layout/simple-line-layout-with-varying-content-and-optimized-speed.html: Added.
528
529 2017-02-10  Zalan Bujtas  <zalan@apple.com>
530
531         Mail hangs when removing multiple rows from large table.
532         https://bugs.webkit.org/show_bug.cgi?id=168103
533         <rdar://problem/30090186>
534
535         Reviewed by Ryosuke Niwa.
536
537         * DOM/large-table-edit.html: Added.
538
539 2017-02-05  Filip Pizlo  <fpizlo@apple.com>
540
541         Beef up the ARES-6 explainer text
542         https://bugs.webkit.org/show_bug.cgi?id=167867
543
544         Reviewed by Saam Barati.
545         
546         Added appropriate links.
547
548         Added text that explains the subscores.
549
550         * ARES-6/index.html:
551
552 2017-02-06  Jer Noble  <jer.noble@apple.com>
553
554         Playback stalls when a SourceBuffer append causes frame eviction
555         https://bugs.webkit.org/show_bug.cgi?id=167834
556
557         Reviewed by Eric Carlson.
558
559         Add an in-page performance test measuring the amount of time required
560         to append a large amount of media data to a SourceBuffer, and then to
561         completely remove that data 30s at a time.
562
563         Add a microbenchmark for MediaTime which measures the amount of time
564         required to create a 1M entry std::map and traverse the map 1M times.
565
566         * Media/MSERemoveCodedFrames.html: Added.
567         * Media/media-source-loader.js:
568         (MediaSourceLoader.prototype.get duration):
569         * MediaTime/Configurations/Base.xcconfig: Added.
570         * MediaTime/Configurations/DebugRelease.xcconfig: Added.
571         * MediaTime/Makefile: Added.
572         * MediaTime/MediaTime.xcodeproj/project.pbxproj: Added.
573         * MediaTime/main.cpp: Added.
574         (performTest):
575         (test):
576         (main):
577         * Skipped:
578
579 2017-02-06  Saam Barati  <sbarati@apple.com>
580
581         Make ARES-6 work from the CLI again
582         https://bugs.webkit.org/show_bug.cgi?id=167895
583
584         Reviewed by Michael Saboff.
585
586         * ARES-6/driver.js:
587         (Driver.prototype.readyTrigger):
588         (Driver.prototype.disableTrigger):
589         * ARES-6/stats.js:
590         (Stats.prototype.toString.span.span):
591         (Stats.prototype.toString.return.span):
592         (Stats.prototype.toString):
593
594 2017-02-06  Ryan Haddad  <ryanhaddad@apple.com>
595
596         Skip ARES-6 on performance bots
597         https://bugs.webkit.org/show_bug.cgi?id=167863
598
599         Unreviewed test gardening.
600
601         ES6SampleBench was renamed to ARES-6, so this should be updated in PerformanceTests/Skipped as well.
602
603         * Skipped:
604
605 2017-02-05  Filip Pizlo  <fpizlo@apple.com>
606
607         Change ES6SampleBench into ARES-6
608         https://bugs.webkit.org/show_bug.cgi?id=167863
609
610         Rubber stamped by Saam Barati.
611         
612         This imports changes that Jonathan Davis (jond@apple.com) made to ES6SampleBench to make it look
613         super awesome. Its now called ARES-6.
614
615         * ARES-6: Copied from PerformanceTests/ES6SampleBench.
616         * ARES-6/ARES-6.svg: Added.
617         * ARES-6/driver.js:
618         (Driver):
619         (Driver.prototype.readyTrigger):
620         (Driver.prototype.disableTrigger):
621         (Driver.prototype.start):
622         (Driver.prototype._updateIterations):
623         * ARES-6/glue.js:
624         * ARES-6/index.html:
625         * ARES-6/results.js:
626         (Results.prototype.reportRunning):
627         (Results.prototype.reportDone):
628         * ARES-6/stats.js:
629         (Stats.prototype.toString.return.span):
630         (Stats.prototype.toString.span.span):
631         (Stats.prototype.toString): Deleted.
632         * ARES-6/style.css: Removed.
633         * ARES-6/styles.css: Added.
634         (html):
635         (body):
636         (header,):
637         (p a):
638         (p a:hover):
639         (.flip):
640         (header):
641         (h2,):
642         (p):
643         (.about h2):
644         (.logo):
645         (.start):
646         (.start.ready):
647         (.start.ready:hover):
648         (.start:after):
649         (.start.ready .testrun):
650         (.tests):
651         (.test):
652         (.overall h2,):
653         (.test .indicator):
654         (.test .indicator.running):
655         (@keyframes test-running):
656         (100%):
657         (.score):
658         (.score label):
659         (.score .value):
660         (.score .units):
661         (.score .margin):
662         (.overall):
663         (.overall .score):
664         (.overall .margin):
665         (.testing, .about):
666         (.testing):
667         (.about):
668         (#about:target):
669         (@media only screen and (max-width: 784px)):
670         * ARES-6/swoop.svg: Added.
671         * ES6SampleBench: Removed.
672         * ES6SampleBench/Air: Removed.
673         * ES6SampleBench/Air/README.md: Removed.
674         * ES6SampleBench/Air/airjs-tests.yaml: Removed.
675         * ES6SampleBench/Air/all.js: Removed.
676         * ES6SampleBench/Air/allocate_stack.js: Removed.
677         * ES6SampleBench/Air/arg.js: Removed.
678         * ES6SampleBench/Air/basic_block.js: Removed.
679         * ES6SampleBench/Air/benchmark.js: Removed.
680         * ES6SampleBench/Air/code.js: Removed.
681         * ES6SampleBench/Air/custom.js: Removed.
682         * ES6SampleBench/Air/frequented_block.js: Removed.
683         * ES6SampleBench/Air/insertion_set.js: Removed.
684         * ES6SampleBench/Air/inst.js: Removed.
685         * ES6SampleBench/Air/liveness.js: Removed.
686         * ES6SampleBench/Air/make_dist.sh: Removed.
687         * ES6SampleBench/Air/opcode.js: Removed.
688         * ES6SampleBench/Air/payload-airjs-ACLj8C.js: Removed.
689         * ES6SampleBench/Air/payload-gbemu-executeIteration.js: Removed.
690         * ES6SampleBench/Air/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
691         * ES6SampleBench/Air/payload-typescript-scanIdentifier.js: Removed.
692         * ES6SampleBench/Air/reg.js: Removed.
693         * ES6SampleBench/Air/stack_slot.js: Removed.
694         * ES6SampleBench/Air/stress-test.js: Removed.
695         * ES6SampleBench/Air/strip-hash.rb: Removed.
696         * ES6SampleBench/Air/symbols.js: Removed.
697         * ES6SampleBench/Air/test.html: Removed.
698         * ES6SampleBench/Air/test.js: Removed.
699         * ES6SampleBench/Air/tmp.js: Removed.
700         * ES6SampleBench/Air/tmp_base.js: Removed.
701         * ES6SampleBench/Air/util.js: Removed.
702         * ES6SampleBench/Basic: Removed.
703         * ES6SampleBench/Basic/ast.js: Removed.
704         * ES6SampleBench/Basic/basic-tests.yaml: Removed.
705         * ES6SampleBench/Basic/basic.js: Removed.
706         * ES6SampleBench/Basic/benchmark.js: Removed.
707         * ES6SampleBench/Basic/caseless_map.js: Removed.
708         * ES6SampleBench/Basic/lexer.js: Removed.
709         * ES6SampleBench/Basic/number.js: Removed.
710         * ES6SampleBench/Basic/parser.js: Removed.
711         * ES6SampleBench/Basic/random.js: Removed.
712         * ES6SampleBench/Basic/state.js: Removed.
713         * ES6SampleBench/Basic/stress-test.js: Removed.
714         * ES6SampleBench/Basic/test.html: Removed.
715         * ES6SampleBench/Basic/test.js: Removed.
716         * ES6SampleBench/Basic/util.js: Removed.
717         * ES6SampleBench/air_benchmark.js: Removed.
718         * ES6SampleBench/basic_benchmark.js: Removed.
719         * ES6SampleBench/cli.js: Removed.
720         * ES6SampleBench/driver.js: Removed.
721         * ES6SampleBench/glue.js: Removed.
722         * ES6SampleBench/index.html: Removed.
723         * ES6SampleBench/results.js: Removed.
724         * ES6SampleBench/stats.js: Removed.
725         * ES6SampleBench/style.css: Removed.
726
727 2017-02-05  Zalan Bujtas  <zalan@apple.com>
728
729         Simple line layout: Add performance test with varying string and font-size to minimize width-cache hit.
730         https://bugs.webkit.org/show_bug.cgi?id=167859
731         <rdar://problem/30368070>
732
733         Reviewed by Antti Koivisto.
734
735         This is in preparation for webkit.org/b/167843.
736
737         * Layout/simple-line-layout-with-varying-content.html: Added.
738
739 2017-01-16  Filip Pizlo  <fpizlo@apple.com>
740
741         Add framerate baselines to the splay-detail test
742         https://bugs.webkit.org/show_bug.cgi?id=167659
743
744         Reviewed by Geoffrey Garen.
745
746         * JetStream/Octane2/splay-detail.html:
747
748 2017-01-31  Carlos Alberto Lopez Perez  <clopez@igalia.com>
749
750         [EFL][GTK] Skip some IndexedDB tests that time out on the Perf bots.
751
752         Unreviewed performance test gardening.
753
754         * Skipped:
755
756 2017-01-30  Zalan Bujtas  <zalan@apple.com>
757
758         Simple line layout: Small tweaks to improve performance.
759         https://bugs.webkit.org/show_bug.cgi?id=167611
760         <rdar://problem/30274294>
761
762         Reviewed by Simon Fraser.
763
764         * Layout/simple-line-layout-non-repeating-text.html: Added.
765
766 2017-01-13  Said Abou-Hallawa  <sabouhallawa@apple.com>
767
768         26 MotionMark performance tests failing
769         https://bugs.webkit.org/show_bug.cgi?id=166854
770
771         Reviewed by Ryosuke Niwa.
772         
773         Skip running MotionMark on WebKit perf bots.
774
775         * Skipped:
776
777 2017-01-06  Said Abou-Hallawa  <sabouhallawa@apple.com>
778
779         Rename the directory and the files of MotionMark from Animometer to MotionMark
780         https://bugs.webkit.org/show_bug.cgi?id=166659
781
782         Reviewed by Jon Lee.
783         
784         Rename the directory and the files of the benchmark to its new name.
785
786         * MotionMark/developer.html: Renamed from PerformanceTests/Animometer/developer.html.
787         * MotionMark/index.html: Renamed from PerformanceTests/Animometer/index.html.
788         * MotionMark/resources/debug-runner/d3.min.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/d3.min.js.
789         * MotionMark/resources/debug-runner/graph.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/graph.js.
790         * MotionMark/resources/debug-runner/motionmark.css: Renamed from PerformanceTests/Animometer/resources/debug-runner/animometer.css.
791         * MotionMark/resources/debug-runner/motionmark.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/animometer.js.
792         * MotionMark/resources/debug-runner/tests.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/tests.js.
793         * MotionMark/resources/extensions.js: Renamed from PerformanceTests/Animometer/resources/extensions.js.
794         * MotionMark/resources/runner/benchmark-runner.js: Renamed from PerformanceTests/Animometer/resources/runner/benchmark-runner.js.
795         * MotionMark/resources/runner/crystal.svg: Renamed from PerformanceTests/Animometer/resources/runner/crystal.svg.
796         * MotionMark/resources/runner/lines.svg: Renamed from PerformanceTests/Animometer/resources/runner/lines.svg.
797         * MotionMark/resources/runner/logo.svg: Renamed from PerformanceTests/Animometer/resources/runner/logo.svg.
798         * MotionMark/resources/runner/motionmark.css: Renamed from PerformanceTests/Animometer/resources/runner/animometer.css.
799         * MotionMark/resources/runner/motionmark.js: Renamed from PerformanceTests/Animometer/resources/runner/animometer.js.
800         * MotionMark/resources/runner/tests.js: Renamed from PerformanceTests/Animometer/resources/runner/tests.js.
801         * MotionMark/resources/statistics.js: Renamed from PerformanceTests/Animometer/resources/statistics.js.
802         * MotionMark/resources/strings.js: Renamed from PerformanceTests/Animometer/resources/strings.js.
803         * MotionMark/tests/3d/resources/webgl.js: Renamed from PerformanceTests/Animometer/tests/3d/resources/webgl.js.
804         * MotionMark/tests/3d/webgl.html: Renamed from PerformanceTests/Animometer/tests/3d/webgl.html.
805         * MotionMark/tests/bouncing-particles/bouncing-canvas-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-canvas-images.html.
806         * MotionMark/tests/bouncing-particles/bouncing-canvas-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html.
807         * MotionMark/tests/bouncing-particles/bouncing-css-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-css-images.html.
808         * MotionMark/tests/bouncing-particles/bouncing-css-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-css-shapes.html.
809         * MotionMark/tests/bouncing-particles/bouncing-svg-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-svg-images.html.
810         * MotionMark/tests/bouncing-particles/bouncing-svg-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-svg-shapes.html.
811         * MotionMark/tests/bouncing-particles/bouncing-tagged-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-tagged-images.html.
812         * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js.
813         * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js.
814         * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js.
815         * MotionMark/tests/bouncing-particles/resources/bouncing-css-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-css-images.js.
816         * MotionMark/tests/bouncing-particles/resources/bouncing-css-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js.
817         * MotionMark/tests/bouncing-particles/resources/bouncing-svg-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js.
818         * MotionMark/tests/bouncing-particles/resources/bouncing-svg-particles.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js.
819         * MotionMark/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js.
820         * MotionMark/tests/bouncing-particles/resources/bouncing-tagged-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-tagged-images.js.
821         * MotionMark/tests/bouncing-particles/resources/image1.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image1.jpg.
822         * MotionMark/tests/bouncing-particles/resources/image2.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image2.jpg.
823         * MotionMark/tests/bouncing-particles/resources/image3.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image3.jpg.
824         * MotionMark/tests/bouncing-particles/resources/image4.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image4.jpg.
825         * MotionMark/tests/bouncing-particles/resources/image5.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image5.jpg.
826         * MotionMark/tests/dom/compositing-transforms.html: Renamed from PerformanceTests/Animometer/tests/dom/compositing-transforms.html.
827         * MotionMark/tests/dom/focus.html: Renamed from PerformanceTests/Animometer/tests/dom/focus.html.
828         * MotionMark/tests/dom/leaves.html: Renamed from PerformanceTests/Animometer/tests/dom/leaves.html.
829         * MotionMark/tests/dom/particles.html: Renamed from PerformanceTests/Animometer/tests/dom/particles.html.
830         * MotionMark/tests/dom/resources/compositing-transforms.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/compositing-transforms.js.
831         * MotionMark/tests/dom/resources/dom-particles.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/dom-particles.js.
832         * MotionMark/tests/dom/resources/focus.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/focus.js.
833         * MotionMark/tests/dom/resources/leaves.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/leaves.js.
834         * MotionMark/tests/master/canvas-stage.html: Renamed from PerformanceTests/Animometer/tests/master/canvas-stage.html.
835         * MotionMark/tests/master/focus.html: Renamed from PerformanceTests/Animometer/tests/master/focus.html.
836         * MotionMark/tests/master/image-data.html: Renamed from PerformanceTests/Animometer/tests/master/image-data.html.
837         * MotionMark/tests/master/leaves.html: Renamed from PerformanceTests/Animometer/tests/master/leaves.html.
838         * MotionMark/tests/master/multiply.html: Renamed from PerformanceTests/Animometer/tests/master/multiply.html.
839         * MotionMark/tests/master/resources/canvas-stage.js: Renamed from PerformanceTests/Animometer/tests/master/resources/canvas-stage.js.
840         * MotionMark/tests/master/resources/canvas-tests.js: Renamed from PerformanceTests/Animometer/tests/master/resources/canvas-tests.js.
841         * MotionMark/tests/master/resources/compass.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/compass.svg.
842         * MotionMark/tests/master/resources/compass100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/compass100.png.
843         * MotionMark/tests/master/resources/console.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/console.svg.
844         * MotionMark/tests/master/resources/console100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/console100.png.
845         * MotionMark/tests/master/resources/contribute.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/contribute.svg.
846         * MotionMark/tests/master/resources/contribute100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/contribute100.png.
847         * MotionMark/tests/master/resources/debugger.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/debugger.svg.
848         * MotionMark/tests/master/resources/debugger100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/debugger100.png.
849         * MotionMark/tests/master/resources/focus.js: Renamed from PerformanceTests/Animometer/tests/master/resources/focus.js.
850         * MotionMark/tests/master/resources/image-data.js: Renamed from PerformanceTests/Animometer/tests/master/resources/image-data.js.
851         * MotionMark/tests/master/resources/inspector.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/inspector.svg.
852         * MotionMark/tests/master/resources/inspector100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/inspector100.png.
853         * MotionMark/tests/master/resources/layout.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/layout.svg.
854         * MotionMark/tests/master/resources/layout100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/layout100.png.
855         * MotionMark/tests/master/resources/leaves.js: Renamed from PerformanceTests/Animometer/tests/master/resources/leaves.js.
856         * MotionMark/tests/master/resources/multiply.js: Renamed from PerformanceTests/Animometer/tests/master/resources/multiply.js.
857         * MotionMark/tests/master/resources/particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/particles.js.
858         * MotionMark/tests/master/resources/performance.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/performance.svg.
859         * MotionMark/tests/master/resources/performance100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/performance100.png.
860         * MotionMark/tests/master/resources/script.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/script.svg.
861         * MotionMark/tests/master/resources/script100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/script100.png.
862         * MotionMark/tests/master/resources/shortcuts.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/shortcuts.svg.
863         * MotionMark/tests/master/resources/shortcuts100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/shortcuts100.png.
864         * MotionMark/tests/master/resources/standards.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/standards.svg.
865         * MotionMark/tests/master/resources/standards100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/standards100.png.
866         * MotionMark/tests/master/resources/storage.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/storage.svg.
867         * MotionMark/tests/master/resources/storage100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/storage100.png.
868         * MotionMark/tests/master/resources/styles.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/styles.svg.
869         * MotionMark/tests/master/resources/styles100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/styles100.png.
870         * MotionMark/tests/master/resources/svg-particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/svg-particles.js.
871         * MotionMark/tests/master/resources/text.js: Renamed from PerformanceTests/Animometer/tests/master/resources/text.js.
872         * MotionMark/tests/master/resources/timeline.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/timeline.svg.
873         * MotionMark/tests/master/resources/timeline100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/timeline100.png.
874         * MotionMark/tests/master/svg-particles.html: Renamed from PerformanceTests/Animometer/tests/master/svg-particles.html.
875         * MotionMark/tests/master/text.html: Renamed from PerformanceTests/Animometer/tests/master/text.html.
876         * MotionMark/tests/resources/main.js: Renamed from PerformanceTests/Animometer/tests/resources/main.js.
877         * MotionMark/tests/resources/math.js: Renamed from PerformanceTests/Animometer/tests/resources/math.js.
878         * MotionMark/tests/resources/stage.css: Renamed from PerformanceTests/Animometer/tests/resources/stage.css.
879         * MotionMark/tests/resources/star.svg: Renamed from PerformanceTests/Animometer/tests/resources/star.svg.
880         * MotionMark/tests/resources/yin-yang.png: Renamed from PerformanceTests/Animometer/tests/resources/yin-yang.png.
881         * MotionMark/tests/resources/yin-yang.svg: Renamed from PerformanceTests/Animometer/tests/resources/yin-yang.svg.
882         * MotionMark/tests/simple/resources/simple-canvas-paths.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/simple-canvas-paths.js.
883         * MotionMark/tests/simple/resources/simple-canvas.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/simple-canvas.js.
884         * MotionMark/tests/simple/resources/tiled-canvas-image.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/tiled-canvas-image.js.
885         * MotionMark/tests/simple/simple-canvas-paths.html: Renamed from PerformanceTests/Animometer/tests/simple/simple-canvas-paths.html.
886         * MotionMark/tests/simple/tiled-canvas-image.html: Renamed from PerformanceTests/Animometer/tests/simple/tiled-canvas-image.html.
887         * MotionMark/tests/template/resources/template-canvas.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-canvas.js.
888         * MotionMark/tests/template/resources/template-css.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-css.js.
889         * MotionMark/tests/template/resources/template-svg.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-svg.js.
890         * MotionMark/tests/template/template-canvas.html: Renamed from PerformanceTests/Animometer/tests/template/template-canvas.html.
891         * MotionMark/tests/template/template-css.html: Renamed from PerformanceTests/Animometer/tests/template/template-css.html.
892         * MotionMark/tests/template/template-svg.html: Renamed from PerformanceTests/Animometer/tests/template/template-svg.html.
893
894 2016-12-13  Brady Eidson  <beidson@apple.com>
895
896         Add a PerfTest targeting IDBObjectStore.get().
897         https://bugs.webkit.org/show_bug.cgi?id=165816
898
899         Reviewed by Alex Christensen.
900
901         * IndexedDB/objectstore-get.html: Added.
902
903 2016-12-13  Brady Eidson  <beidson@apple.com>
904
905         Add a PerfTest targeting IDBIndex.get().
906         https://bugs.webkit.org/show_bug.cgi?id=165803
907
908         Reviewed by Alex Christensen.
909
910         * IndexedDB/index-get.html: Added.
911
912 2016-12-12  Brady Eidson  <beidson@apple.com>
913
914         More IndexedDB perf tests.
915         https://bugs.webkit.org/show_bug.cgi?id=165634
916
917         Reviewed by Sam Weinig.
918
919         * IndexedDB/index-multientry.html:
920         * IndexedDB/large-number-of-inserts-responsiveness.html: Added.
921         * IndexedDB/large-number-of-inserts.html: Added.
922         * IndexedDB/objectstore-cursor.html: Added. Runtime cut in 1/4th compared to r209672.
923
924         * resources/runner.js:
925
926 2016-12-12  Commit Queue  <commit-queue@webkit.org>
927
928         Unreviewed, rolling out r209672.
929         https://bugs.webkit.org/show_bug.cgi?id=165766
930
931         IndexedDB/objectstore-cursor.html perf test always times out
932         (Requested by ap on #webkit).
933
934         Reverted changeset:
935
936         "More IndexedDB perf tests."
937         https://bugs.webkit.org/show_bug.cgi?id=165634
938         http://trac.webkit.org/changeset/209672
939
940 2016-12-10  Brady Eidson  <beidson@apple.com>
941
942         More IndexedDB perf tests.
943         https://bugs.webkit.org/show_bug.cgi?id=165634
944
945         Reviewed by Sam Weinig.
946
947         * IndexedDB/index-multientry.html:
948         * IndexedDB/large-number-of-inserts-responsiveness.html: Added.
949         * IndexedDB/large-number-of-inserts.html: Added.
950         * IndexedDB/objectstore-cursor.html: Added.
951         
952         * resources/runner.js: Add "track responsiveness" functionality to PerfTestRunner.
953
954 2016-12-06  Filip Pizlo  <fpizlo@apple.com>
955
956         Concurrent GC should be stable enough to land enabled
957         https://bugs.webkit.org/show_bug.cgi?id=164990
958
959         Reviewed by Geoffrey Garen.
960         
961         Made CDjs more configurable and refined the "large.js" configuration. I was using that one and
962         the new "long.js" configuration to tune concurrent eden GCs.
963         
964         Added a new way of running Splay in browser, which using chartjs to plot the execution times of
965         2000 iterations. This includes the minified chartjs.
966
967         * JetStream/Octane2/splay-detail.html: Added.
968         * JetStream/cdjs/benchmark.js:
969         (benchmarkImpl):
970         (benchmark):
971         * JetStream/cdjs/long.js: Added.
972
973 2016-12-07  Brady Eidson  <beidson@apple.com>
974
975         Add IDB perf tests stressing key size.
976         https://bugs.webkit.org/show_bug.cgi?id=165567
977
978         Reviewed by Alex Christensen.
979
980         * IndexedDB/large-array-keys.html: Added.
981         * IndexedDB/large-binary-keys.html: Added.
982         * IndexedDB/large-string-keys.html: Added.
983
984 2016-12-05  Brady Eidson  <beidson@apple.com>
985
986         Add an IndexedDB perf test to PerformanceTests.
987         https://bugs.webkit.org/show_bug.cgi?id=165430
988
989         Reviewed by Alex Christensen.
990
991         * IndexedDB/index-multientry.html: Added.
992
993 2016-12-02  Filip Pizlo  <fpizlo@apple.com>
994
995         ES6SampleBench should report an average for Steady State so that all of the numbers are comparable
996         https://bugs.webkit.org/show_bug.cgi?id=165325
997
998         Reviewed by Saam Barati.
999
1000         This makes all of the numbers that ES6SampleBench reports comparable to each other: they all speak of the time
1001         it took to run an iteration of something.
1002
1003         * ES6SampleBench/results.js:
1004         (Results.prototype.reportResult):
1005
1006 2016-11-18  Jer Noble  <jer.noble@apple.com>
1007
1008         Add some performance tests for various aspects of media loading and playback.
1009         https://bugs.webkit.org/show_bug.cgi?id=164977
1010
1011         Reviewed by Darin Adler.
1012
1013         Add new tests for a few aspects of media playback; namely: how quickly  media elements fire
1014         the "canplaythrough" event when all data is immediately available, how quickly HLS playback
1015         switches resolutions, and at what playback rate MSE-backed video can play without dropping
1016         frames. Skip these tests by default, as they're not runnable on all ports, and they require
1017         a webserver (run-webkit-httpd) to complete on macOS.
1018
1019         * Media/HLSCanPlayThrough.html: Added.
1020         * Media/HLSGearChange.html: Added.
1021         * Media/MSECanPlayThrough.html: Added.
1022         * Media/MSEPlaybackRate.html: Added.
1023         * Media/StandardCanPlayThrough.html: Added.
1024         * Media/hls/1080p/iframe_index.m3u8: Added.
1025         * Media/hls/1080p/prog_index.m3u8: Added.
1026         * Media/hls/1080p/test.ts: Added.
1027         * Media/hls/480p/iframe_index.m3u8: Added.
1028         * Media/hls/480p/prog_index.m3u8: Added.
1029         * Media/hls/480p/test.ts: Added.
1030         * Media/hls/720p/iframe_index.m3u8: Added.
1031         * Media/hls/720p/prog_index.m3u8: Added.
1032         * Media/hls/720p/test.ts: Added.
1033         * Media/hls/720p/test.ts.back: Added.
1034         * Media/hls/index.m3u8: Added.
1035         * Media/media-source-loader.js: Added.
1036         (MediaSourceLoader):
1037         (MediaSourceLoader.prototype.loadManifest):
1038         (MediaSourceLoader.prototype.loadManifestSucceeded):
1039         (MediaSourceLoader.prototype.loadManifestFailed):
1040         (MediaSourceLoader.prototype.loadMediaData):
1041         (MediaSourceLoader.prototype.loadMediaDataSucceeded):
1042         (MediaSourceLoader.prototype.loadMediaDataFailed):
1043         (MediaSourceLoader.prototype.get type):
1044         (MediaSourceLoader.prototype.get duration):
1045         (MediaSourceLoader.prototype.get initSegment):
1046         (MediaSourceLoader.prototype.get mediaSegmentsLength):
1047         (MediaSourceLoader.prototype.mediaSegments):
1048         (MediaSourceLoader.prototype.get everyMediaSegment):
1049         * Media/test-fragmented-video.json: Added.
1050         * Media/test-fragmented-video.mp4: Added.
1051         * Media/test.mp4: Added.
1052         * Skipped:
1053
1054 2016-11-18  Filip Pizlo  <fpizlo@apple.com>
1055
1056         Concurrent GC should be able to run splay in debug mode and earley/raytrace in release mode with no perf regression
1057         https://bugs.webkit.org/show_bug.cgi?id=164282
1058
1059         Reviewed by Geoffrey Garen and Oliver Hunt.
1060         
1061         CDjs is a fun benchmark for stressing concurrent GCs, but to really give the GC a good
1062         workout you need to increase the amount of work that the test does. This adds a second
1063         configuration of the benchmark that has more aircraft. It uses much more memory and causes us
1064         to do more GCs and those GCs take longer.
1065
1066         * JetStream/cdjs/benchmark.js:
1067         (benchmarkImpl):
1068         (benchmark):
1069         * JetStream/cdjs/large.js: Added.
1070
1071 2016-11-14  Filip Pizlo  <fpizlo@apple.com>
1072
1073         Unreviewed, revert unintended change.
1074
1075         * ES6SampleBench/Air/benchmark.js:
1076
1077 2016-10-03  Saam Barati  <sbarati@apple.com>
1078
1079         MapHash should speculate on the type of its child node
1080         https://bugs.webkit.org/show_bug.cgi?id=161922
1081
1082         Reviewed by Filip Pizlo.
1083
1084         I gave the main generator a name so it's easier to see what
1085         it is when using the sampling profiler.
1086
1087         * ES6SampleBench/Basic/ast.js:
1088         (Basic.Program):
1089
1090 2016-09-19  Sergio Villar Senin  <svillar@igalia.com>
1091
1092         [css-grid] Remove the x2 computation of row sizes with indefinite heights
1093         https://bugs.webkit.org/show_bug.cgi?id=162150
1094
1095         Reviewed by Darin Adler.
1096
1097         Added a new test case which checks the layout performance of grids inside other grids, i.e,
1098         grids acting both as grid container and grid item.
1099
1100         * Layout/nested-grid.html: Added.
1101
1102 2016-09-09  Simon Fraser  <simon.fraser@apple.com>
1103
1104         Perf test Animation/css-accelerated-animation.html failing
1105         https://bugs.webkit.org/show_bug.cgi?id=161795
1106
1107         Skip Animation/css-accelerated-animation.html since this only works as a MobileSafari
1108         perf test.
1109
1110         * Skipped:
1111
1112 2016-09-08  Simon Fraser  <simon.fraser@apple.com>
1113
1114         Add a content-animation test with accelerated CSS animations
1115         https://bugs.webkit.org/show_bug.cgi?id=161776
1116
1117         Reviewed by Dean Jackson.
1118
1119         Add a test that measures the frame rate of accelerated CSS animations.
1120
1121         This is like css-animation.html (which animates 'left' and 'top') but animates
1122         transforms instead. In order to get animation in X and Y we make two nested elements
1123         and set transformX() on one, and transformY() on the other.
1124
1125         * Animation/css-accelerated-animation.html: Added.
1126
1127 2016-08-23  Saam Barati  <sbarati@apple.com>
1128
1129         It should be easy to run ES6SampleBench from the jsc shell
1130         https://bugs.webkit.org/show_bug.cgi?id=161085
1131
1132         Reviewed by Yusuke Suzuki.
1133
1134         This patch makes ES6 sample bench runnable through the `jsc` shell.
1135         To do that, you need to be in the PerformanceTests/ES6SampleBench
1136         directory and run `jsc cli.js`. To make this work, the benchmark
1137         is now aware of being run in two modes: via the browser, and via
1138         the shell. Each entry point will set a variable `isInBrowser`,
1139         and the benchmark will do different things based on if that
1140         variable is true or false.
1141
1142         * ES6SampleBench/Air/benchmark.js:
1143         * ES6SampleBench/Air/stress-test.js:
1144         * ES6SampleBench/Basic/benchmark.js:
1145         (runBenchmark):
1146         * ES6SampleBench/Basic/stress-test.js:
1147         * ES6SampleBench/air_benchmark.js:
1148         * ES6SampleBench/basic_benchmark.js:
1149         * ES6SampleBench/cli.js: Added.
1150         (return.doRun):
1151         (makeBenchmarkRunner):
1152         * ES6SampleBench/driver.js:
1153         (Driver):
1154         (Driver.prototype._recomputeSummary):
1155         (Driver.prototype._iterate.window.setTimeout):
1156         (Driver.prototype._iterate):
1157         (Driver.prototype._updateIterations):
1158         * ES6SampleBench/glue.js:
1159         (reportResult):
1160         * ES6SampleBench/index.html:
1161         * ES6SampleBench/results.js:
1162         (Results):
1163         (Results.prototype.reportRunning):
1164         (Results.prototype.reportDone):
1165         (Results.prototype.reportError):
1166         * ES6SampleBench/stats.js:
1167         (Stats):
1168         (Stats.prototype.toString):
1169         (Stats.prototype._update):
1170
1171 2016-08-01  Said Abou-Hallawa  <sabouhallawa@apple.com>
1172
1173         Add an option to run the MotionMark tests with classic tile size (512x512)
1174         https://bugs.webkit.org/show_bug.cgi?id=160371
1175
1176         Reviewed by Darin Adler.
1177
1178         Setting the body to large size (3000x3000) and overflow to scroll forces
1179         the classic tile size (512x512). This option does not affect the canvas
1180         tests because the canvas is displayed on one tile regardless of its size.
1181
1182         * Animometer/developer.html:
1183         * Animometer/resources/debug-runner/animometer.css:
1184         (body.showing-test-container.tiles-big):
1185         (body.showing-test-container.tiles-classic):
1186         * Animometer/resources/debug-runner/animometer.js:
1187         * Animometer/resources/runner/animometer.js:
1188         (window.benchmarkController.startBenchmark):
1189
1190 2016-06-29  Filip Pizlo  <fpizlo@apple.com>
1191
1192         Generators violate bytecode liveness validation
1193         https://bugs.webkit.org/show_bug.cgi?id=159279
1194
1195         Reviewed by Yusuke Suzuki.
1196
1197         Add Basic to our test harness.
1198
1199         Also made some cosmetic changes to the benchmark harness.
1200
1201         * ES6SampleBench/Basic/basic-tests.yaml: Added.
1202         * ES6SampleBench/Basic/stress-test.js: Added.
1203         (preciseTime):
1204         * ES6SampleBench/driver.js:
1205         (Driver):
1206         (Driver.prototype.start):
1207         (Driver.prototype.reportError):
1208         * ES6SampleBench/glue.js:
1209         * ES6SampleBench/index.html:
1210
1211 2016-06-28  Filip Pizlo  <fpizlo@apple.com>
1212
1213         ES6SampleBench should have a harness
1214         https://bugs.webkit.org/show_bug.cgi?id=159246
1215
1216         Reviewed by Saam Barati.
1217         
1218         This adds a simple web harness for ES6SampleBench. It runs Air and Basic 10 times for 200
1219         iterations each and reports three metrics:
1220         
1221         First iteration: the time it takes for the first iteration to run. This is the first
1222         iteration after the benchmark is loaded into the iframe, so it's representative of what
1223         would happen if one of these workloads only ran for a short time.
1224         
1225         Worst 2%: of the last 199 iterations, the average of the worst 2% iterations. If code like
1226         any of these workloads was used in an important event handler, you'd want that code to run
1227         well in the worst case in addition to having great throughput.
1228         
1229         Steady state: the total of the last 199 iterations. This is representative of what would
1230         happen if you ran code like this for a long time.
1231         
1232         The total score is the geomean of the firstIteration/worstCase/steadyState numbers of the
1233         two benchmarks.
1234         
1235         The harness does statistics using Student's T-distribution confidence intervals.
1236
1237         * ES6SampleBench/Basic/benchmark.js:
1238         (Benchmark):
1239         * ES6SampleBench/air_benchmark.js: Added.
1240         * ES6SampleBench/basic_benchmark.js: Added.
1241         * ES6SampleBench/driver.js: Added.
1242         (Driver):
1243         (Driver.prototype.addBenchmark):
1244         (Driver.prototype.start):
1245         (Driver.prototype.reportResult):
1246         (Driver.prototype.reportError):
1247         (Driver.prototype._recomputeSummary.Geomean):
1248         (Driver.prototype._recomputeSummary.Geomean.prototype.add):
1249         (Driver.prototype._recomputeSummary.Geomean.prototype.get result):
1250         (Driver.prototype._recomputeSummary):
1251         (Driver.prototype._iterate):
1252         (Driver.prototype._updateIterations):
1253         * ES6SampleBench/glue.js: Added.
1254         * ES6SampleBench/index.html: Added.
1255         * ES6SampleBench/results.js: Added.
1256         (Results):
1257         (Results.prototype.get benchmark):
1258         (Results.prototype.reset):
1259         (Results.prototype.reportRunning):
1260         (Results.prototype.reportDone):
1261         (Results.prototype.reportResult.averageAbovePercentile):
1262         (Results.prototype.reportResult):
1263         (Results.prototype.reportError):
1264         * ES6SampleBench/stats.js: Added.
1265         (Stats):
1266         (Stats.prototype.reset):
1267         (Stats.prototype.add):
1268         (Stats.prototype.get numIterations):
1269         (Stats.prototype.valueForIteration):
1270         (Stats.get result.tDist):
1271         (Stats.prototype.get result):
1272         (Stats.prototype.toString):
1273         (Stats.prototype._update):
1274         * ES6SampleBench/style.css: Added.
1275         (body):
1276         (body, th, tr):
1277         (h1, h2, h3, h4):
1278         (h1):
1279         (h2):
1280         (h3):
1281         (hr):
1282         (address):
1283         (img):
1284         (.underline):
1285         (ol.loweralpha):
1286         (ol.upperalpha):
1287         (ol.lowerroman):
1288         (ol.upperroman):
1289         (ol.arabic):
1290         (.banner-link:link, .banner-link:visited):
1291         (:link, :visited):
1292         (h4 :link, h4 :visited, h5 :link, h5 :visited, h6 :link, h6 :visited):
1293         (.anchor:link, .anchor:visited):
1294         (* > .anchor:link, * > .anchor:visited):
1295         (span:hover .anchor):
1296         (a.forbidden, span.forbidden):
1297         (a.missing:hover):
1298         (a.closed:link, a.closed:visited, span.closed):
1299         (pre):
1300         (div.code):
1301         (div.code pre):
1302         (dt):
1303         (dd):
1304         (dd:last-child):
1305         (.site-logo):
1306         (.site-logo .tagline):
1307         (table):
1308         (#contents):
1309         (p):
1310         (p:last-child):
1311         (th):
1312         (td):
1313
1314 2016-06-28  Jon Lee  <jonlee@apple.com>
1315
1316         Update focus test
1317         https://bugs.webkit.org/show_bug.cgi?id=159242
1318         rdar://problem/27070007
1319
1320         Reviewed by Dean Jackson.
1321         Provisionally reviewed by Said Abou-Hallawa.
1322
1323         Move previous test to dom suite, and update the test for better reporting of frame rate, although
1324         it uses a different rendering path.
1325
1326         * Animometer/resources/debug-runner/tests.js: Add to dom suite.
1327         * Animometer/tests/dom/focus.html: Copied from PerformanceTests/Animometer/tests/master/focus.html.
1328         * Animometer/tests/dom/resources/focus.js: Copied from PerformanceTests/Animometer/tests/master/resources/focus.js.
1329         * Animometer/tests/master/focus.html: Remove center element.
1330         * Animometer/tests/master/resources/focus.js: Use narrower size range with smaller particles. Remove the
1331         container elements. Inline getBlurValue and getOpacityValue since they are only called once.
1332
1333 2016-06-28  Filip Pizlo  <fpizlo@apple.com>
1334
1335         Move Air.js and Basic into ES6SampleBench
1336
1337         Rubber stamped by Geoffrey Garen.
1338         
1339         We want to group our ES6 benchmarks together, and eventually, we want to give them a
1340         common harness.
1341
1342         * Air.js: Removed.
1343         * Air.js/README.md: Removed.
1344         * Air.js/airjs-tests.yaml: Removed.
1345         * Air.js/all.js: Removed.
1346         * Air.js/allocate_stack.js: Removed.
1347         * Air.js/arg.js: Removed.
1348         * Air.js/basic_block.js: Removed.
1349         * Air.js/benchmark.js: Removed.
1350         * Air.js/code.js: Removed.
1351         * Air.js/custom.js: Removed.
1352         * Air.js/frequented_block.js: Removed.
1353         * Air.js/insertion_set.js: Removed.
1354         * Air.js/inst.js: Removed.
1355         * Air.js/liveness.js: Removed.
1356         * Air.js/make_dist.sh: Removed.
1357         * Air.js/opcode.js: Removed.
1358         * Air.js/payload-airjs-ACLj8C.js: Removed.
1359         * Air.js/payload-gbemu-executeIteration.js: Removed.
1360         * Air.js/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
1361         * Air.js/payload-typescript-scanIdentifier.js: Removed.
1362         * Air.js/reg.js: Removed.
1363         * Air.js/stack_slot.js: Removed.
1364         * Air.js/stress-test.js: Removed.
1365         * Air.js/strip-hash.rb: Removed.
1366         * Air.js/symbols.js: Removed.
1367         * Air.js/test.html: Removed.
1368         * Air.js/test.js: Removed.
1369         * Air.js/tmp.js: Removed.
1370         * Air.js/tmp_base.js: Removed.
1371         * Air.js/util.js: Removed.
1372         * Basic: Removed.
1373         * Basic/ast.js: Removed.
1374         * Basic/basic.js: Removed.
1375         * Basic/benchmark.js: Removed.
1376         * Basic/caseless_map.js: Removed.
1377         * Basic/lexer.js: Removed.
1378         * Basic/number.js: Removed.
1379         * Basic/parser.js: Removed.
1380         * Basic/random.js: Removed.
1381         * Basic/state.js: Removed.
1382         * Basic/test.html: Removed.
1383         * Basic/test.js: Removed.
1384         * Basic/util.js: Removed.
1385         * ES6SampleBench: Added.
1386         * ES6SampleBench/Air: Copied from PerformanceTests/Air.js.
1387         * ES6SampleBench/Basic: Copied from PerformanceTests/Basic.
1388         * Skipped:
1389
1390 2016-06-24  Filip Pizlo  <fpizlo@apple.com>
1391
1392         Add a ES6 generator benchmark
1393         https://bugs.webkit.org/show_bug.cgi?id=159101
1394
1395         Rubber stamped by Keith Miller.
1396         
1397         This adds a Basic interpreter loosely based on ECMA-55:
1398         
1399         http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/ECMA-55,%201st%20Edition,%20January%201978.pdf
1400         
1401         It includes a lexer that is a generator, a parser that uses regular expressions, and an AST
1402         walk interpreter where the walking functions for statements are generators that call each
1403         other with yield*. This enables the interpreter to look like an AST walk even though it can
1404         yield at INPUT and PRINT statements.
1405         
1406         This also uses for-of, classes, Map, and WeakMap. It also uses deprecated-but-awesome RegExp
1407         features like RegExp.lastMatch and RegExp.rightContext. I did it that way because this is
1408         how I've always written lexers in dynamic languages; see offlineasm's lex() method in
1409         parser.rb for example.
1410         
1411         The benchmark runs a handful of simple Basic programs. The longest-running one computes
1412         prime numbers.
1413         
1414         Includes a command-line and web harness. On my machine it runs in 2-3 seconds.
1415
1416         * Basic: Added.
1417         * Basic/ast.js: Added.
1418         (Basic.NumberApply):
1419         (Basic.Variable):
1420         (Basic.Const):
1421         (Basic.NumberPow):
1422         (Basic.NumberMul):
1423         (Basic.NumberDiv):
1424         (Basic.NumberNeg):
1425         (Basic.NumberAdd):
1426         (Basic.NumberSub):
1427         (Basic.StringVar):
1428         (Basic.Equals):
1429         (Basic.NotEquals):
1430         (Basic.LessThan):
1431         (Basic.GreaterThan):
1432         (Basic.LessEqual):
1433         (Basic.GreaterEqual):
1434         (Basic.GoTo):
1435         (Basic.GoSub):
1436         (Basic.Def):
1437         (Basic.Let):
1438         (Basic.If):
1439         (Basic.Return):
1440         (Basic.Stop):
1441         (Basic.On):
1442         (sideState.shouldStop):
1443         (Basic.For):
1444         (Basic.Next):
1445         (Basic.Print):
1446         (Basic.Input):
1447         (Basic.Read):
1448         (Basic.Restore):
1449         (Basic.Dim):
1450         (Basic.Randomize):
1451         (Basic.End):
1452         (Basic.Program):
1453         * Basic/basic.js: Added.
1454         (prepare):
1455         (simulate):
1456         * Basic/benchmark.js: Added.
1457         (Benchmark):
1458         (Benchmark.prototype.runIteration.expect):
1459         (Benchmark.prototype.runIteration):
1460         (runBenchmark):
1461         * Basic/caseless_map.js: Added.
1462         (CaselessMap):
1463         * Basic/lexer.js: Added.
1464         (lex.consumeWhitespace):
1465         (lex.consume):
1466         (lex):
1467         * Basic/lexer_test.js: Added.
1468         * Basic/number.js: Added.
1469         (NumberValue):
1470         (NumberValue.prototype.get value):
1471         (NumberValue.prototype.apply):
1472         (NumberValue.prototype.leftApply):
1473         (NumberValue.prototype.assign):
1474         (NumberArray.):
1475         (NumberArray):
1476         (NumberArray.prototype.apply):
1477         (NumberArray.prototype.leftApply):
1478         (NumberFunction):
1479         (NumberFunction.prototype.apply):
1480         (NumberFunction.prototype.leftApply):
1481         (NativeFunction):
1482         (NativeFunction.prototype.apply):
1483         (NativeFunction.prototype.leftApply):
1484         * Basic/parser.js: Added.
1485         (parse):
1486         (parse.pushToken):
1487         (parse.peekToken):
1488         (parse.consumeKind):
1489         (parse.consumeToken):
1490         (parse.parseVariable):
1491         (parse.parseNumericExpression.parsePrimary):
1492         (parse.parseNumericExpression.parseFactor):
1493         (parse.parseNumericExpression.parseTerm):
1494         (parse.parseNumericExpression):
1495         (parse.parseConstant):
1496         (parse.parseStringExpression):
1497         (parse.isStringExpression):
1498         (parse.parseRelationalExpression):
1499         (parse.parseNonNegativeInteger):
1500         (parse.parseGoToStatement):
1501         (parse.parseGoSubStatement):
1502         (parse.parseStatement):
1503         (parse.parseStatements):
1504         * Basic/random.js: Added.
1505         (createRNG):
1506         (createRNGWithFixedSeed):
1507         (createRNGWithRandomSeed):
1508         * Basic/state.js: Added.
1509         (State):
1510         (State.prototype.getValue):
1511         (State.prototype.getSideState):
1512         (State.prototype.abort):
1513         (State.prototype.validate):
1514         * Basic/test.html: Added.
1515         * Basic/test.js: Added.
1516         * Basic/util.js: Added.
1517         (this.performance.performance.now.currentTime):
1518         (else.this.preciseTime.currentTime):
1519         (else.currentTime):
1520         * Skipped: Make sure that we don't run Basic yet.
1521
1522 2016-06-21  Jon Lee  <jonlee@apple.com>
1523
1524         Update canvas size when benchmark begins
1525         https://bugs.webkit.org/show_bug.cgi?id=159010
1526
1527         Reviewed by Dean Jackson.
1528
1529         Previously we would evaluate the media queries and assign the canvas size to the test
1530         on body.onload. Instead, do it once the user starts the benchmark.
1531
1532         * Animometer/resources/debug-runner/animometer.js: Move benchmarkController.determineCanvasSize()
1533         to benchmarkController._startBenchmark.
1534         * Animometer/resources/runner/animometer.js: Ditto.
1535
1536 2016-06-21  Jon Lee  <jonlee@apple.com>
1537
1538         Add new timestamp option
1539         https://bugs.webkit.org/show_bug.cgi?id=159006
1540
1541         Reviewed by Dean Jackson.
1542
1543         Add a new option to take timestamps from the rAF callback.
1544
1545         * Animometer/developer.html: Added option.
1546         * Animometer/tests/resources/main.js:
1547         (Benchmark): Fall back to using the rAF timestamp if performance.now()
1548         is not available.
1549         (Benchmark._animateLoop): Update how timestamp is set. Prefer to use
1550         local var instead of accessing private var.
1551
1552 2016-06-21  Jon Lee  <jonlee@apple.com>
1553
1554         Improvements to Animometer benchmark
1555         https://bugs.webkit.org/show_bug.cgi?id=157738
1556
1557         Reviewed by Dean Jackson.
1558         Provisionally reviewed by Said Abou-Hallawa.
1559
1560         Update tests.
1561
1562         * Animometer/tests/master/text.html: Ensure only three text sizes for
1563         the three canvases.
1564         * Animometer/tests/master/focus.html: Reduce the text size to fit with smaller
1565         particle sizes.
1566         * Animometer/tests/master/resources/focus.js: Remove the quadratic distribution for
1567         particle sizes, and make it linear. Reduce the size variance. Shuffle the math to
1568         reduce some calculations per frame. Fix the placement of the particles which might
1569         otherwise be culled.
1570         * Animometer/tests/master/resources/image-data.js: Reduce the particle size
1571         to encourage larger scores.
1572
1573 2016-06-21  Jon Lee  <jonlee@apple.com>
1574
1575         Improvements to Animometer benchmark
1576         https://bugs.webkit.org/show_bug.cgi?id=157738
1577
1578         Reviewed by Dean Jackson.
1579         Provisionally reviewed by Said Abou-Hallawa.
1580
1581         Include confidence interval for the final score, and store the canvas
1582         size in the serialization so that it is accurately shown in results.
1583
1584         * Animometer/developer.html: Add a "confidence" div.
1585         * Animometer/index.html: Ditto. Convert "mean" to "confidence".
1586         * Animometer/resources/debug-runner/animometer.js: Look at options, and
1587         if the configuration is included, update the body class based on it
1588         (similar to what we do when we first load the page). That way, if you
1589         drag-and-drop previous results in, that configuration is reflected in
1590         the dashboard. Show the full confidence interval.
1591
1592         * Animometer/resources/debug-runner/animometer.css:
1593         * Animometer/resources/debug-runner/animometer.js: Style update.
1594         * Animometer/resources/runner/animometer.css:
1595
1596         * Animometer/resources/runner/animometer.js:
1597         (_processData): Propagate the confidence interval values out and calculate
1598         the lower and upper bounds. For now, shortcut the aggregate calculation,
1599         since we only go through one iteration.
1600         (this._processData.calculateScore): Propagate the confidence interval out
1601         to be next to the score. Depending on the controller these values are
1602         calculated differently.
1603         (this._processData._getResultsProperty): Convenience function.
1604         (this._processData.get score): Refactor.
1605         (this._processData.get scoreLowerBound): Get the aggregate lower bound.
1606         (this._processData.get scoreUpperBound): Get the aggregate upper bound.
1607         (window.sectionsManager.setSectionScore):
1608         (window.benchmarkController._startBenchmark): When the benchmark starts, note
1609         the canvas size and add it to options. That way it will be automatically be
1610         serialized.
1611         (window.benchmarkController.showResults): Include the maximum deviation
1612         percentage.
1613         * Animometer/resources/runner/lines.svg: Make the background line up with the
1614         skew.
1615         * Animometer/resources/runner/tests.js:
1616         (Headers.details.text): Refactor.
1617         * Animometer/resources/statistics.js:
1618         (Statistics.largestDeviationPercentage): Convenience function to calculate
1619         the deviation percentage on either end and return the largest deviation.
1620         * Animometer/resources/strings.js:
1621
1622         Allow specifying a regression profile to use instead of taking the one
1623         with the lowest error.
1624
1625         Address an issue in the focus test when the regression calculated ends
1626         up overestimating the change point, causing a cascade of tougher
1627         ramps. The reason behind this is that at max complexity of an initial
1628         ramp, the frame length is very high, and it influences the second
1629         segment of the piecewise regression strongly, causing it to be very
1630         steep. As a result, the first segment, expected to be flat, ends up
1631         covering a higher range of complexity. That makes the change point
1632         much higher than it should be. To avoid this, we will add a sanity
1633         check on the maximum value of the ramp. If the regression's projected
1634         value at the maximum complexity of the current ramp is very slow (less
1635         than 20 fps), 1) reduce the maximum complexity by 20%, and 2) do not
1636         include the regression's change point in the change point estimator.
1637         That estimator is used as the midpoint of the next ramp, and including
1638         the change point from a poor regression can bake in the error. The
1639         controller already knows how to adjust for ramps that are too easy for
1640         the system.
1641
1642         * Animometer/resources/runner/animometer.js:
1643         (this._processData.findRegression): Takes a preferred profile and gives that to
1644         Regression.
1645         (this._processData.calculateScore): With the ramp controller, take the profile
1646         of the ramp that was used the most when calculating the ramp's regression. That
1647         profile is what is used for the test's score.
1648         * Animometer/resources/statistics.js:
1649         (Regression.Utilities.createClass): Update to take an options object which can
1650         specify a profile to calculate with. Otherwise it will continue to use both and
1651         select the one with the lower error.
1652         (_calculateRegression): Fix an issue where we claim 0 error if the regression
1653         calculation fails due to divide-by-zero. Instead reject that regression calculation
1654         by giving it Number.MAX_VALUE.
1655         * Animometer/resources/strings.js: New strings for marking a regression as flat
1656         or slope.
1657         * Animometer/tests/resources/main.js:
1658         (RampController): Rename the thresholds for clarity. Add a threshold that, if
1659         exceeded, will lower the maximum complexity of the next ramp.
1660         (tune): Relax the cdf check to consider whether the interval definitely falls in
1661         the desired frame length threshold.
1662         (processSamples): Include the profile in the ramp.
1663
1664         Update ramp controller test. Increase the length of the test to 30 seconds, and extend
1665         the interval to 120 ms during sampling. Improve the estimation of the ramp parameters.
1666
1667         * Animometer/developer.html: Change default to 30 seconds, and don't show the progress bar
1668         by default.
1669         * Animometer/resources/runner/animometer.js: Change default to 30 seconds.
1670         * Animometer/tests/resources/main.js: A number of improvements to the ramp controller, in
1671         the order in which they appear in the patch:
1672
1673         - With a longer test length use longer ramps with longer intervals to get more data at each
1674         complexity. Keep the 100 ms interval length during the ramp up phase since we don't need to
1675         spend more time there to find the right order of magnitude, but increase it during the
1676         ramps to 120 ms.
1677         - The ramp linearly interpolates the complexity to render based on its timestamp, but it would
1678         never sample the minimum complexity. Instead of lerping max to min complexity from time
1679         0 to t where t is the ramp length, instead lerp from 0 to (t - intervalSampleLength) so that
1680         we can have at least one interval sample at the min complexity for that ramp.
1681         - Some regression calculations only come out with one line segment rather than the two
1682         we expect. This could be due to a noisy ramp or the ramp's range is too narrow. If that's the
1683         case, influence the minimum complexity of the next ramp towards the lowest bound of 1, so that
1684         we ensure that at least part of the ramp is covering a complexity range that the system can
1685         handle at full 60.
1686         - Remove an assignment to interpolatedFrameLength since that is never subsequently used.
1687
1688         Update the format used to serialize the results for analysis.
1689
1690         Each data point used to have named properties for fields like complexity and frame rate.
1691         In addition the serialized numbers had rounding errors that took up many characters.
1692         Update the format by introducing a new data container called SampleData, which contains a
1693         field map. The map maps a string to an array index. Each data point is an array, so, to
1694         get a stat, use the field map to get the array index into the data point. This allows future
1695         versions to track other data, and reduces the size of the output string by two-thirds.
1696
1697         * Animometer/resources/extensions.js:
1698         (Utilities.toFixedNumber): Add convenience function that truncates the number to a fixed
1699         precision, and converts it back to a number.
1700         (SampleData): New class that contains sample data and a field map that maps properties to
1701         an array index.
1702         (get length): Number of data points.
1703         (addField): Add a field to the field map.
1704         (push): Add a data point.
1705         (sort): Sort the data.
1706         (slice): Return new SampleData object with sliced data.
1707         (forEach): Iterate over the data with provided function.
1708         (createDatum):
1709         (getFieldInDatum): Returns the data point associated with the field name by looking it up
1710         in the field map in the datum provided, which can be the datum object itself (an array) or
1711         an index into the data member variable.
1712         (setFieldInDatum): Sets the data point associated with the field name.
1713         (at): Returns the data point at the provided index.
1714         (toArray): Serializes the data where the field map serves as property names for each point.
1715
1716         * Animometer/resources/debug-runner/graph.js:
1717         (updateGraphData): Remove unused _testData. Convert the data to the old array format for the
1718         graph to use, since the old format was much easier to work with when displaying the graphs.
1719         (onGraphTypeChanged): For some controllers, no alternative score or mean is provided.
1720         * Animometer/resources/runner/animometer.css:
1721         * Animometer/resources/runner/animometer.js: Refactor to use SampleData. Update JSON output
1722         to only go to 3 digits of precision for purposes of reducing the data size.
1723         * Animometer/resources/strings.js: Add new strings to put into the field maps.
1724         * Animometer/tests/resources/main.js: Refactor to use SampleData.
1725
1726         * Animometer/developer.html:
1727         * Animometer/index.html: Restructure results table for both pages. Add charset attribute to
1728         tests.js include.
1729         * Animometer/resources/debug-runner/animometer.css: Clear out styles from release runner.
1730         * Animometer/resources/debug-runner/graph.js:
1731         (onGraphTypeChanged): Update score and mean if bootstrap results are available from the
1732         controller, since not all controllers do bootstrapping.
1733         * Animometer/resources/debug-runner/tests.js: Update header text.
1734         * Animometer/resources/runner/animometer.css: Include confidence interval in results.
1735         * Animometer/resources/runner/animometer.js:
1736         (ResultsTable._addHeader): Header contents can be HTML, so use innerHTML instead.
1737         (ResultsTable._addBody): Add tbody element.
1738         (ResultsTable._addTest): Allow a data cell to invoke a JS function to get its contents.
1739         (window.benchmarkController.showResults): Add table that includes tests' confidence intervals.
1740         * Animometer/resources/runner/tests.js:
1741         (Headers.details.text): Add new details table that includes bootstrap confidence interval.
1742         The interval can be asymmetric, but for simplicity, report the maximum deviation percentage
1743         on either side of the bootstrap median.
1744         * Animometer/resources/statistics.js:
1745         (bootstrap): Include the confidence percentage in the return object.
1746
1747         Report canvas size in results.
1748
1749         * Animometer/developer.html: Add markup to indicate whether a small, medium, or large
1750         canvas was used.
1751         * Animometer/index.html: Ditto.
1752         * Animometer/resources/debug-runner/animometer.js: Call determineCanvasSize().
1753         * Animometer/resources/runner/animometer.css: Update styles to set the canvas based on the
1754         body class size.
1755         * Animometer/resources/runner/animometer.js:
1756         (window.benchmarkController.initialize): Update styles to set the canvas based on the
1757         body class size.
1758         (window.benchmarkController.determineCanvasSize): Run various media queries and set the body
1759         class based on the size of the device.
1760
1761         * Animometer/developer.html: Refactor to include the main CSS file, and redo
1762         the layout so that it doesn't rely on flexbox.
1763         * Animometer/resources/debug-runner/animometer.css:
1764         * Animometer/resources/debug-runner/animometer.js:
1765         (updateDisplay): Since various parts of the script alter the body class, we can't
1766         replace the className directly. Instead, remove all display-based values and then add
1767         the one that was selected.
1768         * Animometer/resources/debug-runner/graph.js:
1769         (updateGraphData): To set the size of the graph, use window.innerHeight.
1770         * Animometer/resources/runner/animometer.js:
1771         (window.sectionsManager.showSection): Since various parts of the script alter the body
1772         class, we can't replace the className directly. Remove all of the section classes
1773         individually and then add the one desired.
1774         * Animometer/tests/resources/stage.css: Remove -apple-system as a font to use in the
1775         stage.
1776
1777 2016-06-12  Filip Pizlo  <fpizlo@apple.com>
1778
1779         Fix round-down goof in Air.js's ShuffleCustom.forEachArg
1780         https://bugs.webkit.org/show_bug.cgi?id=158674
1781
1782         Reviewed by Michael Saboff.
1783         
1784         x / 3 * 3 is not how you round down to multiples of 3 in JavaScript. You need to do
1785         Math.floor(x / 3) * 3 instead.
1786         
1787         This is a benign change, because having extra arguments to a Shuffle is not something we
1788         actually take advantage of yet. But I think it's best to match the original C++ code's
1789         intent.
1790
1791         * Air.js/custom.js:
1792         (const.ShuffleCustom.forEachArg):
1793
1794 2016-06-11  Filip Pizlo  <fpizlo@apple.com>
1795
1796         Unreviewed, skip Air.js. It got unskipped when I renamed it from JSAir.
1797
1798         * Skipped:
1799
1800 2016-06-10  Filip Pizlo  <fpizlo@apple.com>
1801
1802         Make it easy to package Air.js
1803         https://bugs.webkit.org/show_bug.cgi?id=158652
1804
1805         Reviewed by Benjamin Poulain.
1806         
1807         If you want to give Air.js to someone, you can now do:
1808         
1809         cd PerformanceTests/Air.js
1810         ./make_dist.sh
1811         
1812         This will create Air.js.tar.gz and a directory called Air.js. If you want to send someone
1813         the benchmark, just send either of those things and tell them to look at index.html.
1814         
1815         You may have to edit make_dist.sh for wherever you have Markdown.pl. You can get that from
1816         https://daringfireball.net/projects/markdown/
1817
1818         * Air.js/make_dist.sh: Added.
1819         * Air.js/test.html:
1820
1821 2016-06-10  Filip Pizlo  <fpizlo@apple.com>
1822
1823         Unreviewed, make the link to test.html into an actual link.
1824
1825         * Air.js/README.md:
1826
1827 2016-06-10  Filip Pizlo  <fpizlo@apple.com>
1828
1829         Fix some text in Air.js/README.md
1830         https://bugs.webkit.org/show_bug.cgi?id=158650
1831
1832         Reviewed by Benjamin Poulain.
1833         
1834         I read the text again and found bugs:
1835         
1836         - We never actually say how to run the benchmark. This change adds a blurb about how to run
1837           it.
1838
1839         - We both say that allocateStack is responsible for the bulk of the running time and that
1840           we haven't measured where the bulk of the time is spent. This changes the text to say that
1841           it was a goal to make allocateStack be the hottest part of the benchmark, but that we did
1842           not measure this.
1843
1844         * Air.js/README.md:
1845
1846 2016-06-10  Filip Pizlo  <fpizlo@apple.com>
1847
1848         Air.js should have some documentation
1849         https://bugs.webkit.org/show_bug.cgi?id=158648
1850
1851         Reviewed by Keith Miller.
1852         
1853         I want to be able to point people at a document if they want to know more about this
1854         benchmark.
1855
1856         * Air.js/README.md: Added.
1857
1858 2016-06-10  Filip Pizlo  <fpizlo@apple.com>
1859
1860         Rename JSAir to Air.js.
1861
1862         Rubber stamped by Mark Lam.
1863
1864         * Air.js: Copied from PerformanceTests/JSAir.
1865         * Air.js/airjs-tests.yaml: Copied from PerformanceTests/JSAir/jsair-tests.yaml.
1866         * Air.js/benchmark.js: Copied from PerformanceTests/JSAir/benchmark.js.
1867         (Benchmark):
1868         * Air.js/jsair-tests.yaml: Removed.
1869         * Air.js/payload-airjs-ACLj8C.js: Copied from PerformanceTests/JSAir/payload-jsair-ACLj8C.js.
1870         * Air.js/payload-jsair-ACLj8C.js: Removed.
1871         * Air.js/stress-test.js: Copied from PerformanceTests/JSAir/stress-test.js.
1872         * Air.js/test.html: Copied from PerformanceTests/JSAir/test.html.
1873         * Air.js/test.js: Copied from PerformanceTests/JSAir/test.js.
1874         * JSAir: Removed.
1875         * JSAir/all.js: Removed.
1876         * JSAir/allocate_stack.js: Removed.
1877         * JSAir/arg.js: Removed.
1878         * JSAir/basic_block.js: Removed.
1879         * JSAir/benchmark.js: Removed.
1880         * JSAir/code.js: Removed.
1881         * JSAir/custom.js: Removed.
1882         * JSAir/frequented_block.js: Removed.
1883         * JSAir/insertion_set.js: Removed.
1884         * JSAir/inst.js: Removed.
1885         * JSAir/jsair-tests.yaml: Removed.
1886         * JSAir/liveness.js: Removed.
1887         * JSAir/opcode.js: Removed.
1888         * JSAir/payload-gbemu-executeIteration.js: Removed.
1889         * JSAir/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
1890         * JSAir/payload-jsair-ACLj8C.js: Removed.
1891         * JSAir/payload-typescript-scanIdentifier.js: Removed.
1892         * JSAir/reg.js: Removed.
1893         * JSAir/stack_slot.js: Removed.
1894         * JSAir/stress-test.js: Removed.
1895         * JSAir/strip-hash.rb: Removed.
1896         * JSAir/symbols.js: Removed.
1897         * JSAir/test.html: Removed.
1898         * JSAir/test.js: Removed.
1899         * JSAir/tmp.js: Removed.
1900         * JSAir/tmp_base.js: Removed.
1901         * JSAir/util.js: Removed.
1902
1903 2016-06-10  Filip Pizlo  <fpizlo@apple.com>
1904
1905         JSC Stress Test failing: jsair-tests.yaml/test.js.ftl-eager-no-cjit
1906         https://bugs.webkit.org/show_bug.cgi?id=158571
1907
1908         Reviewed by Keith Miller.
1909         
1910         Introduce a different harness for run-jsc-stress-tests, which runs for a minimum of 10
1911         iterations and then tries to do any number of "bonus" iterations until it's been running for
1912         two seconds. Since this is the sort of test that isn't really meant to stress anything in
1913         particular, I think it's OK if it is time-limited in this way. The worst case is that some
1914         of its failures will be flaky, but I think that they would have been flaky anyway given the
1915         complexity of the test.
1916
1917         * JSAir/benchmark.js:
1918         (Benchmark):
1919         (Benchmark.prototype.runIteration):
1920         (benchmark): Deleted.
1921         * JSAir/jsair-tests.yaml:
1922         * JSAir/stress-test.js: Added.
1923         (preciseTime):
1924         * JSAir/test.html:
1925         * JSAir/test.js:
1926
1927 2016-06-09  Filip Pizlo  <fpizlo@apple.com>
1928
1929         Unreviewed, teach the perf bots not to run JSAir.
1930
1931         * Skipped:
1932
1933 2016-06-08  Filip Pizlo  <fpizlo@apple.com>
1934
1935         Use more ES6 features in JSAir
1936         https://bugs.webkit.org/show_bug.cgi?id=158497
1937
1938         Reviewed by Keith Miller.
1939         
1940         This improves JSAir with the following ES6 features suggested by JoePeck:
1941         
1942         - String interpolation.
1943         - Destructuring inside PatchCustom.
1944         - Default arguments.
1945         
1946         All of these things are on hot paths.
1947         
1948         Note that I didn't use string interpolation everywhere that I could, only in those places
1949         where it made the code more readable. In Ruby, I used the style that if the interpolation
1950         expression has any non-trivial stuff (like a ternary operator, a chain of calls, or embedded
1951         strings) then it's better to use regular strcat. I think that's what I carried over to here.
1952         
1953         Note that the previous change (Add result validation to JSAir) also made the Proxy code not
1954         dead, though it's not necessarily on the hot path. The Proxy isn't called into frequently
1955         but it's used from a function that is otherwise hot, so if calling into the Proxy prevents
1956         that function from being optimized then it will hurt so good.
1957         
1958         I also reenabled tail calls in a few places.
1959         
1960         This change doesn't seem to change the performance of the benchmark for us. That's expected
1961         since these ES6 features are cheap. Note that this claim doesn't include Proxy, which was
1962         added in a separate change and that change did make the benchmark overall more expensive.
1963
1964         * JSAir/allocate_stack.js:
1965         (allocateStack):
1966         * JSAir/arg.js:
1967         (Arg.createBitImm64):
1968         (Arg.createAddr):
1969         (Arg.createStack):
1970         (Arg.logScale):
1971         (Arg.createIndex):
1972         * JSAir/basic_block.js:
1973         (BasicBlock.get headerString):
1974         (BasicBlock.prototype.get if):
1975         (BasicBlock):
1976         * JSAir/benchmark.js:
1977         (benchmark):
1978         * JSAir/code.js:
1979         (Code):
1980         (Code.prototype.addBlock):
1981         (Code.prototype.addStackSlot):
1982         (Code.prototype.newTmp):
1983         (Code.prototype.get size):
1984         (Code.prototype.get blocks):
1985         (Code.prototype.get stackSlots):
1986         (Code.prototype.tmps):
1987         (Code.prototype.get callArgAreaSize):
1988         (Code.prototype.toString):
1989         * JSAir/custom.js:
1990         (const.PatchCustom.forEachArg):
1991         * JSAir/inst.js:
1992         (Inst):
1993         * JSAir/reg.js:
1994         (Reg.prototype.toString):
1995         * JSAir/util.js:
1996         (symbolName):
1997         (lowerSymbolName):
1998
1999 2016-06-07  Filip Pizlo  <fpizlo@apple.com>
2000
2001         Add result validation to JSAir
2002         https://bugs.webkit.org/show_bug.cgi?id=158493
2003
2004         Reviewed by Saam Barati.
2005         
2006         This adds the ability to hash a Code in a way that matches the C++ code's hashing of Code.
2007         This allows us to check if the Code that JSAir sees is the code that C++ saw. We use this to
2008         check the Code before and after allocateStack, and compare against hashes we got from C++.
2009         
2010         Doing this uncovered bugs. roundUpToMultipleOf wasn't doing anything. allocateStack was not
2011         allocating things correctly because I was concatting a Set to an Array, which doesn't really
2012         work. Now these bugs are fixed.
2013         
2014         The checking step adds to the running time so I reduced the number of iterations. The
2015         benchmark spends a decent amount of its time computing Code hashes; I think it's around 1/3
2016         total. This is probably OK. It's better to verify the results even if the running time is
2017         not all in the "core" of the algorithm.
2018         
2019         Also add a run-jsc-stress-tests yaml file to allow this to run as a test.
2020
2021         * JSAir/allocate_stack.js:
2022         * JSAir/arg.js:
2023         (Arg.createImm):
2024         (Arg.createBigImm):
2025         (Arg.createBitImm):
2026         (Arg.createBitImm64):
2027         (Arg.createWidth):
2028         (Arg.createSpecial):
2029         (Arg.prototype.get kind):
2030         (Arg.prototype.get isTmp):
2031         (Arg.prototype.get isImm):
2032         (Arg.prototype.get isSomeImm):
2033         (Arg.prototype.get isSomeBigImm):
2034         (Arg.prototype.get isCondition):
2035         (Arg.prototype.get isWidth):
2036         (Arg.prototype.get isSpecial):
2037         (Arg.prototype.get isAlive):
2038         (Arg.prototype.get tmp):
2039         (Arg.prototype.get value):
2040         (Arg.prototype.get lowValue):
2041         (Arg.prototype.get highValue):
2042         (Arg.prototype.get base):
2043         (Arg.prototype.get isGP):
2044         (Arg.prototype.get isFP):
2045         (Arg.prototype.isValidForm):
2046         (Arg.prototype.get isInvertible):
2047         (Arg.kindCode):
2048         (Arg.prototype.hash):
2049         (Arg.prototype.toString):
2050         (Arg):
2051         * JSAir/basic_block.js:
2052         (BasicBlock.get successorBlocks):
2053         * JSAir/benchmark.js:
2054         (benchmark):
2055         * JSAir/code.js:
2056         (Code.prototype.setFrameSize):
2057         (Code.prototype.hash):
2058         (Code.prototype.toString):
2059         (Code):
2060         * JSAir/inst.js:
2061         (Inst.prototype.get hasNonArgEffects):
2062         (Inst.prototype.hash):
2063         (Inst.prototype.toString):
2064         (Inst):
2065         * JSAir/jsair-tests.yaml: Added.
2066         * JSAir/opcode.js:
2067         (Inst_forEachArg):
2068         (Inst_hasNonArgEffects):
2069         (opcodeCode):
2070         * JSAir/payload-gbemu-executeIteration.js:
2071         (createPayloadGbemuExecuteIteration):
2072         * JSAir/payload-imaging-gaussian-blur-gaussianBlur.js:
2073         (createPayloadImagingGaussianBlurGaussianBlur):
2074         * JSAir/payload-jsair-ACLj8C.js:
2075         (createPayloadJSAirACLj8C):
2076         * JSAir/payload-typescript-scanIdentifier.js:
2077         (createPayloadTypescriptScanIdentifier):
2078         * JSAir/reg.js:
2079         (Reg.prototype.get isReg):
2080         (Reg.prototype.hash):
2081         (Reg.prototype.toString):
2082         * JSAir/stack_slot.js:
2083         (StackSlot.prototype.setOffsetFromFP):
2084         (StackSlot.prototype.hash):
2085         (StackSlot.prototype.toString):
2086         * JSAir/symbols.js:
2087         (relCondCode):
2088         (resCondCode):
2089         (doubleCondCode):
2090         * JSAir/test.html:
2091         * JSAir/tmp.js:
2092         (Tmp.prototype.get isReg):
2093         (Tmp.prototype.hash):
2094         (Tmp.prototype.toString):
2095         * JSAir/util.js:
2096         (roundUpToMultipleOf):
2097         (symbolName):
2098
2099 2016-06-07  Filip Pizlo  <fpizlo@apple.com>
2100
2101         Implement Air::allocateStack() in ES6 to see how much of a bad idea that is
2102         https://bugs.webkit.org/show_bug.cgi?id=158318
2103
2104         Reviewed by Saam Barati.
2105         
2106         This adds a new benchmark for us to play with called JSAir. It's a complete ES6
2107         implementation of Air's allocateStack() phase along with all of Air needed to run that
2108         phase. This includes things like stack slots, registers, temporaries, basic blocks,
2109         instructions, and all of the code for iterating over, inspecting, and modifying those
2110         things.
2111         
2112         To make this work, JSC can now dump Air just before allocateStack() in the form of JS code
2113         that creates a Code object that matches exactly what C++ Air saw. This benchmark comprises
2114         four Air IRs:
2115         
2116         - Octane/gbemu's largest function, executeIteration.
2117         - Kraken/imaging-gaussian-blur's largest function in OSR entry mode, gaussuanBlur.
2118         - Octane/typescript's largest function that is actually hot, scanIdentifier.
2119         - JSAir's largest hot function, which is anonymous, so we call it by its hash (ACLj8C).
2120         
2121         This runs in about 2 seconds on my machine in JSC trunk. It includes both a commandline
2122         harness and a web harness. JSAir is almost exactly 100x slower in ES6 in WebKit than the
2123         C++ Air::allocateStack() phase on which it is based.
2124         
2125         JSAir uses the following ES6 features:
2126         
2127         - Symbol.
2128         - for-of.
2129         - arrow functions.
2130         - Map/Set.
2131         - let/const.
2132         - classes.
2133         
2134         All of these things are used in anger and should end up on the hot path. There is also code
2135         that uses Proxies, but it ends up being dead.
2136         
2137         We can improve this even more:
2138         I still need to add result validation: https://bugs.webkit.org/show_bug.cgi?id=158493
2139         I want to make it use more ES6 features: https://bugs.webkit.org/show_bug.cgi?id=158497
2140         
2141         * JSAir: Added.
2142         * JSAir/all.js: Added.
2143         * JSAir/allocate_stack.js: Added.
2144         (allocateStack.attemptAssignment):
2145         (allocateStack.assign):
2146         (allocateStack.interfere):
2147         (allocateStack.):
2148         (allocateStack):
2149         * JSAir/arg.js: Added.
2150         (Arg):
2151         (Arg.isAnyUse):
2152         (Arg.isColdUse):
2153         (Arg.isWarmUse):
2154         (Arg.cooled):
2155         (Arg.isEarlyUse):
2156         (Arg.isLateUse):
2157         (Arg.isAnyDef):
2158         (Arg.isEarlyDef):
2159         (Arg.isLateDef):
2160         (Arg.isZDef):
2161         (Arg.typeForB3Type):
2162         (Arg.widthForB3Type):
2163         (Arg.conservativeWidth):
2164         (Arg.minimumWidth):
2165         (Arg.bytes):
2166         (Arg.widthForBytes):
2167         (Arg.createTmp):
2168         (Arg.fromReg):
2169         (Arg.createImm):
2170         (Arg.createBigImm):
2171         (Arg.createBitImm):
2172         (Arg.createBitImm64):
2173         (Arg.createAddr):
2174         (Arg.createStack):
2175         (Arg.createCallArg):
2176         (Arg.createStackAddr):
2177         (Arg.isValidScale):
2178         (Arg.logScale):
2179         (Arg.createIndex):
2180         (Arg.createRelCond):
2181         (Arg.createResCond):
2182         (Arg.createDoubleCond):
2183         (Arg.createWidth):
2184         (Arg.prototype.get kind):
2185         (Arg.prototype.get isTmp):
2186         (Arg.prototype.get isImm):
2187         (Arg.prototype.get isBigImm):
2188         (Arg.prototype.get isBitImm):
2189         (Arg.prototype.get isBitImm64):
2190         (Arg.prototype.get isSomeImm):
2191         (Arg.prototype.get isAddr):
2192         (Arg.prototype.get isStack):
2193         (Arg.prototype.get isCallArg):
2194         (Arg.prototype.get isIndex):
2195         (Arg.prototype.get isMemory):
2196         (Arg.prototype.get isStackMemory):
2197         (Arg.prototype.get isRelCond):
2198         (Arg.prototype.get isResCond):
2199         (Arg.prototype.get isDoubleCond):
2200         (Arg.prototype.get isCondition):
2201         (Arg.prototype.get isWidth):
2202         (Arg.prototype.get isAlive):
2203         (Arg.prototype.get tmp):
2204         (Arg.prototype.get value):
2205         (Arg.prototype.get base):
2206         (Arg.prototype.get hasOffset):
2207         (Arg.prototype.get offset):
2208         (Arg.prototype.get stackSlot):
2209         (Arg.prototype.get index):
2210         (Arg.prototype.get scale):
2211         (Arg.prototype.get logScale):
2212         (Arg.prototype.get width):
2213         (Arg.prototype.get isGPTmp):
2214         (Arg.prototype.get isFPTmp):
2215         (Arg.prototype.get isGP):
2216         (Arg.prototype.get isFP):
2217         (Arg.prototype.get hasType):
2218         (Arg.prototype.get type):
2219         (Arg.prototype.isType):
2220         (Arg.prototype.isCompatibleType):
2221         (Arg.prototype.get isGPR):
2222         (Arg.prototype.get gpr):
2223         (Arg.prototype.get isFPR):
2224         (Arg.prototype.get fpr):
2225         (Arg.prototype.get isReg):
2226         (Arg.prototype.get reg):
2227         (Arg.isValidImmForm):
2228         (Arg.isValidBitImmForm):
2229         (Arg.isValidBitImm64Form):
2230         (Arg.isValidAddrForm):
2231         (Arg.isValidIndexForm):
2232         (Arg.prototype.isValidForm):
2233         (Arg.prototype.forEachTmpFast):
2234         (Arg.prototype.usesTmp):
2235         (Arg.prototype.forEachTmp):
2236         (Arg.prototype.is):
2237         (Arg.prototype.as):
2238         (Arg.prototype.forEachFast):
2239         (Arg.prototype.forEach):
2240         (Arg.extract):
2241         (Arg.forEachFast):
2242         (Arg.forEach):
2243         (Arg.prototype.get condition):
2244         (Arg.prototype.get isInvertible):
2245         (Arg.prototype.toString):
2246         * JSAir/basic_block.js: Added.
2247         (BasicBlock):
2248         (BasicBlock.prototype.get index):
2249         (BasicBlock.prototype.get size):
2250         (BasicBlock.prototype.Symbol.iterator):
2251         (BasicBlock.prototype.at):
2252         (BasicBlock.get last):
2253         (BasicBlock.get insts):
2254         (BasicBlock.get numSuccessors):
2255         (BasicBlock.get successors):
2256         (BasicBlock.get successorBlocks.):
2257         (BasicBlock.get successorBlocks):
2258         (BasicBlock.set get numPredecessors):
2259         (BasicBlock.get predecessors):
2260         (BasicBlock.get frequency):
2261         (BasicBlock.get headerString):
2262         (BasicBlock.get footerString):
2263         * JSAir/benchmark.js: Added.
2264         (benchmark):
2265         * JSAir/code.js: Added.
2266         (Code):
2267         (Code.prototype.addBlock):
2268         (Code.prototype.addStackSlot):
2269         (Code.prototype.newTmp):
2270         (Code.prototype.get size):
2271         (Code.prototype.at):
2272         (Code.prototype.Symbol.iterator):
2273         (Code.prototype.get blocks):
2274         (Code.prototype.get stackSlots):
2275         (Code.prototype.tmps):
2276         (Code.prototype.get callArgAreaSize):
2277         (Code.prototype.requestCallArgAreaSize):
2278         (Code.prototype.get frameSize):
2279         (Code.prototype.setFrameSize):
2280         (Code.prototype.toString):
2281         * JSAir/custom.js: Added.
2282         (const.ShuffleCustom.forEachArg):
2283         (const.ShuffleCustom.hasNonArgNonControlEffects):
2284         (const.PatchCustom.forEachArg):
2285         (const.PatchCustom.hasNonArgNonControlEffects):
2286         (const.CCallCustom.forEachArg):
2287         (const.CCallCustom.hasNonArgNonControlEffects):
2288         (const.ColdCCallCustom.forEachArg):
2289         (const.ColdCCallCustom.hasNonArgNonControlEffects):
2290         * JSAir/frequented_block.js: Added.
2291         (FrequentedBlock):
2292         (FrequentedBlock.prototype.toString):
2293         * JSAir/insertion_set.js: Added.
2294         (Insertion):
2295         (Insertion.prototype.get index):
2296         (Insertion.prototype.get element):
2297         (Insertion.prototype.lessThan):
2298         (InsertionSet):
2299         (InsertionSet.prototype.appendInsertion):
2300         (InsertionSet.prototype.append):
2301         (InsertionSet.prototype.execute):
2302         * JSAir/inst.js: Added.
2303         (Inst):
2304         (Inst.prototype.append):
2305         (Inst.prototype.clear):
2306         (Inst.prototype.get opcode):
2307         (Inst.prototype.get args):
2308         (Inst.prototype.visitArg):
2309         (Inst.prototype.forEachTmpFast):
2310         (Inst.prototype.forEachArg):
2311         (Inst.prototype.forEachTmp):
2312         (Inst.prototype.forEach):
2313         (Inst.forEachDef):
2314         (Inst.forEachDefWithExtraClobberedRegs):
2315         (Inst.prototype.get hasNonArgEffects):
2316         (Inst.prototype.toString):
2317         * JSAir/liveness.js: Added.
2318         (Liveness):
2319         (Liveness.prototype.get thing):
2320         (Liveness.prototype.get code):
2321         (Liveness.prototype.get liveAtHead):
2322         (Liveness.prototype.get liveAtTail):
2323         (Liveness.prototype.localCalc.LocalCalc):
2324         (Liveness.prototype.localCalc.LocalCalc.prototype.get liveSet):
2325         (Liveness.prototype.localCalc.LocalCalc.prototype.execute):
2326         (Liveness.prototype.localCalc):
2327         * JSAir/opcode.js: Added.
2328         (Inst_forEachArg):
2329         (Inst_hasNonArgEffects):
2330         * JSAir/payload-gbemu-executeIteration.js: Added.
2331         (createPayloadGbemuExecuteIteration):
2332         * JSAir/payload-imaging-gaussian-blur-gaussianBlur.js: Added.
2333         (createPayloadImagingGaussianBlurGaussianBlur):
2334         * JSAir/payload-jsair-ACLj8C.js: Added.
2335         (createPayloadJSAirACLj8C):
2336         * JSAir/payload-typescript-scanIdentifier.js: Added.
2337         (createPayloadTypescriptScanIdentifier):
2338         * JSAir/reg.js: Added.
2339         (Reg):
2340         (Reg.fromReg):
2341         (Reg.prototype.get index):
2342         (Reg.prototype.get type):
2343         (Reg.prototype.get name):
2344         (Reg.prototype.get isCalleeSave):
2345         (Reg.prototype.get isReg):
2346         (Reg.prototype.toString):
2347         (Reg.extract):
2348         (Reg.forEachFast):
2349         (Reg.forEach):
2350         (newGPR):
2351         (Reg.gprs.Reg.fprs.Reg.calleeSaveGPRs.Reg.calleeSaveFPRs.Reg.calleeSaves):
2352         * JSAir/stack_slot.js: Added.
2353         (StackSlot):
2354         (StackSlot.prototype.get byteSize):
2355         (StackSlot.prototype.get kind):
2356         (StackSlot.prototype.get isLocked):
2357         (StackSlot.prototype.get isSpill):
2358         (StackSlot.prototype.get index):
2359         (StackSlot.prototype.ensureSize):
2360         (StackSlot.prototype.get alignment):
2361         (StackSlot.prototype.get offsetFromFP):
2362         (StackSlot.prototype.setOffsetFromFP):
2363         (StackSlot.prototype.toString):
2364         (StackSlot.extract):
2365         (StackSlot.forEachFast):
2366         (StackSlot.forEach):
2367         * JSAir/symbols.js: Added.
2368         * JSAir/test.html: Added.
2369         * JSAir/test.js: Added.
2370         * JSAir/tmp.js: Added.
2371         (Tmp):
2372         (Tmp.fromReg):
2373         (Tmp.prototype.get index):
2374         (Tmp.prototype.get type):
2375         (Tmp.prototype.get isReg):
2376         (Tmp.prototype.toString):
2377         (Tmp.extract):
2378         (Tmp.forEachFast):
2379         (Tmp.forEach):
2380         * JSAir/tmp_base.js: Added.
2381         (TmpBase.prototype.get isGP):
2382         (TmpBase.prototype.get isFP):
2383         (TmpBase.prototype.get isGPR):
2384         (TmpBase.prototype.get isFPR):
2385         (TmpBase.prototype.get reg):
2386         (TmpBase.prototype.get gpr):
2387         (TmpBase.prototype.get fpr):
2388         (TmpBase):
2389         * JSAir/util.js: Added.
2390         (isRepresentableAsInt32):
2391         (addIndexed):
2392         (roundUpToMultipleOf):
2393         (symbolName):
2394         (mergeIntoSet):
2395         (nonEmptyRangesOverlap):
2396         (rangesOverlap):
2397         (removeAllMatching):
2398         (swap):
2399         (bubble):
2400         (bubbleSort):
2401         (currentTime):
2402         (else.currentTime):
2403
2404 2016-05-26  Yusuke Suzuki  <utatane.tea@gmail.com>
2405
2406         [JSC] Allow JSBench to use precise time
2407         https://bugs.webkit.org/show_bug.cgi?id=158050
2408
2409         Reviewed by Geoffrey Garen.
2410
2411         * JSBench/amazon-chrome-win/urem.js:
2412         (else.window.performance.window.performance.now.currentTimeInMS):
2413         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2414         (else.else.currentTimeInMS):
2415         (onload.cb):
2416         (onload):
2417         * JSBench/amazon-chrome/urem.js:
2418         (else.window.performance.window.performance.now.currentTimeInMS):
2419         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2420         (else.else.currentTimeInMS):
2421         (onload.cb):
2422         (onload):
2423         * JSBench/amazon-firefox-win/urm.js:
2424         (else.window.performance.window.performance.now.currentTimeInMS):
2425         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2426         (else.else.currentTimeInMS):
2427         (onload.cb):
2428         (onload):
2429         * JSBench/amazon-firefox/urm.js:
2430         (else.window.performance.window.performance.now.currentTimeInMS):
2431         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2432         (else.else.currentTimeInMS):
2433         (onload.cb):
2434         (onload):
2435         * JSBench/amazon-safari/urem.js:
2436         (else.window.performance.window.performance.now.currentTimeInMS):
2437         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2438         (else.else.currentTimeInMS):
2439         (onload.cb):
2440         (onload):
2441         * JSBench/facebook-chrome-win/urem.js:
2442         (else.window.performance.window.performance.now.currentTimeInMS):
2443         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2444         (else.else.currentTimeInMS):
2445         (onload.cb):
2446         (onload):
2447         * JSBench/facebook-chrome/urem.js:
2448         (else.window.performance.window.performance.now.currentTimeInMS):
2449         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2450         (else.else.currentTimeInMS):
2451         (onload.cb):
2452         (onload):
2453         * JSBench/facebook-firefox-win/urem.js:
2454         (else.window.performance.window.performance.now.currentTimeInMS):
2455         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2456         (else.else.currentTimeInMS):
2457         (onload.cb):
2458         (onload):
2459         * JSBench/facebook-firefox/urem.js:
2460         (else.window.performance.window.performance.now.currentTimeInMS):
2461         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2462         (else.else.currentTimeInMS):
2463         (onload.cb):
2464         (onload):
2465         * JSBench/facebook-safari/urem.js:
2466         (else.window.performance.window.performance.now.currentTimeInMS):
2467         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2468         (else.else.currentTimeInMS):
2469         (onload.cb):
2470         (onload):
2471         * JSBench/google-chrome-win/urem.js:
2472         (else.window.performance.window.performance.now.currentTimeInMS):
2473         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2474         (else.else.currentTimeInMS):
2475         (onload.cb):
2476         (onload):
2477         * JSBench/google-chrome/urem.js:
2478         (else.window.performance.window.performance.now.currentTimeInMS):
2479         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2480         (else.else.currentTimeInMS):
2481         (onload.cb):
2482         (onload):
2483         * JSBench/google-firefox-win/urem.js:
2484         (else.window.performance.window.performance.now.currentTimeInMS):
2485         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2486         (else.else.currentTimeInMS):
2487         (onload.cb):
2488         (onload):
2489         * JSBench/google-firefox/uem.js:
2490         (else.window.performance.window.performance.now.currentTimeInMS):
2491         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2492         (else.else.currentTimeInMS):
2493         (onload.cb):
2494         (onload):
2495         * JSBench/google-safari/urem.js:
2496         (else.window.performance.window.performance.now.currentTimeInMS):
2497         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2498         (else.else.currentTimeInMS):
2499         (onload.cb):
2500         (onload):
2501         * JSBench/harness.js:
2502         (runBenchmark.window.currentTimeInMS):
2503         (runBenchmark.else.window.currentTimeInMS):
2504         * JSBench/twitter-chrome-win/rem.js:
2505         (else.window.performance.window.performance.now.currentTimeInMS):
2506         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2507         (else.else.currentTimeInMS):
2508         (onload.cb):
2509         (onload):
2510         * JSBench/twitter-chrome/urem.js:
2511         (else.window.performance.window.performance.now.currentTimeInMS):
2512         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2513         (else.else.currentTimeInMS):
2514         (onload.cb):
2515         (onload):
2516         * JSBench/twitter-firefox-win/urem.js:
2517         (else.window.performance.window.performance.now.currentTimeInMS):
2518         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2519         (else.else.currentTimeInMS):
2520         (onload.cb):
2521         (onload):
2522         * JSBench/twitter-firefox/urem.js:
2523         (else.window.performance.window.performance.now.currentTimeInMS):
2524         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2525         (else.else.currentTimeInMS):
2526         (onload.cb):
2527         (onload):
2528         * JSBench/twitter-safari/urem.js:
2529         (else.window.performance.window.performance.now.currentTimeInMS):
2530         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2531         (else.else.currentTimeInMS):
2532         (onload.cb):
2533         (onload):
2534         * JSBench/yahoo-chrome-win/urem.js:
2535         (else.window.performance.window.performance.now.currentTimeInMS):
2536         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2537         (else.else.currentTimeInMS):
2538         (onload.cb):
2539         (onload):
2540         * JSBench/yahoo-chrome/urem.js:
2541         (else.window.performance.window.performance.now.currentTimeInMS):
2542         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2543         (else.else.currentTimeInMS):
2544         (onload.cb):
2545         (onload):
2546         * JSBench/yahoo-firefox-win/urem.js:
2547         (else.window.performance.window.performance.now.currentTimeInMS):
2548         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2549         (else.else.currentTimeInMS):
2550         (onload.cb):
2551         (onload):
2552         * JSBench/yahoo-firefox/urem.js:
2553         (else.window.performance.window.performance.now.currentTimeInMS):
2554         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2555         (else.else.currentTimeInMS):
2556         (onload.cb):
2557         (onload):
2558         * JSBench/yahoo-safari/urem.js:
2559         (else.window.performance.window.performance.now.currentTimeInMS):
2560         (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
2561         (else.else.currentTimeInMS):
2562         (onload.cb):
2563         (onload):
2564
2565 2016-05-25  Geoffrey Garen  <ggaren@apple.com>
2566
2567         replaceable own properties seem to ignore replacement after property caching
2568         https://bugs.webkit.org/show_bug.cgi?id=158091
2569
2570         Reviewed by Darin Adler.
2571
2572         * MallocBench/MallocBench.xcodeproj/project.pbxproj:
2573         * MallocBench/MallocBench/Benchmark.cpp:
2574         * MallocBench/MallocBench/Interpreter.cpp:
2575         (Interpreter::doMallocOp):
2576         * MallocBench/MallocBench/Interpreter.h:
2577         * MallocBench/MallocBench/fastMallocLog.63316.ops: Added.
2578         * MallocBench/MallocBench/jetstream.cpp: Added.
2579         (benchmark_jetstream):
2580         * MallocBench/MallocBench/jetstream.h: Added.
2581
2582 2016-05-25  Keith Miller  <keith_miller@apple.com>
2583
2584         Unreviewed, add JSBench to the skipped list for now since it doesn't
2585         work currently.
2586
2587         * Skipped:
2588
2589 2016-05-17  Keith Miller  <keith_miller@apple.com>
2590         We should have JSBench in PerformanceTests
2591         https://bugs.webkit.org/show_bug.cgi?id=157952
2592
2593         Rubber-stamped by Saam Barati.
2594
2595         There are some slight changes to the layout of the test directory
2596         to make it work nicely with run-jsc-benchmarks. Before JSBench
2597         had each of the browser specific sub-tests in a sub-directory.
2598         These have been flattened e.g. amazon/safari/ has become
2599         amazon-safari/.
2600
2601         * JSBench/amazon-chrome-win/urem.html: Added.
2602         * JSBench/amazon-chrome-win/urem.js: Added.
2603         * JSBench/amazon-chrome/urem.html: Added.
2604         * JSBench/amazon-chrome/urem.js: Added.
2605         * JSBench/amazon-firefox-win/urm.html: Added.
2606         * JSBench/amazon-firefox-win/urm.js: Added.
2607         * JSBench/amazon-firefox/urm.html: Added.
2608         * JSBench/amazon-firefox/urm.js: Added.
2609         * JSBench/amazon-safari/urem.html: Added.
2610         * JSBench/amazon-safari/urem.js: Added.
2611         * JSBench/browsercheck.js: Added.
2612         * JSBench/facebook-chrome-win/urem.html: Added.
2613         * JSBench/facebook-chrome-win/urem.js: Added.
2614         * JSBench/facebook-chrome/urem.html: Added.
2615         * JSBench/facebook-chrome/urem.js: Added.
2616         * JSBench/facebook-firefox-win/urem.html: Added.
2617         * JSBench/facebook-firefox-win/urem.js: Added.
2618         * JSBench/facebook-firefox/urem.html: Added.
2619         * JSBench/facebook-firefox/urem.js: Added.
2620         * JSBench/facebook-safari/urem.html: Added.
2621         * JSBench/facebook-safari/urem.js: Added.
2622         * JSBench/google-chrome-win/urem.html: Added.
2623         * JSBench/google-chrome-win/urem.js: Added.
2624         * JSBench/google-chrome/urem.html: Added.
2625         * JSBench/google-chrome/urem.js: Added.
2626         * JSBench/google-firefox-win/urem.html: Added.
2627         * JSBench/google-firefox-win/urem.js: Added.
2628         * JSBench/google-firefox/uem.html: Added.
2629         * JSBench/google-firefox/uem.js: Added.
2630         * JSBench/google-safari/urem.html: Added.
2631         * JSBench/google-safari/urem.js: Added.
2632         * JSBench/harness.html: Added.
2633         * JSBench/harness.js: Added.
2634         * JSBench/harness.py: Added.
2635         * JSBench/index.html: Added.
2636         * JSBench/reload.html: Added.
2637         * JSBench/twitter-chrome-win/rem.html: Added.
2638         * JSBench/twitter-chrome-win/rem.js: Added.
2639         * JSBench/twitter-chrome/urem.html: Added.
2640         * JSBench/twitter-chrome/urem.js: Added.
2641         * JSBench/twitter-firefox-win/urem.html: Added.
2642         * JSBench/twitter-firefox-win/urem.js: Added.
2643         * JSBench/twitter-firefox/urem.html: Added.
2644         * JSBench/twitter-firefox/urem.js: Added.
2645         * JSBench/twitter-safari/urem.html: Added.
2646         * JSBench/twitter-safari/urem.js: Added.
2647         * JSBench/yahoo-chrome-win/urem.html: Added.
2648         * JSBench/yahoo-chrome-win/urem.js: Added.
2649         * JSBench/yahoo-chrome/urem.html: Added.
2650         * JSBench/yahoo-chrome/urem.js: Added.
2651         * JSBench/yahoo-firefox-win/urem.html: Added.
2652         * JSBench/yahoo-firefox-win/urem.js: Added.
2653         * JSBench/yahoo-firefox/urem.html: Added.
2654         * JSBench/yahoo-firefox/urem.js: Added.
2655         * JSBench/yahoo-safari/urem.html: Added.
2656         * JSBench/yahoo-safari/urem.js: Added.
2657
2658 2016-05-20  Ryosuke Niwa  <rniwa@webkit.org>
2659
2660         run-benchmark's results should contain Animometer's debug output
2661         https://bugs.webkit.org/show_bug.cgi?id=157941
2662
2663         Reviewed by Stephanie Lewis.
2664
2665         Made developer.html support the JSON generated by run-benchmark which stores everything under debugOutput.
2666
2667         * Animometer/resources/debug-runner/animometer.js:
2668         (Utilities.initialize): Unwrap debugOutput in the case run-benchmark's result JSON is used.
2669
2670 2016-05-18  Timothy Hatcher  <timothy@apple.com>
2671
2672         Make Animometer work in all browsers
2673         https://bugs.webkit.org/show_bug.cgi?id=157855
2674         rdar://problem/26338521
2675
2676         Reviewed by Jon Lee.
2677
2678         * Animometer/resources/runner/logo.svg: Use a symbol instead
2679         of putting the id on the root svg. This works in all browsers.
2680
2681 2016-05-07  Timothy Hatcher  <timothy@apple.com>
2682
2683         Update Animometer design
2684         https://bugs.webkit.org/show_bug.cgi?id=157449
2685
2686         Reviewed by Darin Adler.
2687
2688         * Animometer/developer.html: Stop including runner/animometer.css.
2689         * Animometer/index.html: Udpated elements to fit new styles.
2690
2691         * Animometer/resources/debug-runner/animometer.css:
2692         Copy the old runner/animometer.css to here so the debug runner is unaffected.
2693
2694         * Animometer/resources/runner/animometer.css:
2695         New styles for the design. Drop flex box for broad browser support.
2696
2697         * Animometer/resources/runner/animometer.js:
2698         (ResultsTable.clear): Use textContent.
2699         (window.sectionsManager.showSection): Add class to the body.
2700         (window.sectionsManager.setSectionScore): Use textContent, not innerHTML.
2701
2702         * Animometer/resources/runner/crystal.svg: Added.
2703         * Animometer/resources/runner/lines.svg: Added.
2704         * Animometer/resources/runner/logo.svg: Added.
2705
2706         * Animometer/resources/runner/tests.js: Shorten test name and title case them.
2707
2708 2016-05-06  Manuel Rego Casasnovas  <rego@igalia.com>
2709
2710         [css-grid] Unprefix CSS Grid Layout properties
2711         https://bugs.webkit.org/show_bug.cgi?id=157137
2712
2713         Reviewed by Simon Fraser.
2714
2715         Remove "-webkit" prefix from all the grid layout properties,
2716         including the display value.
2717         Update the source code to remove the prefix where it was used too.
2718
2719         * Layout/auto-grid-lots-of-data.html:
2720         * Layout/fixed-grid-lots-of-data.html:
2721         * Layout/fixed-grid-lots-of-stretched-data.html:
2722
2723 2016-04-25  Geoffrey Garen  <ggaren@apple.com>
2724
2725         bmalloc: Misc improvements to MallocBench
2726         https://bugs.webkit.org/show_bug.cgi?id=157004
2727
2728         Reviewed by Darin Adler.
2729
2730         * MallocBench/run-malloc-benchmarks: Added --memory and --memory_warning
2731         modes for focused memory testing.
2732
2733         * MallocBench/MallocBench/Benchmark.cpp:
2734         (Benchmark::printReport): Clarified output.
2735
2736         (Benchmark::currentMemoryBytes): Added compressed memory because top
2737         does the same. (It always happens to zero in the benchmarks we run. But
2738         this is good for sanity.)
2739
2740         * MallocBench/MallocBench/CommandLine.cpp: Moved up to 8 runs to reduce
2741         variance.
2742
2743         * MallocBench/MallocBench/alloc_free.cpp:
2744         (benchmark_alloc_free): Cycle a single allocation in order to stress
2745         the effect of merging on calls to madvise.
2746
2747         * MallocBench/MallocBench/big.cpp:
2748         (benchmark_big): Graduated to 8kB-128kB because medium tests up to 8 and
2749         our large allocator doesn't kick in until 64kB.
2750
2751         * MallocBench/MallocBench/medium.cpp:
2752         (benchmark_medium): Test all the way down to 1kB because our large
2753         allocator used to service 1kB allocations and 1kB is an interesting
2754         middle size where memory is unusually large but allocation throughput
2755         still matters.
2756
2757         * MallocBench/MallocBench/stress.cpp:
2758         (benchmark_stress): Reduced the churn count to match stress_aligned
2759         because this test was taking too long to complete.
2760
2761         * MallocBench/MallocBench/stress_aligned.cpp:
2762         (benchmark_stress_aligned): Our new large allocator can handle even
2763         more absurdly large values.
2764
2765 2016-04-25  Simon Fraser  <simon.fraser@apple.com>
2766
2767         Add a content animation test that uses SVG animation.
2768         https://bugs.webkit.org/show_bug.cgi?id=156827
2769
2770         * Animation/svg-animation.html: Added.
2771         * Skipped:
2772
2773 2016-04-22  Simon Fraser  <simon.fraser@apple.com>
2774
2775         Skip two content animation tests which are only meant for iOS testing.
2776
2777         * Animation/css-animation.html: Added.
2778         * Animation/raf-animation.html: Added.
2779
2780         * Skipped:
2781
2782 2016-04-20  Simon Fraser  <simon.fraser@apple.com>
2783
2784         Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
2785         https://bugs.webkit.org/show_bug.cgi?id=156827
2786
2787         Add two files missing from the previous commit.
2788
2789         * Animation/css-animation.html: Added.
2790         * Animation/raf-animation.html: Added.
2791
2792 2016-04-20  Simon Fraser  <simon.fraser@apple.com>
2793
2794         Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
2795         https://bugs.webkit.org/show_bug.cgi?id=156827
2796
2797         Reviewed by Stephanie Lewis.
2798
2799         Two new files for the content-animation suite.
2800
2801         After patching for use in the benchmark, these tests are a little different to other benchmarks.
2802         The test content itself does not collect performance data; the tests spit out a boilerplate JSON
2803         result with a placeholder for framerate, which is collected in native code.
2804
2805         When run as a benchmark, test completion involves a couple of bounces between the test and MobileSafari.
2806         Test completion is initiated by a setTimeout() in the test, at which point location.hash is set to "#done".
2807         MobileSafari detects that, and asynchronously dumps performance data. Once this is complete, MobileSafari
2808         changes the URL has to "#submit", which triggers the XHR to the test relay that indicates the test is
2809         complete.
2810
2811         * Animation/css-animation.html: Added.
2812         * Animation/raf-animation.html: Added.
2813
2814 2016-04-15  Jon Lee  <jonlee@apple.com>
2815
2816         Animometer test could report a NaN
2817         https://bugs.webkit.org/show_bug.cgi?id=156646
2818
2819         Reviewed by Darin Adler.
2820         Provisionally reviewed by Said Abou-Hallawa.
2821
2822         * Animometer/tests/resources/main.js:
2823         (didFinishInterval): The ramp controller has a first phase where it ramps up the complexity and
2824         reacts based on how well the system handles the load. The assumption was that it would handle at least
2825         1 particle easily. That is not always the case. As a result, an interpolation calculation could
2826         end up setting an upper bound of NaN.
2827
2828         This occurs because we never get out of the first tier, so this._lastTierComplexity is undefined.
2829         Now that we guarantee a minimum complexity of 1, modify the conditional to check for this._lastTierComplexity
2830         before interpolating the upper bound of the first ramp. In the case where the system struggles with
2831         1 particle, set it to currentComplexity.
2832
2833 2016-04-09  Jon Lee  <jonlee@apple.com>
2834
2835         Update Animometer to accommodate different screens
2836         https://bugs.webkit.org/show_bug.cgi?id=156449
2837
2838         Reviewed by Darin Adler.
2839         Provisionally reviewed by Said Abou-Hallawa.
2840
2841         * Animometer/index.html: Wrap button in a container to add padding at the bottom.
2842         * Animometer/resources/debug-runner/animometer.css:
2843         (@media screen and (min-device-width: 1800px)): Deleted.
2844         (@media screen and (min-width: 1800px)): Cannot use min-device-width since it may match incorrectly.
2845         (screen and (max-device-height: 414px) and (orientation: landscape)): Some devices swap device width
2846         and height with orientation change.
2847         * Animometer/resources/runner/animometer.css: Similar.
2848         (screen and (min-device-width: 1024px) and (orientation: landscape)):
2849         (screen and (max-device-height: 414px) and (orientation: landscape)):
2850         (.frame-container): On smaller iPhones, adding 1px prevents the navigation bars from appearing.
2851         (@media screen and (min-device-width: 768px) and (max-device-width: 1024px)): Deleted.
2852         (@media (min-device-height: 768px) and (max-device-height: 1024px)): Target iPad Airs and similar.
2853         (@media screen and (min-device-width: 1024px) and (max-device-width: 1366px)): Deleted.
2854         (@media screen and (max-device-width: 1024px) and (min-device-height: 1366px)): Target iPad Pro.
2855         (#results footer): Add padding below the button for testing again.
2856         * Animometer/tests/master/multiply.html: Remove the center text.
2857         * Animometer/tests/master/resources/text.js: Update the test so that in every frame the text moves.
2858         * Animometer/tests/master/text.html: Update the text sizing depending on the size of the device.
2859
2860 2016-04-08  Jon Lee  <jonlee@apple.com>
2861
2862         Have Animometer benchmark always start with complexity of 1
2863         https://bugs.webkit.org/show_bug.cgi?id=156432
2864
2865         Reviewed by Ryosuke Niwa.
2866
2867         * Animometer/tests/resources/main.js: Update the default Controller and RampController to
2868         set its minimum complexities to 1 instead of 0.
2869
2870 2016-04-08  Jon Lee  <jonlee@apple.com>
2871
2872         Fix SVG benchmark test
2873         https://bugs.webkit.org/show_bug.cgi?id=156410
2874
2875         Reviewed by Dean Jackson.
2876
2877         * Animometer/resources/extensions.js: Update Point.zero to be a static Point.
2878         * Animometer/tests/simple/resources/tiled-canvas-image.js:
2879         (Stage.call._setupTiles): Refactor.
2880         * Animometer/tests/master/resources/particles.js:
2881         (Particle.prototype.reset): Use Point.center.
2882         (complexity): We are not using a gradient background anymore, so remove the +1.
2883         * Animometer/tests/master/resources/svg-particles.js: Update to use SVG transform
2884         instead of CSS transform.
2885
2886 2016-04-06  Jon Lee  <jonlee@apple.com>
2887
2888         Update master benchmark with SVG test
2889         https://bugs.webkit.org/show_bug.cgi?id=156273
2890
2891         Reviewed by Dean Jackson.
2892         Provisionally reviewed by Said Abou-Hallawa.
2893
2894         Switch masks tests for SVG path test.
2895
2896         * Animometer/resources/debug-runner/tests.js: Move mask test here.
2897         * Animometer/resources/runner/tests.js: Add SVG test here.
2898         * Animometer/tests/dom/particles.html: Renamed from PerformanceTests/Animometer/tests/master/particles.html.
2899         * Animometer/tests/dom/resources/dom-particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/dom-particles.js.
2900
2901         * Animometer/tests/master/resources/particles.js: Add minPosition for bounds checking. Prevents particle from being
2902         partially obscured.
2903         * Animometer/tests/master/resources/svg-particles.js: Added.
2904         (Particle): The particle is either a path object or a rect using a path as a clip. The
2905         same path is used either way. For each particle create a linear gradient with a random
2906         rotation.
2907         (SVGParticlesStage): Look in #shapes to see how many different kinds of paths are available.
2908         This makes the test more generic in case other shapes need to be tested.
2909         * Animometer/tests/master/svg-particles.html: Added. Have two defs, one that houses each
2910         particle's gradient, and one that holds the shape templates.
2911
2912 2016-03-27  Hunseop Jeong  <hs85.jeong@samsung.com>
2913
2914         [EFL] REGRESSION(r188793): It made 200 layout tests and Bindings/event-target-wrapper.html performance test fail
2915         https://bugs.webkit.org/show_bug.cgi?id=148470 
2916
2917         Reviewed by Darin Adler.
2918
2919         * Skipped: Unskip the Bindings/event-target-wrapper test.
2920
2921 2016-03-23  Jon Lee  <jonlee@apple.com>
2922
2923         Update focus and leaves tests
2924         https://bugs.webkit.org/show_bug.cgi?id=155825
2925
2926         Reviewed by Simon Fraser.
2927
2928         Particles would improperly disappear, before they were fully off stage. Update the calculation.
2929         * Animometer/tests/dom/resources/leaves.js:
2930         * Animometer/tests/master/resources/leaves.js:
2931
2932         * Animometer/tests/master/focus.html: Update the center element styling.
2933         * Animometer/tests/master/resources/focus.js:
2934         (FocusElement.Utilities.createClass): Give enough space in the container for each particle for the blur
2935         to spread. It should be about 3x more space than the blur radius on each side.
2936         (Stage.call.initialize): Ditto for the center element.
2937
2938 2016-03-23  Jon Lee  <jonlee@apple.com>
2939
2940         Update support for other platforms
2941         https://bugs.webkit.org/show_bug.cgi?id=155824
2942
2943         Reviewed by Simon Fraser.
2944
2945         * Animometer/resources/debug-runner/animometer.css: Remove extraneous media query. All of it should
2946         be handled in the release stylesheet.
2947         * Animometer/resources/debug-runner/animometer.js: Add support for browsers that return an HTMLCollection
2948         when retrieving radio elements with a name, instead of the selected value.
2949         * Animometer/resources/runner/animometer.css: Adjust the queries for devices of varying widths.
2950         (.frame-container): Move overflow:hidden to #stage.
2951         * Animometer/tests/master/resources/stage.css: Consolidate into tests/resources/stage.css.
2952         * Animometer/tests/resources/stage.css:
2953         (body): Remove overflow:hidden.
2954         (#stage): Set overflow:hidden here.
2955         (#center-text): Moved from master/resources/stage.css.
2956
2957         Update stylesheet hrefs.
2958         * Animometer/tests/master/canvas-stage.html:
2959         * Animometer/tests/master/focus.html:
2960         * Animometer/tests/master/leaves.html:
2961         * Animometer/tests/master/multiply.html:
2962         * Animometer/tests/master/particles.html:
2963         * Animometer/tests/master/text.html: Adjust text size to fit in the device screen.
2964
2965 2016-03-23  Jon Lee  <jonlee@apple.com>
2966
2967         Make the benchmark require device to be in landscape orientation
2968         https://bugs.webkit.org/show_bug.cgi?id=155822
2969         rdar://problem/25258650
2970
2971         Reviewed by Ryosuke Niwa.
2972
2973         Check that the device is in landscape orientation. If not, disable the button to start it,
2974         and show a warning message.
2975
2976         * Animometer/developer.html: Add a message about how the browser should be set up. Include a
2977         warning message that appears if the orientation is incorrect on mobile devices.
2978         * Animometer/index.html: Ditto.
2979
2980         * Animometer/resources/debug-runner/animometer.css: Migrate the .hidden rule into the release
2981         stylesheet. Update the style to accommodate the new UI.
2982         * Animometer/resources/runner/animometer.css:
2983
2984         * Animometer/resources/runner/animometer.js:
2985         (window.benchmarkController.initialize): Add the orientation listener is needed.
2986         (window.benchmarkController.addOrientationListenerIfNecessary): Only mobile devices need this. Check
2987         to see for support of window.orientation.
2988         (window.benchmarkController._orientationChanged): Toggle the warning based on whether we match the
2989         landscape query. Set a state variable, which is needed for the debug harness. Call updateStartButtonState.
2990         (window.benchmarkController.updateStartButtonState):
2991         * Animometer/resources/debug-runner/animometer.js: Change _updateStartButtonState to return
2992         a boolean about whether at least one test is selected. That will be used in
2993         benchmarkController.updateStartButtonState(). Move the load event listener to the release version.
2994         (window.benchmarkController.updateStartButtonState): Override the release version, and also check
2995         that at least one test is selected.
2996
2997 2016-03-22  Geoffrey Garen  <ggaren@apple.com>
2998
2999         MallocBench: consolidate regression testing for aligned allocation
3000         https://bugs.webkit.org/show_bug.cgi?id=155762
3001
3002         Reviewed by Michael Saboff.
3003
3004         * MallocBench/MallocBench.xcodeproj/project.pbxproj:
3005         * MallocBench/MallocBench/Benchmark.cpp:
3006         * MallocBench/MallocBench/memalign.cpp: Removed.
3007         * MallocBench/MallocBench/memalign.h: Removed. The stress_aligned test
3008         covers this and much more.
3009
3010         * MallocBench/MallocBench/stress_aligned.cpp:
3011         (benchmark_stress_aligned): Include specific tests for extreme sizes
3012         and alignments.
3013
3014 2016-03-21  Jon Lee  <jonlee@apple.com>
3015
3016         Update benchmark tests
3017         https://bugs.webkit.org/show_bug.cgi?id=155723
3018
3019         Reviewed by Darin Adler.
3020         Provisionally reviewed by Said Abou-Hallawa.
3021
3022         Add quadratic and bezier segments to the canvas path test.
3023
3024         * Animometer/resources/runner/tests.js: Some of the query strings are unnecessary.
3025         Rename the test.
3026         * Animometer/tests/master/resources/canvas-stage.js:
3027         (tune): Update to be able to take an array of possible constructors. Choose one randomly.
3028         * Animometer/tests/master/resources/canvas-tests.js:
3029         (CanvasLinePoint.Utilities.createClass): Move the point selection out to a separate
3030         function called randomPoint() for reuse. Move X_LOOPS, Y_LOOPS, and offsets into the
3031         class definition.
3032         (randomPoint): Scale the grid down a little bit so that the lines along the edge of the
3033         canvas are not cut off when the stroke size is thick.
3034         (CanvasQuadraticSegment): Added.
3035         (CanvasBezierSegment): Added.
3036         (SimpleCanvasStage): Pass in an array of the different segment types. Since line segments
3037         are short compared to the curved ones, make it twice as likely to render a line segment.
3038         (SimpleCanvasStage.animate): Update the drawing code so that we render all line segments.
3039
3040         Add a helper method that selects a random element from an array.
3041
3042         * Animometer/tests/resources/main.js:
3043         (Stage.randomElementInArray): Select a random element from the provided array.
3044
3045         * Animometer/tests/bouncing-particles/resources/bouncing-tagged-images.js: Refactor.
3046         * Animometer/tests/dom/resources/leaves.js: Ditto.
3047         * Animometer/tests/master/resources/dom-particles.js: Ditto.
3048         * Animometer/tests/master/resources/image-data.js: Ditto.
3049         * Animometer/tests/master/resources/leaves.js: Ditto.
3050         * Animometer/tests/simple/resources/simple-canvas-paths.js: Ditto.
3051
3052         Add canvas tests that includes all stroke and fill paths. This makes it possible to avoid having to
3053         include the full simple canvas suite for perf testing.
3054
3055         * Animometer/resources/debug-runner/tests.js: Add new tests. Move the canvas test into the Canvas
3056         suite.
3057         * Animometer/tests/simple/resources/simple-canvas-paths.js: Add a CanvasStroke and CanvasFill particle
3058         that random selects an object to render.
3059
3060         * Animometer/resources/debug-runner/tests.js: Move 3D suite before basic canvas suite.
3061         When updating the perf bot script, we will include the suites up to this one, but exclude
3062         the basic canvas suite.
3063
3064         Move compositing transforms test to HTML suite and remove the empty Miscellaneous suite.
3065
3066         * Animometer/resources/debug-runner/tests.js:
3067         * Animometer/tests/dom/compositing-transforms.html: Renamed from PerformanceTests/Animometer/tests/misc/compositing-transforms.html.
3068         * Animometer/tests/dom/resources/compositing-transforms.js: Renamed from PerformanceTests/Animometer/tests/misc/resources/compositing-transforms.js.
3069
3070         Clean up miscellaneous test suite. Add a canvas ellipse test, and remove the other
3071         canvas tests.
3072
3073         * Animometer/resources/debug-runner/tests.js: Add ellipse tests to the simple suite.
3074         * Animometer/tests/misc/canvas-electrons.html: Removed.
3075         * Animometer/tests/misc/canvas-stars.html: Removed.
3076         * Animometer/tests/misc/resources/canvas-electrons.js: Removed.
3077         * Animometer/tests/misc/resources/canvas-stars.js: Removed.
3078         * Animometer/tests/simple/resources/simple-canvas-paths.js: Add ellipse primitives.
3079
3080         Merge text tests together into one.
3081
3082         * Animometer/resources/runner/tests.js: Remove international.html.
3083         * Animometer/tests/master/international.html: Removed.
3084         * Animometer/tests/master/resources/text.js:
3085         (animate): Update styling. Manually calculate gradients for the shadow particles.
3086         Reduce the step size for y direction to avoid cutting text off at the margins. Increase
3087         step for x since there will be a little more room.
3088         * Animometer/tests/master/text.html: Add more translations and lay it out in a table.
3089
3090 2016-03-20  Jon Lee  <jonlee@apple.com>
3091
3092         Add a link to show debug data
3093         https://bugs.webkit.org/show_bug.cgi?id=155724
3094
3095         Reviewed by Simon Fraser.
3096
3097         * Animometer/developer.html: Attach the onclick handler to the score.
3098         * Animometer/index.html: Ditto.
3099
3100 2016-03-18  Dean Jackson  <dino@apple.com>
3101
3102         Add a basic WebGL test to Animometer
3103         https://bugs.webkit.org/show_bug.cgi?id=155475
3104         <rdar://problem/25156860>
3105
3106         Reviewed by Simon Fraser and Jon Lee.
3107
3108         Add a pretty simple WebGL test to Animometer
3109         which tries to draw a number of animated triangles.
3110         The result still needs a bit of tuning.
3111
3112         * Animometer/resources/debug-runner/tests.js: Add a new
3113         Suite for "3D" tests.
3114         * Animometer/tests/3d/resources/webgl.js: Added.
3115         * Animometer/tests/3d/webgl.html: Added.
3116
3117 2016-03-18  Jon Lee  <jonlee@apple.com>
3118
3119         Add support for statically linking to a specific test
3120         https://bugs.webkit.org/show_bug.cgi?id=155631
3121
3122         Rubber-stamped by Darin Adler.
3123
3124         * Animometer/developer.html: Update to call restartBenchmark instead so that it works for
3125         both the preset and the manually set test sessions.
3126         * Animometer/resources/debug-runner/animometer.css:
3127         (.tree .link): Style the "link" UI.
3128         * Animometer/resources/debug-runner/animometer.js: Move updateDisplay from suitesManager
3129         to optionsManager since this is a visual option and has nothing to do with the suites
3130         settings. Update the construction of the test UI by including a "link" after each test.
3131         Clicking on that link brings up a JS prompt with a URL and a query string with the current
3132         parameters of the controller, and selected test. Pasting this URL into the location bar will
3133         automatically start running the selected test.
3134         (suitesManager.suitesFromQueryString): Iterate through the Suites and tests and find the one
3135         that matches the provided parameters. Returns an object similar to the form in
3136         suitesManager.updateLocalStorageFromUI.
3137         (benchmarkController.initialize): After settings up the events and options, try parsing the
3138         query string and running the benchmark immediately. Otherwise, fall back to the form.
3139         (benchmarkController.startBenchmark): Store the options and suites into member variables for
3140         reuse in restartBenchmark.
3141         (benchmarkController.startBenchmarkImmediatelyIfEncoded): Convert the query string to an object.
3142         If that's successful, find the suite and test referenced in the query string. Start the benchmark if
3143         the search for the test succeeded.
3144         * Animometer/resources/extensions.js:
3145         (Utilities.stripNonASCIICharacters): Helper method to convert the name of the suite and test
3146         into a query-string-friendly version.
3147         (Utilities.convertObjectToQueryString): Helper method to convert an object to query string
3148         format.
3149         (Utilities.convertQueryStringToObject): Helper method to convert query string into an object
3150         with properties and values.
3151
3152 2016-03-16  Jon Lee  <jonlee@apple.com>
3153
3154         Add a new benchmark test
3155         https://bugs.webkit.org/show_bug.cgi?id=155570
3156
3157         Reviewed by Simon Fraser.
3158
3159         New Leaves test includes various image sizes and opacity.
3160
3161         * Animometer/resources/debug-runner/tests.js: Add it to the HTML test suite.
3162         * Animometer/tests/dom/leaves.html: Added.
3163         * Animometer/tests/dom/resources/leaves.js: Added. Override the
3164         (Particle.call.reset): Uses a range of sizes, and opacity.
3165         (Particle.call.animate): Opacity goes up then down. When it hits 0, reset the particle.
3166         (Particle.call.move): Set transform and opacity.
3167         * Animometer/tests/master/resources/leaves.js: Get rid of the closure so that it
3168         can be used in this test. Update the relative path so that it works in both the master
3169         and dom test suite.
3170
3171 2016-03-15  Simon Fraser  <simon.fraser@apple.com>
3172
3173         Add developer Animometer test that bounces P3-tagged images
3174         https://bugs.webkit.org/show_bug.cgi?id=155511
3175
3176         Reviewed by Tim Horton.
3177         
3178         Add a test for rendering performance of tagged images. The 5 images are tagged
3179         with the Display P3 colorspace.
3180
3181         * Animometer/resources/debug-runner/tests.js:
3182         * Animometer/tests/bouncing-particles/bouncing-tagged-images.html: Added.
3183         * Animometer/tests/bouncing-particles/resources/bouncing-tagged-images.js: Added.
3184         * Animometer/tests/bouncing-particles/resources/image1.jpg: Added.
3185         * Animometer/tests/bouncing-particles/resources/image2.jpg: Added.
3186         * Animometer/tests/bouncing-particles/resources/image3.jpg: Added.
3187         * Animometer/tests/bouncing-particles/resources/image4.jpg: Added.
3188         * Animometer/tests/bouncing-particles/resources/image5.jpg: Added.
3189
3190 2016-03-09  Jon Lee  <jonlee@apple.com>
3191
3192         Enhance existing Animometer tests
3193         https://bugs.webkit.org/show_bug.cgi?id=155261
3194
3195         Reviewed by Simon Fraser.
3196
3197         * Animometer/tests/master/resources/canvas-tests.js: Add a gradient to
3198         the filled circles. To expose more of the gradient, add another circle.
3199         (SimpleCanvasStage.call.animate): For each frame, create a gradient with
3200         undulating stop points and colors. Fill the circles twice; once with
3201         the solid color, and once with the gradient.
3202
3203         * Animometer/tests/master/resources/dom-particles.js: Refactor the
3204         emission variables into a separate stage for this test. Add a colorOffset
3205         variable to make the colors of each particle slightly different, since
3206         the ramp controller can add large numbers of particles all at once, which
3207         would otherwise get all the same color.
3208         * Animometer/tests/master/resources/particles.js:
3209         (initialize): Remove the code specific to the SVG mask test.
3210
3211         * Animometer/tests/master/resources/image-data.js:
3212         (initialize): Remove unused local variable.
3213         * Animometer/tests/master/resources/multiply.js:
3214         (initialize): Make the test harder by adding more total particles.
3215
3216 2016-03-09  Jon Lee  <jonlee@apple.com>
3217
3218         Add text tests
3219         https://bugs.webkit.org/show_bug.cgi?id=155257
3220
3221         Reviewed by Simon Fraser.
3222
3223         * Animometer/resources/extensions.js:
3224         (UnitBezier.Utilities.createClass): Add a class that computes Bezier points
3225         assuming that two of the control points are at (0,0) and (1,1). Taken from
3226         WebCore/platform/graphics/UnitBezier.h
3227         * Animometer/resources/runner/tests.js: Add a test for English text and one
3228         for international text.
3229         * Animometer/tests/master/international.html: Added.
3230         * Animometer/tests/master/resources/text.js: Added. The test assumes there is
3231         #template div which it will copy. The copies are placed behind the template, and
3232         are set with different colors each frame. They are moved around with CSS transform.
3233         * Animometer/tests/master/text.html: Added.
3234
3235         Remove the other text tests, since these ones cover the same techniques.
3236         * Animometer/tests/text/layering-text.html: Removed.
3237         * Animometer/tests/text/resources/layering-text.js: Removed.
3238         * Animometer/tests/text/resources/text-boxes.js: Removed.
3239         * Animometer/tests/text/text-boxes.html: Removed.
3240         * Animometer/resources/debug-runner/tests.js:
3241
3242 2016-03-09  Jon Lee  <jonlee@apple.com>
3243
3244         Add a new image test
3245         https://bugs.webkit.org/show_bug.cgi?id=155232
3246
3247         Reviewed by Dean Jackson.
3248         Provisionally reviewed by Said Abou-Hallawa.
3249
3250         The image test renders PNGs and moves them with translate and rotate
3251         transforms. Each particle has a lifetime, and when the lifetime ends or
3252         the particle goes offscreen, it resets itself somewhere on the stage.
3253
3254         * Animometer/resources/debug-runner/tests.js: Remove the CSS bouncing PNG
3255         images test, because this one tests the same technique.
3256         * Animometer/resources/runner/tests.js: Added here as "Leaves".
3257         * Animometer/tests/master/leaves.html: Added.
3258         * Animometer/tests/master/resources/particles.js: Refactor out the parts
3259         specific to the DOM particles test. Consequently make velocity a public
3260         member.
3261         (initialize): The options parameter is never used, so remove it.
3262         (animate): Remove unused local variable.
3263         * Animometer/tests/master/resources/leaves.js: Maintains a focal point that
3264         moves back and forth across the canvas. That point affects the velocity
3265         of the particles. When the focal point is on the leftmost side, it is
3266         between [-6, -2], and set in reset(). When the focal point is on the rightmost
3267         side, it will be from [2, 6].
3268         * Animometer/tests/master/resources/dom-particles.js: Move JS specific to
3269         this test here from particles.js.
3270
3271         New images.
3272         * Animometer/tests/master/resources/compass100.png: Added.
3273         * Animometer/tests/master/resources/console100.png: Added.
3274         * Animometer/tests/master/resources/contribute100.png: Added.
3275         * Animometer/tests/master/resources/debugger100.png: Added.
3276         * Animometer/tests/master/resources/inspector100.png: Added.
3277         * Animometer/tests/master/resources/layout100.png: Added.
3278         * Animometer/tests/master/resources/performance100.png: Added.
3279         * Animometer/tests/master/resources/script100.png: Added.
3280         * Animometer/tests/master/resources/shortcuts100.png: Added.
3281         * Animometer/tests/master/resources/standards100.png: Added.
3282         * Animometer/tests/master/resources/storage100.png: Added.
3283         * Animometer/tests/master/resources/styles100.png: Added.
3284         * Animometer/tests/master/resources/timeline100.png: Added.
3285
3286 2016-03-03  Jon Lee  <jonlee@apple.com>
3287
3288         Add ability to retrieve raw data from release harness
3289         https://bugs.webkit.org/show_bug.cgi?id=155026
3290
3291         Reviewed by Simon Fraser.
3292
3293         * Animometer/developer.html: Remove the special UI in the debug
3294         harness.
3295         * Animometer/resources/runner/animometer.css: Add styles for the
3296         overlay.
3297         * Animometer/resources/runner/animometer.js: Let 'j' show the JSON
3298         results, but only if the overlay doesn't exist. Add 'esc' key to dismiss
3299         the overlay.
3300         (window.benchmarkController.selectResults): Cycle the cases around
3301         so that the first 's' press selects both the benchmark score and
3302         the individual test scores.
3303         * Animometer/resources/debug-runner/animometer.css: Remove
3304         unneeded rules.
3305         * Animometer/resources/debug-runner/animometer.js: Make the same
3306         call to handleKeyPress.
3307
3308 2016-03-03  Jon Lee  <jonlee@apple.com>
3309
3310         Make sure multiply test particles have at least some opacity
3311         https://bugs.webkit.org/show_bug.cgi?id=155027
3312
3313         Reviewed by Simon Fraser.
3314
3315         * Animometer/tests/master/resources/multiply.js:
3316         (initialize): Have the elements spin a little faster to make it
3317         more obvious when the system is being stressed.
3318         (_addTile):
3319         (animate): Make sure each element being animated has at least 1%
3320         opacity.
3321
3322 2016-03-03  Jon Lee  <jonlee@apple.com>
3323
3324         Update image test
3325         https://bugs.webkit.org/show_bug.cgi?id=154962
3326
3327         Rubber-stamped by Darin Adler.
3328
3329         * Animometer/tests/master/image-data.html: Make each canvas have a compositing layer.
3330         * Animometer/tests/master/resources/image-data.js:
3331         (initialize): Update to load multiple images serially.
3332         (_loadImage):
3333         (tune): Use display instead of visibility. When showing an element anew, move it somewhere else.
3334         (_createTestElement): Set up the element, refactor out placement of element to _refreshElement.
3335         (_refreshElement): Place element in a tile grid.
3336         (animate):
3337         (_getRandomNeighboringPixelIndex): Use a more conservative distribution to make the effect last a little longer.
3338         * Animometer/tests/master/resources/compass.svg: Added.
3339         * Animometer/tests/master/resources/console.svg: Added.
3340         * Animometer/tests/master/resources/contribute.svg: Added.
3341         * Animometer/tests/master/resources/debugger.svg: Added.
3342         * Animometer/tests/master/resources/inspector.svg: Added.
3343         * Animometer/tests/master/resources/layout.svg: Added.
3344         * Animometer/tests/master/resources/performance.svg: Added.
3345         * Animometer/tests/master/resources/script.svg: Added.
3346         * Animometer/tests/master/resources/shortcuts.svg: Added.
3347         * Animometer/tests/master/resources/standards.svg: Added.
3348         * Animometer/tests/master/resources/storage.svg: Added.
3349         * Animometer/tests/master/resources/styles.svg: Added.
3350         * Animometer/tests/master/resources/timeline.svg: Added.
3351
3352 2016-03-02  Jon Lee  <jonlee@apple.com>
3353
3354         Add some new controllers, and refine tests
3355         https://bugs.webkit.org/show_bug.cgi?id=154914
3356
3357         Reviewed by Simon Fraser.
3358
3359         Improve tests.</