Add basic canvas tests
[WebKit-https.git] / PerformanceTests / ChangeLog
1 2015-10-12  Jon Lee  <jonlee@apple.com>
2
3         Add basic canvas tests
4         https://bugs.webkit.org/show_bug.cgi?id=150066
5         rdar://problem/23081143
6
7         Reviewed by Dean Jackson.
8
9         This adds a new test suite that will cover all of the path-based canvas calls.
10         The patch will be divided up to cover tests with similar techniques.
11
12         The simplest version uses a SimpleCanvasStage.
13
14         * Animometer/runner/resources/tests.js: Add tests for quadratic, bezier, arcTo,
15         arc, and rect segments. Also include arcTo, arc, and rect fills.
16         * Animometer/tests/resources/stage.js:
17         (Stage.prototype.randomBool): Added for counterclockwise property for arc segments.
18         (Stage.prototype.randomInt): Fix how values are rounded, used by randomBool. It should
19         round instead of flooring everything.
20         * Animometer/tests/simple/resources/simple-canvas.js: Added. Defines common classes
21         used by all simple canvas tests. The page reads best bottom to top.
22         (SimpleCanvasStage): Basic stage. Pass a canvasObject which will be used to create new
23         objects as needed in tune().
24         (SimpleCanvasStage.prototype.tune): Modeled on other tests. Adds and removed objects
25         as specified by the provided |count|.
26         (SimpleCanvasStage.prototype.animate): Iterate over all the objects and ask them to draw.
27         There is no "animating" of the objects; they will just paint statically on the canvas.
28         (SimpleCanvasAnimator): Basic animator clears the canvas prior to painting.
29         (SimpleCanvasBenchmark): Hard-code the feedback loop parameters instead of including
30         them in the query parameters to the test URLs.
31         (SimpleCanvasBenchmark.prototype.createAnimator):
32         * Animometer/tests/simple/simple-canvas-paths.html: Added.
33
34         * Animometer/tests/simple/resources/simple-canvas-paths.js: Added. There is no "animating"
35         of these objects--they just paint statically on the canvas.
36         (CanvasQuadraticSegment): Paint a quadratic segment stroke.
37         (CanvasBezierSegment): Paint a bezier segment stroke.
38         (CanvasArcToSegment): Paint an arcTo stroke.
39         (CanvasArcSegment): Paint an arc stroke.
40         (CanvasRect): Paint a rect.
41         (CanvasRectFill): Paint a filled rect.
42
43         (CanvasPathBenchmark):
44         (CanvasPathBenchmark.prototype.createStage): Look for the pathType and create the
45         stage using the right paint object.
46         (window.benchmarkClient.create):
47
48 2015-10-12  Jon Lee  <jonlee@apple.com>
49
50         Refactor tune() to pass in an integer-based count
51         https://bugs.webkit.org/show_bug.cgi?id=150060
52         <rdar://problem/23079425>
53
54         Reviewed by Dean Jackson.
55
56         All of the tune functions do an initial step of flooring the
57         # of painting objects to add or remove. Factor that out since
58         the complexity of all of these tests is always expressed in terms
59         of countable items.
60
61         * Animometer/tests/resources/main.js:
62         (Benchmark.prototype.update): Update the tuneValue.
63
64         * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
65         (BouncingParticlesStage.prototype.tune): Remove the count adjustment.
66         * Animometer/tests/examples/resources/canvas-electrons.js:
67         (CanvasElectronsStage.prototype.tune): Ditto.
68         * Animometer/tests/examples/resources/canvas-stars.js:
69         (CanvasStarsStage.prototype.tune): Ditto.
70         * Animometer/tests/text/resources/layering-text.js:
71         (LayeringTextStage.prototype.tune): Ditto.
72
73 2015-10-12  Jon Lee  <jonlee@apple.com>
74
75         Store test-interval in localStorage
76         https://bugs.webkit.org/show_bug.cgi?id=150055
77         <rdar://problem/23078879>
78
79         Reviewed by Dean Jackson.
80
81         * Animometer/runner/resources/animometer.js:
82         (populateSettings): Keep track of the specified test interval in localStorage
83         to make it easy to repeat a test suite.
84
85 2015-10-12  Jon Lee  <jonlee@apple.com>
86
87         Remove "../tests/" from the URLs of all tests
88         https://bugs.webkit.org/show_bug.cgi?id=150054
89         <rdar://problem/23078784>
90
91         Reviewed by Dean Jackson.
92
93         Presumably all tests will be running from the tests/ directory,
94         so we don't have to specify it in all of the test URLs.
95
96         * Animometer/runner/resources/benchmark-runner.js:
97         (BenchmarkRunnerState.prototype.prepareCurrentTest): Prepend
98         "../tests/" to all tests.
99         * Animometer/runner/resources/tests.js: Remove "../tests/" from
100         all URLs.
101
102 2015-10-12  Jon Lee  <jonlee@apple.com>
103
104         Refactor test suites to a separate class.
105         https://bugs.webkit.org/show_bug.cgi?id=150053
106         <rdar://problem/23078645>
107
108         Reviewed by Dean Jackson.
109
110         Create a Suite class to refactor out prepare() and run().
111         Generate the checkboxes representing the suites using Suites
112         instead of maintaining a separate list. Also, save the
113         selections out to localStorage.
114
115         * Animometer/runner/animometer.html: Remove the explicitly listed
116         suites. These will be generated from Suites instead.
117         * Animometer/runner/resources/animometer.js:
118         (populateSettings): Iterate through Suites, and create the
119         label and checkbox. Attach the Suite object to the checkbox so
120         when the benchmark is started, we get direct access. Initialize
121         the checkmark based on its value in localStorage. Set this to
122         run when DOMContentLoaded is dispatched.
123         (startBenchmark): Grab all of the checkboxes, inspect their
124         values, add it to enabledSuites if selected. Remember whether
125         the suite was enabled in localStorage, so that it's easy to do
126         repeated runs.
127         * Animometer/runner/resources/tests.js:
128         (Suite): Create a new Suite class. Refactor out prepare() and
129         run(), since all of them have the same implementation. Populate
130         Suites with Suite instances instead of generic objects.
131
132 2015-10-12  Jon Lee  <jonlee@apple.com>
133
134         Update graph styles for legibility.
135         https://bugs.webkit.org/show_bug.cgi?id=150052
136         <rdar://problem/23078503>
137
138         Reviewed by Dean Jackson.
139
140         * Animometer/runner/resources/animometer.css: Update colors and
141         stroke thicknesses to make the graphs easier to read.
142         (.smaple-time): Correct to .sample-time
143         * Animometer/runner/resources/graph.js:
144         (graph): Ditto.
145
146 2015-10-12  Jon Lee  <jonlee@apple.com>
147
148         Update graph styles for legibility.
149         https://bugs.webkit.org/show_bug.cgi?id=150052
150         <rdar://problem/23078503>
151
152         Reviewed by Dean Jackson.
153
154         * Animometer/runner/resources/animometer.css: Update colors and
155         stroke thicknesses to make the graphs easier to read.
156         (.smaple-time): Correct to .sample-time
157         * Animometer/runner/resources/graph.js:
158         (graph): Ditto.
159
160 2015-10-12  Filip Pizlo  <fpizlo@apple.com>
161
162         Unreviewed, revert an unintended commit.
163
164         * JetStream/Octane2/crypto.js:
165         (montRevert):
166         (montReduce):
167
168 2015-10-05  Said Abou-Hallawa  <sabouhallawa@apple.com>
169
170         Add a graphics benchmark
171         https://bugs.webkit.org/show_bug.cgi?id=149053
172         <rdar://problem/18984169>
173
174         Reviewed by Dean Jackson.
175
176         Instead of measuring the FPS of the animation, this benchmark measures the
177         test complexity when rendering at a set-point FPS which should be lower
178         than 60 FPS. This benchmark tries to stay at the set-point FPS by using
179         a closed loop control system PID function. The gain of the system is passed
180         as a parameter when running the test. Measuring the FPS faithfully results
181         very fluctuating values. A Kalman filter is used to give a better estimate
182         for the current FPS.
183
184         The animation of the tests is done manually. requestAnimationFrame() is
185         called with a callback. Inside this callback, the test is animating by
186         changing the positions of the elements inside the page. The test complexity
187         may change also if the current FPS is not equal to the desired FPS.
188
189         In this patch, the benchmark and the tests are included. The shared code
190         and the tests runner are included in separate patches.
191
192         * Animometer/runner/animometer.html:
193         * Animometer/runner/resources/animometer.js:
194         Add two new examples for more complex animation techniques.
195         Add an option to show/hide the test running results which is off by default.
196
197         * Animometer/runner/resources/tests.js: Added.
198         (suiteFromName): Returns a suite given its name.
199         (testFromName): Returns a test given its suite and name.
200
201         * Animometer/tests: Added.
202         This directory includes all the test suites to be run by the benchmark.
203         runner. All the tests should try to run on three stages: CSS, canvas and
204         SVG.
205         
206         * Animometer/tests/bouncing-particles: Added.
207         * Animometer/tests/bouncing-particles/resources: Added.
208         The bouncing particles test is an example of a simple animation technique.
209         
210         * Animometer/tests/bouncing-particles/bouncing-canvas-images.html: Added.
211         * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Added.
212         * Animometer/tests/bouncing-particles/bouncing-css-images.html: Added.
213         * Animometer/tests/bouncing-particles/bouncing-css-shapes.html: Added.
214         * Animometer/tests/bouncing-particles/bouncing-svg-images.html: Added.
215         * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html: Added.
216         Bouncing particles test pages.
217
218         * Animometer/tests/bouncing-particles/resources/bouncing-particles.js: Added.
219         (BouncingParticle): Base class for a bouncing particle.
220         (BouncingParticle.prototype.center): Returns the center point or the particle.
221         (BouncingParticle.prototype.animate): Moves the particle based on its current position, angle and velocity.
222         
223         (BouncingParticlesAnimator): A sub class of Animator.
224         
225         (BouncingParticlesStage): Represents the container of all the bouncing particles.
226         (BouncingParticlesStage.prototype.parseShapeParamters): Gets the shape parameters for shape animating tests.
227         (BouncingParticlesStage.prototype.randomRotater): Creates a rotater for the particles.
228         (BouncingParticlesStage.prototype.animate): Animates all the particles.
229         (BouncingParticlesStage.prototype.tune): Changes the test by adding or removing particles.
230         
231         (BouncingParticlesBenchmark): Runs the benchmark for bouncing particles test.
232         (BouncingParticlesBenchmark.prototype.createAnimator): Creates an animator of type BouncingParticlesAnimator.
233
234         * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js: Added.
235         (BouncingCssShape): A sub class of BouncingParticle for animating CSS shapes.
236         (BouncingCssShape.prototype._createSpan): Creates a <span> element and takes the shape and clipping classes into consideration.
237         (BouncingCssShape.prototype._move): Moves the particle to a new location. Apply transform since it does not require layout.
238         (BouncingCssShape.prototype.animate): Rotates and moves the shape to a new location.
239         
240         (BouncingCssShapesStage): A sub class of BouncingParticlesStage for animating CSS shapes.
241         (BouncingCssShapesStage.prototype.createParticle): Creates a particle of type BouncingCssShape.
242         (BouncingCssShapesStage.prototype.particleWillBeRemoved): Removes the corresponding element form the parent children list.
243         
244         (BouncingCssShapesBenchmark): A sub class of BouncingParticlesBenchmark for animating CSS shapes.
245         (BouncingCssShapesBenchmark.prototype.createStage): Creates a stage of type BouncingCssShapesStage.
246         (window.benchmarkClient.create): Creates a benchmark of type BouncingCssShapesBenchmark.
247         
248         * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js: Added.
249         (BouncingCssImage): A sub class of BouncingParticle for animating CSS images.
250         (BouncingCssImage.prototype._move): Move the particle to a new location. Apply transform since it does not require layout.
251         (BouncingCssImage.prototype.animate): Rotates and moves the shape to a new location.
252         
253         (BouncingCssImagesStage): A sub class of BouncingParticlesStage for animating CSS images.
254         (BouncingCssImagesStage.prototype.createParticle): Creates a particle of type BouncingCssImage.
255         (BouncingCssImagesStage.prototype.particleWillBeRemoved): Removes the corresponding element form the parent children list.
256         
257         (BouncingCssImagesBenchmark): A sub class of BouncingParticlesBenchmark for animating CSS images.
258         (BouncingCssImagesBenchmark.prototype.createStage): Creates a stage of type BouncingCssImagesStage.
259         (window.benchmarkClient.create): Creates a benchmark of type BouncingCssImagesBenchmark.
260         
261         * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Added.
262         (BouncingCanvasParticle): A base sub-class of BouncingParticle for animating canvas particles.
263         (BouncingCanvasParticle.prototype._applyRotation): Apply the particle rotation-around-center transform to the canvas context.
264         (BouncingCanvasParticle.prototype._applyClipping): Apply the particle clipping to the canvas context.
265         (BouncingCanvasParticle.prototype._draw): A non-implemented version of the drawing function.
266         (BouncingCanvasParticle.prototype.animate): Carries out all the steps to redraw the canvas particle.
267         
268         (BouncingCanvasParticlesStage): A base sub-class of BouncingParticlesStage for animating canvas particles.
269         
270         (BouncingCanvasParticlesAnimator): A concrete sub-class of BouncingParticlesAnimator for animating canvas particles.
271         (BouncingCanvasParticlesAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
272         
273         (BouncingCanvasParticlesBenchmark): A base sub-class of StageBenchmark for animating canvas particles.
274         (BouncingCanvasParticlesBenchmark.prototype.createAnimator): Creates the canvas particles animator.
275         
276         * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Added.
277         (BouncingCanvasShape): A concrete sub-class of BouncingCanvasParticle for animating canvas shapes.
278         (BouncingCanvasShape.prototype._applyFill): Sets the fillStyle in the canvas context.
279         (BouncingCanvasShape.prototype._drawShape): Carries out the actual drawing.
280         (BouncingCanvasShape.prototype._draw): Carries out all the steps to draw the shape.
281         
282         (BouncingCanvasShapesStage): A concrete sub-class of BouncingCanvasParticle for animating canvas shapes.
283         (BouncingCanvasShapesStage.prototype.createParticle): Creates a particle of type BouncingCanvasShape.
284         
285         (BouncingCanvasShapesBenchmark): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas shapes.
286         (BouncingCanvasShapesBenchmark.prototype.createStage): Creates a stage of type BouncingCanvasShapesStage.
287         (window.benchmarkClient.create): Creates a benchmark of type BouncingCanvasShapesBenchmark.
288
289         * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js: Added.
290         (BouncingCanvasImage): A concrete sub-class of BouncingCanvasParticle for animating canvas images.
291         (BouncingCanvasImage.prototype._draw): Draws an image on the context of a canvas.
292         
293         (BouncingCanvasImagesStage): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas images.
294         (BouncingCanvasImagesStage.prototype.createParticle): Creates a particle of type BouncingCanvasImage.
295         
296         (BouncingCanvasImagesBenchmark): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas images.
297         (BouncingCanvasImagesBenchmark.prototype.createStage): Creates a stage of type BouncingCanvasImagesStage.
298         (window.benchmarkClient.create): Creates a benchmark of type BouncingCanvasImagesBenchmark.
299
300         * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js: Added.
301         (BouncingSvgParticle): A base sub-class of BouncingParticle for animating SVG particles.
302         (BouncingSvgParticle.prototype._applyClipping): Apply the particle clipping by setting the 'clip-path' attribute of the SVGElement.
303         (BouncingSvgParticle.prototype._move): Moves the particle to a new location. Apply transform since it does not require layout.
304         (BouncingSvgParticle.prototype.animate): Rotates and moves the shape to a new location.
305         (BouncingSvgParticlesStage): A sub class of BouncingParticlesStage for animating SVGElements.
306         (BouncingSvgParticlesStage.prototype._createDefs): Creates an SVGDefsElement.
307         (BouncingSvgParticlesStage.prototype._ensureDefsIsCreated): Ensures there is only one SVGDefsElement is created.
308         (BouncingSvgParticlesStage.prototype._createClipStar): Creates an SVGClipPathElement and sets its 'd' attribute to a star like shape.
309         (BouncingSvgParticlesStage.prototype.ensureClipStarIsCreated): Ensure there is only one star SVGClipPathElement is created.
310         (BouncingSvgParticlesStage.prototype.particleWillBeRemoved): Remove the corresponding element form the parent children list.
311
312         * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Added.
313         (BouncingSvgShape): A concrete sub-class of BouncingSVGParticle for animating SVG shapes.
314         (BouncingSvgShape.prototype._createShape): Creates an SVG shape.
315         (BouncingSvgShape.prototype._applyFill): Applies the selected fill style to the SVG shape.
316         
317         (BouncingSvgShapesStage): A concrete sub-class of BouncingSvgParticlesStage for animating SVG shapes.
318         (BouncingSvgShapesStage.prototype.createGradient): Creates an SVGLinearGradientElement.
319         (BouncingSvgShapesStage.prototype.createParticle): Creates a particle of type BouncingSvgShape.
320         (BouncingSvgShapesStage.prototype.particleWillBeRemoved): Ensures the attached SVGLinearGradientElement is removed from the SVGDefsElement.
321         
322         (BouncingSvgShapesBenchmark): A concrete sub-class of BouncingParticlesBenchmark for animating SVG images.
323         (BouncingSvgShapesBenchmark.prototype.createStage): Creates a stage of type BouncingSvgShapesStage.
324         (window.benchmarkClient.create): Creates a benchmark of type BouncingSvgShapesBenchmark.
325         
326         * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js: Added.
327         (BouncingSvgImage): A concrete sub-class of BouncingSVGParticle for animating SVG images.
328         
329         (BouncingSvgImagesStage): A concrete sub-class of BouncingSVGParticlesBenchmark for animating SVG images.
330         (BouncingSvgImagesStage.prototype.createParticle): Creates a particle of type BouncingSvgImage.
331         
332         (BouncingSvgImagesBenchmark): A concrete sub-class of BouncingParticlesBenchmark for animating SVG images.
333         (BouncingSvgImagesBenchmark.prototype.createStage): Creates a stage of type BouncingSvgImagesStage.
334         (window.benchmarkClient.create): Creates a benchmark of type BouncingSvgImagesBenchmark.
335
336         * Animometer/tests/examples: Added.
337         * Animometer/tests/examples/canvas-electrons.html: Added.
338         * Animometer/tests/examples/canvas-stars.html: Added.
339         Examples test pages. 
340         
341         * Animometer/tests/examples/resources: Added.
342         * Animometer/tests/examples/resources/canvas-electrons.js: Added.
343         (CanvasElectron): An object which draws and animate a electron object on a canvas stage.
344         (CanvasElectron.prototype._draw): Draws the electron object.
345         (CanvasElectron.prototype.animate): Animates the electron object.
346         
347         (CanvasElectronsStage): A concrete sub-class of Stage for animating electrons.
348         (CanvasElectronsStage.prototype.tune): Changes the test by adding or removing elements.
349         (CanvasElectronsStage.prototype.animate): Animates the test elements.
350         
351         (CanvasElectronsAnimator): A concrete sub-class of StageAnimator for animating canvas electrons.
352         (CanvasElectronsAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
353         
354         (CanvasElectronsBenchmark): A concrete sub-class of StageBenchmark for animating electrons.
355         (CanvasElectronsBenchmark.prototype.createStage): Creates a stage of CanvasElectronsStage.
356         (CanvasElectronsBenchmark.prototype.createAnimator): Creates an animator of type CanvasElectronsAnimator.
357         (window.benchmarkClient.create): Creates a benchmark of type CanvasElectronsBenchmark.
358         
359         * Animometer/tests/examples/resources/canvas-stars.js: Added.
360         (CanvasStar): An object which draws and animate a star object on a canvas stage.
361         (CanvasStar.prototype._draw): Draws the star object.
362         (CanvasStar.prototype.animate): Animates the star object.
363         
364         (CanvasStarsStage): A concrete sub-class of Stage for animating stars.
365         (CanvasStarsStage.prototype.tune): Changes the test by adding or removing elements.
366         (CanvasStarsStage.prototype.animate): Animates the test elements.
367         
368         (CanvasStarsAnimator): A concrete sub-class of StageAnimator for animating canvas stars.
369         (CanvasStarsAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
370         
371         (CanvasStarsBenchmark): A concrete sub-class of Benchmark for animating stars.
372         (CanvasStarsBenchmark.prototype.createStage): Creates a stage of CanvasStarsStage.
373         (CanvasStarsBenchmark.prototype.createAnimator): Creates an animator of type CanvasStarsAnimator.
374         (window.benchmarkClient.create): Creates a benchmark of type CanvasStarsBenchmark.
375
376         * Animometer/tests/resources: Added.
377         This directory includes the script which is required to run an adaptive 
378         graphics benchmark. From an empty test page, the set of classes in this
379         directory are responsible for measuring the current frame rate and
380         changing the test to reach a desired FPS. It keeps asking the test page
381         to tune itself by a certain value to increase or decrease the frame rate.
382         It's also responsible for sampling the test state and the corresponding
383         frame rate.
384         
385         * Animometer/tests/resources/main.js: Added.
386         (BenchmarkState): Tracks the state of the benchmark test.
387         (BenchmarkState.prototype._timeOffset): Returns the timeOffset of a stage.
388         (BenchmarkState.prototype._message): Returns the message of a stage.
389         (BenchmarkState.prototype.update): Sets the currentTimeOffset to a new value.
390         (BenchmarkState.prototype.samplingTimeOffset): Returns the timeOffset of the sampling stage.
391         (BenchmarkState.prototype.currentStage): Returns the current stage of the benchmark.
392         (BenchmarkState.prototype.currentMessage): Returns the message of the current stage and timeOffset.
393         (BenchmarkState.prototype.currentProgress): Returns a percentage of how much the benchmark is running.
394         
395         (Animator): Manages animating the test.
396         (Animator.prototype.start): Called if animating using setInterval is requested.
397         (Animator.prototype.timeDelta): Returns the current timeDelta 
398         (Animator.prototype.animate): Manages the test animation.
399         (Animator.prototype.animateLoop): Called if animating using requestAnimationFrame is requested. 
400
401         (Benchmark): Manages running the test benchmark and recording the sampled data.
402         (Benchmark.prototype.start): Starts the benchmark.
403         (Benchmark.prototype.update): Called from the animator.animate() to change the complexity of the test.
404         (Benchmark.prototype.record): Shows the current (not final) results of the benchmark.
405         (Benchmark.prototype.resolveWhenFinished): Spins until the benchmark is finished and returns its results.
406         (Benchmark.prototype.run): Starts the test, runs it, waits until it is finished and return its results.
407         (window.runBenchmark): Called from the benchmark runner through the suite controller run-callback.
408
409         * Animometer/tests/resources/math.js: Added.
410         (Matrix): A matrix object.
411         (Vector3): A vector of size 3 object.
412         (Matrix3): A matrix of size 3x3 object.
413         
414         (PIDController): Closed-loop controller for a set-point y.
415         (PIDController.prototype._sat): Limits the output to a certain range.
416         (PIDController.prototype.tune): Given the current output of a system, it produces a new pid value for tuning it.
417         
418         (KalmanEstimator): Implement Kalman filter to get an estimate for a sampled data point.
419         (KalmanEstimator.prototype.estimate): Returns an estimate for for a sampled data point.
420
421         * Animometer/tests/resources/utilities.js: Added.
422         (window.Utilities._parse): Given a separator character, it pareses a string to a set of <key, value> pairs.
423         (window.Utilities.parseParameters): Parses a test parameters.
424         (window.Utilities.parseArguments): Parses a tag arguments.
425         (window.Utilities.extendObject): Adds the attributes and their values of an object to another object.
426         (window.Utilities.copyObject): Copies the attributes and their values of an object to a new object.
427         (window.Utilities.mergeObjects): Copies the attributes and their values of two objects to a new object.
428         (window.Utilities.createSvgElement): Creates an SVGElement given its name and its attributes.
429         
430         * Animometer/tests/resources/stage.css: Added.
431         * Animometer/tests/resources/stage.js: Added.
432         (Rotater): Manages rotating an angle within a fixed time interval.
433         (Rotater.prototype.get interval): Returns the time interval which is required to rotate 360 degrees.
434         (Rotater.prototype.next): Moves the current time by a delta.
435         (Rotater.prototype.degree): Returns the current rotating degree.
436         (Rotater.prototype.rotateZ): Returns CSS formatted transform rotateZ() string for the current degree.
437         (Rotater.prototype.rotate): Returns SVG formatted transform rotate() string for the current degree.
438         
439         (Stage): A base class for managing the test complexity and test animation.
440         (Stage.prototype.get size): Returns the size of the stage excluding the CSS padding.
441         (Stage.prototype.random): Returns a random float.
442         (Stage.prototype.randomInt): Returns a random integer.
443         (Stage.prototype.randomPosition): Returns a random position.
444         (Stage.prototype.randomSquareSize): Returns a square size.
445         (Stage.prototype.randomVelocity): Returns a random velocity.
446         (Stage.prototype.randomAngle): Returns a random angle.
447         (Stage.prototype.randomColor): Returns a random color not too dark and not too light.
448         (Stage.prototype.randomRotater): Creates a random rotater. Its velocity depends on choosing a random rotation time interval.
449         (Stage.prototype.tune): A not-implemented version of this function.
450         (Stage.prototype.animate): A not-implemented version of this function.
451         (Stage.prototype.clear): Clears the stage from all its animation elements.
452         
453         (StageAnimator): A base class for the stage-based animators.
454         (StageAnimator.prototype.animate): Calls Animator.animate() which updates the test page and then calls Stage.animate() to force redraw.
455         
456         (StageBenchmark): A base class for the stage-based benchmarks.
457         (StageBenchmark.prototype.createStage): Creates the default stage.
458         (StageBenchmark.prototype.createAnimator): Creates the default animator.
459         (StageBenchmark.prototype.tune): Delegates the call to stage.
460         (StageBenchmark.prototype.clear): Delegates the call to stage.
461         (StageBenchmark.prototype.showResults): Shows the results/progress through its recordTable and progressBar.
462         
463         * Animometer/tests/resources/yin-yang.png: Added.
464         * Animometer/tests/resources/yin-yang.svg: Added.
465         These images are shared among all the tests.
466         
467         * Animometer/tests/template: Added.
468         * Animometer/tests/template/resources: Added.
469         This directory includes template tests which do nothing. They can be used
470         to author new tests. Animated items can be created, moved and redrawn by
471         removing the TODO comments in the script files and writing actual code.
472
473         * Animometer/tests/template/template-css.html: Added.
474         * Animometer/tests/template/template-canvas.html: Added.
475         * Animometer/tests/template/template-svg.html: Added.
476         Template test pages. They can be used as they are. CSS attributes or hidden
477         elements can be added to these derived test pages if needed.
478         
479         * Animometer/tests/template/resources/template-css.js: Added.
480         
481         (TemplateCssStage): A stage to create and animate HTMLElements.
482         (TemplateCssStage.prototype.tune): Changes the test by adding or removing elements.
483         (TemplateCssStage.prototype.animate): Animates the test elements.
484         (TemplateCssBenchmark): 
485         (TemplateCssBenchmark.prototype.createStage): Creates the test stage.
486         (window.benchmarkClient.create): Creates a benchmark of type TemplateCssBenchmark.
487         
488         * Animometer/tests/template/resources/template-canvas.js: Added.
489         (TemplateCanvasObject):
490         (TemplateCanvasObject.prototype._draw): Draws the objects on the canvas context.
491         (TemplateCanvasObject.prototype.animate): Moves and redraws the object.
492         (TemplateCanvasStage): A stage to create and animate drawing elements.
493         (TemplateCanvasStage.prototype.tune): hanges the test by adding or removing elements.
494         (TemplateCanvasStage.prototype.animate):  Animates the test elements.
495         (TemplateCanvasAnimator.prototype.animate): Starts the animation every frame.
496         (TemplateCanvasBenchmark): 
497         (TemplateCanvasBenchmark.prototype.createStage): Creates a stage of type TemplateCanvasStage.
498         (TemplateCanvasBenchmark.prototype.createAnimator): Creates a animator of type TemplateCanvasAnimator.
499         (window.benchmarkClient.create): Creates a benchmark of type TemplateCanvasBenchmark.
500         
501         * Animometer/tests/template/resources/template-svg.js: Added.
502         (TemplateSvgStage): A stage to create and animate SVGElements.
503         (TemplateSvgStage.prototype.tune): Changes the test by adding or removing elements.
504         (TemplateSvgStage.prototype.animate): Animates the test elements.
505         (TemplateSvgBenchmark.prototype.createStage): Creates a stage of type TemplateSvgStage.
506         (window.benchmarkClient.create): Creates a benchmark of type TemplateSvgBenchmark.
507         
508         * Animometer/tests/text: Added.
509         * Animometer/tests/text/resources: Added.
510         This directory includes the text animating tests which currently runs
511         on CSS stage only.
512         
513         * Animometer/tests/text/layering-text.html: Added.
514         Text test page.
515         
516         * Animometer/tests/text/resources/layering-text.js: Added.
517         (LayeringTextStage): Represents the container of all the stacked text layers.
518         (LayeringTextStage.parseTextItem): Parses a textItem which may be an opening tag, a closing tag or a self-closing tag.
519         (LayeringTextStage.isOpeningTextItem): Returns true if the textItem is an opening tag e.g. '<ol>'.
520         (LayeringTextStage.isClosingTextItem): Returns true if  the textItem is an closing tag e.g. '</ol>.
521         (LayeringTextStage.textItemsFlags.LayeringTextStage.textItems.map): Calculates and stores isOpening and isClosing flags for each textItem.
522         (LayeringTextStage.isColorableTextItem): Returns true if the textItem is self-closing tag e.g. '<p>...</p>'.
523         (LayeringTextStage.isInsertableTextItem): Returns true if the textItems causes a new element to be added to the text layers.
524         (LayeringTextStage.colorableTextItems.LayeringTextStage.textItemsFlags.filter): Number of colorable textItems.
525         (LayeringTextStage.insertableTextItems.LayeringTextStage.textItemsFlags.filter): Number of insertable textItems.
526         (LayeringTextStage.colorIndexToTextElementIndex): Maps from colorIndex [0..colorableTextItems-1] to textElementIndex [0..insertableTextItems-1].
527         (LayeringTextStage.prototype._nextTextItem): Moves the _textItemIndex one step forward in a loop [0..LayeringTextStage.textItems.length-1].
528         (LayeringTextStage.prototype._previousTextItem): Moves the _textItemIndex one step backward in a loop.
529         (LayeringTextStage.prototype._pushTextElement): Creates a new textItemElement and adds it to the topmost container <div>.
530         (LayeringTextStage.prototype._popTextElement): Removes the last textItemElement from the topmost container <div>.
531         (LayeringTextStage.prototype._colorTextItem): Changes the background color of a single colorable textElement. The index advances in a circle [0..colorableTextItems-1].
532         (LayeringTextStage.prototype.animate): Changes the background color and the text color of the textElements such that a redraw is enforced.
533         (LayeringTextStage.prototype.tune): Adds or removes textElements to the stage.
534
535         (LayeringTextBenchmark): Runs the benchmark for the layering text test.
536         (LayeringTextBenchmark.prototype.createStage): Creates a stage of type LayeringTextStage.
537         (window.benchmarkClient.create): Creates a benchmark of type LayeringTextBenchmark.
538
539 2015-10-02  Said Abou-Hallawa  <sabouhallawa@apple.com>
540
541         Add shared code for a new a graphics benchmark
542         https://bugs.webkit.org/show_bug.cgi?id=149691
543
544         Reviewed by Ryosuke Niwa.
545
546         This set of classes will be shared and used by the tests and the runner
547         of a new graphics benchmark.
548
549         * Animometer/resources: Added.
550         * Animometer/resources/algorithm.js: Added.
551         (Array.prototype.swap): Swaps two elements in an array.
552         (Heap): Binary Min/Max Heap object
553         (Heap.prototype._parentIndex): Given the child node index, it returns the parent index.
554         (Heap.prototype._leftIndex): Given the parent node index, it returns the left node index.
555         (Heap.prototype._rightIndex): Given the parent node index, it returns the right node index.
556         (Heap.prototype._childIndex): Given the parent node index, it returns the child index that may violate the heap property.
557         (Heap.prototype.init): Initializes the heap state.
558         (Heap.prototype.top): Returns the value stored at the top of the heap.
559         (Heap.prototype.push): Pushes a new node at the top of the heap.
560         (Heap.prototype.pop): Extracts the top node of the heap.
561         (Heap.prototype._bubble): Fixes the heap property by moving upward.
562         (Heap.prototype._sink): Fixes the heap property by moving downward.
563         (Heap.prototype.str): Prints the nodes of the heap to a string.
564         (Heap.prototype.values): Returns the last "size" heap elements values.
565
566         (Algorithm.createMinHeap): Creates a size-bounded min-heap object.
567         (Algorithm.createMaxHeap): Creates a size-bounded max-heap object.
568         
569         * Animometer/resources/extensions.js: Added.
570         (Point): Point object but can be used as size also.
571         (Point.pointOnCircle): Given, the radius of the circle and the angle of the point, it returns a point object.
572         (Point.pointOnEllipse): Given, the radiuses of the ellipse and the angle of the point, it returns a point object.
573         (Point.prototype.get width): Should be called when the point is used as size.
574         (Point.prototype.get height): Should be called when the point is used as size.
575         (Point.prototype.get center): Should be called when the point is used as size.
576         (Point.prototype.add): Returns a new point = this + other.
577         (Point.prototype.subtract): Returns a new point = this - other.
578         (Point.prototype.multiply): Returns a new point = this * other.
579         (Point.prototype.move): Moves the point in a given direction, velocity, time period.
580
581         (Insets): Represents borders of a container.
582         (Insets.prototype.get width): Returns left + right.
583         (Insets.prototype.get height): Returns top + bottom.
584
585         (SimplePromise):
586         (SimplePromise.prototype.then):
587         (SimplePromise.prototype.resolve):
588         Moved from Animometer/runner/resources/benchmark-runner.js since tests also need it.
589
590         (Options): Benchmark running options as they are set by the user.
591
592         (ProgressBar): Manages a progress bar element. The progress bar is divided into equal length ranges.
593         (ProgressBar.prototype._progressToPercent): Converts the progress into a percentage.
594         (ProgressBar.prototype.incRange): Moves to the next range (a range is the running time of a single test).
595         (ProgressBar.prototype.setPos): Draws the current progress in the current range.
596
597         (RecordTable): Shows the results of running a benchmark in a tabular form.
598         (RecordTable.prototype.clear): Clears the results table.
599         (RecordTable.prototype._showTitles): Shows the header titles and appends the sub-titles to a queue.
600         (RecordTable.prototype._showHeader): Shows the table header titles.
601         (RecordTable.prototype._showEmpty): Shows an empty table cell.
602         (RecordTable.prototype._showValue): Shows a number value in the results table.
603         (RecordTable.prototype._showSamples): Shows a button for the sampled data graph.
604         (RecordTable.prototype._showTest): Shows the results of a single test.
605         (RecordTable.prototype._showSuite): Shows the results of a single suite.
606         (RecordTable.prototype.showRecord): Shows a single iteration for a single test.
607         (RecordTable.prototype.showIterations): Shows the results of all the suites of the iterations. 
608
609         * Animometer/resources/sampler.js: Added.
610         (Statistics.sampleMean): Returns the sample mean.
611         (Statistics.unbiasedSampleStandardDeviation): Returns the unbiased sample variance (i.e. with Bessel's correction)
612         (Statistics.geometricMean): Returns the geometric mean.
613
614         (Experiment): Represents a sampling experiment. 
615         (Experiment.prototype._init): Called when the object is created and when startSampling() is called.
616         (Experiment.prototype.startSampling): Called after warmup period. Restarts collecting sampled data points.
617         (Experiment.prototype.sample): Add a new data point.
618         (Experiment.prototype.mean): Returns the sample mean for the current sampled data points.
619         (Experiment.prototype.standardDeviation): Returns the sample standard deviation for the current sampled data points.
620         (Experiment.prototype.percentage): Returns the percentage of the standard deviation divided to the mean.
621         (Experiment.prototype.confidenceIntervalDelta): Calculates the confidence delta for the current sampled data given a confidence level.
622         (Experiment.prototype.concern): Returns the average of the worst given percentage from the sampled data.
623         (Experiment.prototype.score): Returns a score for the sampled data. It is the geometric mean of sampleMean and concern.
624
625         (Sampler): Represents a compound experiment. It manages sampling multiple data points at the same time offset.
626         (Sampler.prototype.startSampling): Called after warming up period. Restarts collecting sampled data points.
627         (Sampler.prototype.sample): Add a new data vector at a given time offset.
628         
629 2015-10-02  Said Abou-Hallawa  <sabouhallawa@apple.com>
630
631         Add the test runner for a new a graphics benchmark
632         https://bugs.webkit.org/show_bug.cgi?id=149683
633
634         Reviewed by Ryosuke Niwa.
635
636         The test runner collects the selected test suites and the running options
637         from its home page. It loops through all the tests, runs them and collects
638         their running results. At the end, it shows summary results and a final
639         score. It can also show a chart for a test sampled data.
640
641         * Animometer: Added.
642         * Animometer/runner: Added.
643         * Animometer/runner/resources: Added.
644         
645         * Animometer/runner/animometer.html: Added.
646         * Animometer/runner/resources/animometer.css: Added.
647         The benchmark runner page and css.
648
649         * Animometer/runner/resources/animometer.js: Added.
650         (window.benchmarkRunnerClient.willAddTestFrame): Called after the test <iframe> is created.
651         (window.benchmarkRunnerClient.didRunTest): Called after running a test is finished.
652         (window.benchmarkRunnerClient.willStartFirstIteration): Called at the beginning before running any test.
653         (window.benchmarkRunnerClient.didRunSuites): Called after running all tests of a suite.
654         (window.benchmarkRunnerClient.didFinishLastIteration): Called after running the last test.
655         
656         (showSection): Shows a section in the animometer.html page.
657         (startTest): Called when the "Start Test" button is clicked.
658         (showResults): Called after finishing all the tests.
659         (showGraph): Called when "Click..." button in the "Samples" column of the results table is clicked
660         
661         * Animometer/runner/resources/benchmark-runner.js: Copied from PerformanceTests/Speedometer/resources/benchmark-runner.js.
662         (BenchmarkRunnerState): Tracks the current running <suite, test>
663         (BenchmarkRunnerState.prototype.currentSuite): Returns the current running suite.
664         (BenchmarkRunnerState.prototype.currentTest): Returns the current running test.
665         (BenchmarkRunnerState.prototype.isFirstTest): Returns true if we are running the first test in the current suite.
666         (BenchmarkRunnerState.prototype.next): Advances to the next test.
667         (BenchmarkRunnerState.prototype.prepareCurrentTest): Creates a new <iframe> and waits for it to load a test.
668         
669         (BenchmarkRunner): Manages running the tests and communicating with the benchmarkRunnerClient.
670         (BenchmarkRunner.prototype.waitForElement): Waits for an element to be created.
671         (BenchmarkRunner.prototype._appendFrame): Creates a new <iframe> element.
672         (BenchmarkRunner.prototype._removeFrame): Removed the current <iframe> element.
673         (BenchmarkRunner.prototype._runTestAndRecordResults): Runs the current test and saves its results.
674         (BenchmarkRunner.prototype.step): Either runs the current test if there is or start a new iteration.
675         (BenchmarkRunner.prototype.runAllSteps): Loops to run all the tests and move to the next iteration.
676         (this._runNextIteration): Starts a new iteration or show the results.
677         (BenchmarkRunner.prototype.runMultipleIterations): Loops to run all the iterations and show the results
678         (BenchmarkRunner.prototype._finalize): Finalizes the current iteration and starts a new one.
679
680         (SimplePromise): Deleted.
681         (SimplePromise.prototype.then): Deleted.
682         (SimplePromise.prototype.resolve): Deleted.
683         (BenchmarkTestStep): Deleted.
684         (Fibonacci): Deleted.
685         SimplePromise was moved t Animometer/resources/extensions.js because it is used by the runner and the tests.
686         
687         (BenchmarkRunner.prototype._waitAndWarmUp): Deleted.
688         (BenchmarkRunner.prototype._runTest): Deleted.
689         (BenchmarkState.prototype.currentSuite): Deleted.
690         (BenchmarkState.prototype.currentTest): Deleted.
691         (BenchmarkState.prototype.next): Deleted.
692         (BenchmarkState.prototype.isFirstTest): Deleted.
693         (BenchmarkState.prototype.prepareCurrentSuite): Deleted.
694         BenchmarkState was renamed to BenchmarkRunnerState to not be confused with the tests BenchmarkState.
695         
696         * Animometer/runner/resources/d3.min.js: Copied from Websites/perf.webkit.org/public/v2/js/d3/d3.min.js.
697         Needed for drawing charts for the sampled scores and frame rates.
698         
699         * Animometer/runner/resources/graph.js: Added.
700         (graph): Draws a chart for a test sampled data. It shows two y-axes: one for the animated items and the second for FPS.
701                 
702         * Skipped: Skip the Animometer benchmark for now.
703
704 2015-08-27  Csaba Osztrogonác  <ossy@webkit.org>
705
706         [EFL] REGRESSION(r188793): It made 200 layout tests and Bindings/event-target-wrapper.html performance test fail
707         https://bugs.webkit.org/show_bug.cgi?id=148470
708
709         Unreviewed gardening, skip the hanging test to make the performance bot work.
710
711         * Skipped:
712
713 2015-08-17  Chris Dumez  <cdumez@apple.com>
714
715         Add performance tests for traversal of collections returned by getElementsByClassName() / getElementsByTagName()
716         https://bugs.webkit.org/show_bug.cgi?id=148080
717
718         Reviewed by Antti Koivisto.
719
720         Add performance tests for traversal of *uncached* collections returned
721         by getElementsByClassName() / getElementsByTagName(). These methods
722         will soon be updated to return an HTMLCollection instead of a
723         NodeList and we need to make sure we don't regress performance in the
724         process.
725
726         * DOM/get-elements-by-class-name-traversal-uncached.html: Added.
727         * DOM/get-elements-by-tag-name-traversal-uncached.html: Added.
728
729 2015-08-14  Chris Dumez  <cdumez@apple.com>
730
731         Add performance tests for NodeList and HTMLCollection traversal
732         https://bugs.webkit.org/show_bug.cgi?id=148043
733
734         Reviewed by Gavin Barraclough.
735
736         Add performance tests for NodeList and HTMLCollection traversal.
737         Ideally, those 2 tests should be as fast. However, due to inefficiencies
738         in our HTMLCollection bindings code, the HTMLCollection tests is ~30%
739         slower. This will be addressed in the near future.
740
741         * Bindings/childNodes-traversal.html: Added.
742         * Bindings/children-traversal.html: Added.
743
744 2015-08-05  Myles C. Maxfield  <mmaxfield@apple.com>
745
746         Add a second font-fallback performance test
747         https://bugs.webkit.org/show_bug.cgi?id=147692
748
749         Reviewed by Ryosuke Niwa.
750
751         This test is smaller, but has more realistic content. Also, it uses the "lang" attribute.
752
753         * Layout/font-fallback-2.html: Added.
754         * Layout/resources/font-fallback-2.html: Added.
755
756 2015-07-13  Filip Pizlo  <fpizlo@apple.com>
757
758         Update JetStream version number to 1.1.
759
760         Rubber stamped by Ryosuke Niwa.
761
762         * JetStream/create.rb:
763
764 2015-06-30  Filip Pizlo  <fpizlo@apple.com>
765
766         Update the JetStream documentation to reflect the recent changes
767         https://bugs.webkit.org/show_bug.cgi?id=146474
768
769         Reviewed by Geoffrey Garen.
770
771         * JetStream/create.rb: Bump the version.
772         * JetStream/in-depth-TEMPLATE.html: Add cdjs documentation. Remove cordic documentation. Change documentation for splay and mandreel.
773
774 2015-06-26  Filip Pizlo  <fpizlo@apple.com>
775
776         [JetStream] Raise the percentile of mandreel-latency and splay-latency
777         https://bugs.webkit.org/show_bug.cgi?id=146378
778
779         Reviewed by Mark Lam.
780         
781         The current percentile is 95%.  When I looked at the sample lists in our GC, it was
782         clear that the worst 5% samples completely amortize our GC pauses.  Our GC pauses can
783         be quite bad.  Clearly, splay-latency is meant to test whether we have an incremental
784         GC that ensures that you don't have bad worst-case pauses.  But 95% is too small,
785         because it doesn't really capture those pauses.  Raising the percentile to above 99%
786         appears to do the trick.  99.5% or more seems like a good bet.  The trade-off there is
787         just that if we set it too high, then we won't have enough statistics.  Doing this very
788         clearly rewards GCs that are incremental, and punishes GCs that aren't (like ours).
789         That's what we want, since in the future we want to use this test to guide any
790         improvements to the worst-case performance of our GC.
791
792         The way that the percentile is selected will also affect mandreel-latency.  That's a
793         good thing, because 95% is probably too low for that test as well.  That test ends up
794         with >10k samples.  The goal of using 95% in the first place was to get enough samples
795         to have a stable average.  But if we have >10k samples, we can push that percentile up
796         much higher and still get good statistics while achieving the effect we want - i.e.
797         getting the worst case.
798
799         I don't think that we need to do the same thing for cdjs.  That test only takes 200
800         samples, so 95% means we report the average of the worst 10 samples.  That's probably
801         good enough.
802
803         * JetStream/Octane2/base.js: Raise the percentile as described above.
804         (BenchmarkSuite.prototype.RunSingleBenchmark):
805         * JetStream/Reference.js: Tweak the reference times to bring the latency tests closer to 100ish on my machine.
806         * JetStream/create.rb: Bump the version.
807
808 2015-06-19  Filip Pizlo  <fpizlo@apple.com>
809
810         Run CDjs as part of JSC stress testing
811         https://bugs.webkit.org/show_bug.cgi?id=146174
812
813         Reviewed by Geoffrey Garen.
814
815         * JetStream/cdjs/cdjs-tests.yaml: Added. This tells JSC stress tests what tests to run. It uses new syntax ("tests" being a list) that I add in this change.
816         * JetStream/cdjs/main.js: Mark this as a slow test.
817         * JetStream/create.rb: Don't copy the JSC stress tests artifacts into the JetStream bundle.
818
819 2015-06-19  Filip Pizlo  <fpizlo@apple.com>
820
821         Unreviewed, fix a small indentation goof.
822
823         * JetStream/cdjs/motion.js:
824         (Motion.prototype.findIntersection):
825
826 2015-06-19  Filip Pizlo  <fpizlo@apple.com>
827
828         JetStream should include a JavaScript version of the CDx real-time benchmark
829         https://bugs.webkit.org/show_bug.cgi?id=146156
830
831         Reviewed by Geoffrey Garen.
832         
833         This adds a JavaScript port of the CDx real-time benchmark to JetStream, and retires
834         the cordic test because it was previously the smallest and probably least interesting.
835         
836         The new test, "cdjs", is mostly a faithful rewrite of the Java code into JavaScript.
837         I got the Java code from https://www.cs.purdue.edu/sss/projects/cdx/.
838         
839         There are some differences:
840         
841         - It uses RedBlackTree's for all sets and maps rather than hashtables. This is clearly
842           more in the spirit of real-time than the CDx benchmark. FWIW, CDx used to use trees
843           and I don't know why that changed in the latest version.
844         
845         - CDjs doesn't attempt to avoid memory allocations, unlike the real-time Java version.
846           I wrote the code that I wanted to write for aesthetics, rather than the code that I
847           would have written if I tried to write the fastest code possible. Again, I believe
848           that this is in the spirit of CDj - it's meant to test what would happen if you wrote
849           real-timey stuff in a high level language and actually took advantage of that
850           language to be more productive.
851         
852         The test score reflects the average latency of the worst 10 samples out of 200 samples.
853         The simulation uses 1000 aircraft, flying along paths that result in some detected
854         collisions every once in a while. The benchmark validates its results by checking the
855         total number of collisions detected.
856         
857         Apart from the integration into the JetStream harness, the CDjs directory contains a
858         fully self-contained benchmark that could be run either in the jsc shell or in browser.
859         
860         This new code uses the same 3-clause BSD license as the Purdue code, and gives
861         attribution to Purdue in almost all files. I believe that is appropriate since I wrote
862         most of the JS files by looking at the Purdue Java code and trascribing to JavaScript.
863         In some cases, I even copy-pasted the Java code, like the complicated math for
864         four-dimensional intersections and voxel hashing.
865
866         * JetStream/CDjsSetup.js: Added.
867         * JetStream/Octane2Setup.js:
868         * JetStream/Reference.js:
869         * JetStream/cdjs: Added.
870         * JetStream/cdjs/benchmark.js: Added.
871         (benchmark):
872         * JetStream/cdjs/call_sign.js: Added.
873         (CallSign):
874         (CallSign.prototype.compareTo):
875         (CallSign.prototype.toString):
876         * JetStream/cdjs/collision.js: Added.
877         (Collision):
878         (Collision.prototype.toString):
879         * JetStream/cdjs/collision_detector.js: Added.
880         (CollisionDetector):
881         (CollisionDetector.prototype.handleNewFrame.get for):
882         (CollisionDetector.prototype.handleNewFrame):
883         * JetStream/cdjs/constants.js: Added.
884         * JetStream/cdjs/main.html: Added.
885         * JetStream/cdjs/main.js: Added.
886         * JetStream/cdjs/motion.js: Added.
887         (Motion):
888         (Motion.prototype.toString):
889         (Motion.prototype.delta):
890         (Motion.prototype.findIntersection):
891         * JetStream/cdjs/motion_test.js: Added.
892         (checkDoesIntersect):
893         (checkDoesNotIntersect):
894         (makeMotion):
895         * JetStream/cdjs/red_black_tree.js: Added.
896         (RedBlackTree):
897         (RedBlackTree.):
898         * JetStream/cdjs/red_black_tree_test.js: Added.
899         (test):
900         (test.):
901         * JetStream/cdjs/reduce_collision_set.js: Added.
902         (drawMotionOnVoxelMap):
903         (drawMotionOnVoxelMap.):
904         (.get reduceCollisionSet):
905         * JetStream/cdjs/reduce_collision_set_test.js: Added.
906         (makeMotion):
907         (keys):
908         (test):
909         * JetStream/cdjs/simulator.js: Added.
910         (Simulator):
911         (Simulator.prototype.simulate):
912         * JetStream/cdjs/util.js: Added.
913         (compareNumbers):
914         (averageAbovePercentile):
915         (currentTime):
916         (else.currentTime):
917         * JetStream/cdjs/vector_2d.js: Added.
918         (Vector2D):
919         (Vector2D.prototype.plus):
920         (Vector2D.prototype.minus):
921         (Vector2D.prototype.toString):
922         (Vector2D.prototype.compareTo):
923         * JetStream/cdjs/vector_3d.js: Added.
924         (Vector3D):
925         (Vector3D.prototype.plus):
926         (Vector3D.prototype.minus):
927         (Vector3D.prototype.dot):
928         (Vector3D.prototype.squaredMagnitude):
929         (Vector3D.prototype.magnitude):
930         (Vector3D.prototype.times):
931         (Vector3D.prototype.as2D):
932         (Vector3D.prototype.toString):
933         * JetStream/create.rb:
934         * JetStream/index-TEMPLATE.html:
935         * JetStream/sunspider/cordic.js: Removed.
936
937 2015-06-17  Javier Fernandez  <jfernandez@igalia.com>
938
939         [CSS Grid Layout] We should add performance tests for stretching logic
940         https://bugs.webkit.org/show_bug.cgi?id=146063
941
942         Reviewed by Sergio Villar Senin.
943
944         Added a new performance test for Grid Layout to ensure there are no
945         regressions in the stretching alignment logic.
946
947         * Layout/fixed-grid-lots-of-stretched-data.html: Added.
948
949 2015-06-17  Javier Fernandez  <jfernandez@igalia.com>
950
951         [CSS Grid Layout] Performance tests are using the old syntax
952         https://bugs.webkit.org/show_bug.cgi?id=146061
953
954         Reviewed by Sergio Villar Senin.
955
956         Adapted tests to the new grid tracks definition syntax.
957
958         * Layout/auto-grid-lots-of-data.html:
959         * Layout/fixed-grid-lots-of-data.html:
960
961 2015-06-08  Filip Pizlo  <fpizlo@apple.com>
962
963         JetStream should have a more rational story for jitter-oriented latency tests
964         https://bugs.webkit.org/show_bug.cgi?id=145762
965
966         Reviewed by Geoffrey Garen.
967         
968         JetStream has some latency tests that are meant to measure jitter.  Prior to this change, they
969         did this by computing the RMS.  But the RMS is a pretty bad metric.  The thing that it rewards
970         isn't really the thing that you'd want your browser to do.  These RMS-based tests involve taking
971         the geomean of the RMS of some samples and the sample average.  The lower the geomean, the better
972         (in the JetStream harness we then invert the scores so that higher is better, but let's ignore
973         that for this discussion and assume that lower is better).  Here's an example of how this can go
974         bad.  A browser that always computes a task in some horribly long time (say, 1000ms) but never
975         varies that time will perform better than a browser that usually computes the task super quickly
976         (say, 10ms) and sometimes just a little bit less quickly (say, 15ms).  The former browser will
977         have an RMS of 0 and an average of 1000.  The latter will have a RMS somewhere around 3.5 and an
978         average of 12.5 (assuming equal probability of 10ms and 15ms).  The geomean of (0, 1000) is 0.
979         The geomean of (3.5, 12.5) is 6.6.  Lower is better, so the former browser scores higher - even
980         though it's obviously never better to have a browser always complete a task in 1000ms when a
981         different browser can do it in 15ms in the worst case.
982
983         JetStream should not have this pathology.  The right way of avoiding it is to replace RMS with
984         some other metric of how bad things get.  A good metric is the average of the worst percentile.
985         The worst 1% or the worst 5% would be good things to average.  This will catch cases where the VM
986         jittered due to JIT or GC, but it never have the pathology that we end up giving the better score
987         to a VM whose best case is worst than another VM's worst case.
988         
989         For now, this change uses the highest samples above the 95% percentile. I'm not yet sure if that
990         is the best thing - it might include too many scores that are around the best-case performance -
991         but it's certainly better than RMS and it might be good enough to keep. But because of that
992         uncertainty, I'm setting the version to be "1.1-alpha1" to indicate that we aren't ready to
993         release this yet.
994
995         * JetStream/Octane2/base.js:
996         (.this.Setup.setup.setup):
997         (.this.TearDown.tearDown.tearDown):
998         (BenchmarkSuite.GeometricMeanTime):
999         (BenchmarkSuite.AverageAbovePercentile):
1000         (BenchmarkSuite.GeometricMeanLatency):
1001         (BenchmarkSuite.prototype.NotifyStep):
1002         (BenchmarkSuite.prototype.RunSingleBenchmark):
1003         * JetStream/Octane2/mandreel.js:
1004         (setupMandreel):
1005         (updateMandreelStats):
1006         (startMandreelTimer):
1007         (latencyMandreel):
1008         (tearDownMandreel):
1009         (RMSMandreel): Deleted.
1010         * JetStream/Octane2/splay.js:
1011         (GenerateKey):
1012         (SplayUpdateStats):
1013         (InsertNewNode):
1014         (SplayTearDown):
1015         (SplayRMS): Deleted.
1016         * JetStream/create.rb:
1017
1018 2015-06-03  Zalan Bujtas  <zalan@apple.com>
1019
1020         Skip Dromaeo/jslib-modify-prototype.html for now.
1021
1022         Unreviewed gardening.
1023
1024         * Skipped:
1025
1026 2015-05-04  Filip Pizlo  <fpizlo@apple.com>
1027
1028         Large array shouldn't be slow
1029         https://bugs.webkit.org/show_bug.cgi?id=144617
1030
1031         Reviewed by Geoffrey Garen.
1032         
1033         Add the hash-map benchmark to LongSpider. LongSpider was already not a perfect match of
1034         SunSpider. It's not an official benchmark. It contains benchmarks that are relatively
1035         long-running. So, hash-map sort of belongs here.
1036
1037         * LongSpider/hash-map.js: Added.
1038         (HashMap):
1039         (HashMap.):
1040         (.get var):
1041
1042 2015-05-01  Dewei Zhu  <dewei_zhu@apple.com>
1043
1044         Fix typo bug in Speedometer/resources/main.js
1045         https://bugs.webkit.org/show_bug.cgi?id=144504
1046
1047         Reviewed by Ryosuke Niwa. 
1048
1049         * Speedometer/resources/main.js: Fix typo.
1050         (window.benchmarkClient.totalTimeInDisplayUnit):
1051
1052 2015-04-21  Ryosuke Niwa  <rniwa@webkit.org>
1053
1054         Add JetStream to PerformanceTests
1055         https://bugs.webkit.org/show_bug.cgi?id=144024
1056
1057         Rubber-stamped by Filip Pizlo.
1058
1059         * JetStream: Added.
1060         * JetStream/JetStream-Logo.png: Added.
1061         * JetStream/JetStream-Logo@2x.png: Added.
1062         * JetStream/JetStream.css: Added.
1063         * JetStream/JetStreamDriver.js: Added.
1064         * JetStream/LICENSE.txt: Added.
1065         * JetStream/LLVM-test-suite-LICENSE.txt: Added.
1066         * JetStream/Octane: Added.
1067         * JetStream/Octane/base.js: Added.
1068         * JetStream/Octane/code-load.js: Added.
1069         * JetStream/Octane2: Added.
1070         * JetStream/Octane2/base.js: Added.
1071         * JetStream/Octane2/box2d.js: Added.
1072         * JetStream/Octane2/code-load.js: Added.
1073         * JetStream/Octane2/crypto.js: Added.
1074         * JetStream/Octane2/deltablue.js: Added.
1075         * JetStream/Octane2/earley-boyer.js: Added.
1076         * JetStream/Octane2/gbemu-part1.js: Added.
1077         * JetStream/Octane2/gbemu-part2.js: Added.
1078         * JetStream/Octane2/mandreel.js: Added.
1079         * JetStream/Octane2/navier-stokes.js: Added.
1080         * JetStream/Octane2/pdfjs.js: Added.
1081         * JetStream/Octane2/raytrace.js: Added.
1082         * JetStream/Octane2/regexp.js: Added.
1083         * JetStream/Octane2/richards.js: Added.
1084         * JetStream/Octane2/run.js: Added.
1085         * JetStream/Octane2/splay.js: Added.
1086         * JetStream/Octane2/typescript-compiler.js: Added.
1087         * JetStream/Octane2/typescript-input.js: Added.
1088         * JetStream/Octane2/typescript.js: Added.
1089         * JetStream/Octane2/zlib-data.js: Added.
1090         * JetStream/Octane2/zlib.js: Added.
1091         * JetStream/Octane2Setup.js: Added.
1092         * JetStream/OctaneSetup.js: Added.
1093         * JetStream/README: Added.
1094         * JetStream/Reference.js: Added.
1095         * JetStream/SimpleSetup.js: Added.
1096         * JetStream/SunSpiderSetup.js: Added.
1097         * JetStream/Swoosh.png: Added.
1098         * JetStream/Swoosh@2x.png: Added.
1099         * JetStream/TestingSetup.js: Added.
1100         * JetStream/create.rb: Added.
1101         * JetStream/docs: Added.
1102         * JetStream/docs/JetStreamBlogPost.html: Added.
1103         * JetStream/in-depth-TEMPLATE.html: Added.
1104         * JetStream/index-TEMPLATE.html: Added.
1105         * JetStream/simple: Added.
1106         * JetStream/simple/bigfib.cpp: Added.
1107         * JetStream/simple/bigfib.cpp.js: Added.
1108         * JetStream/simple/container.cpp: Added.
1109         * JetStream/simple/container.cpp.js: Added.
1110         * JetStream/simple/dry.c: Added.
1111         * JetStream/simple/dry.c.js: Added.
1112         * JetStream/simple/float-mm.c: Added.
1113         * JetStream/simple/float-mm.c.js: Added.
1114         * JetStream/simple/gcc-loops.cpp: Added.
1115         * JetStream/simple/gcc-loops.cpp.js: Added.
1116         * JetStream/simple/hash-map.js: Added.
1117         * JetStream/simple/n-body.c: Added.
1118         * JetStream/simple/n-body.c.js: Added.
1119         * JetStream/simple/quicksort.c: Added.
1120         * JetStream/simple/quicksort.c.js: Added.
1121         * JetStream/simple/towers.c: Added.
1122         * JetStream/simple/towers.c.js: Added.
1123         * JetStream/sunspider: Added.
1124         * JetStream/sunspider/3d-cube.js: Added.
1125         * JetStream/sunspider/3d-raytrace.js: Added.
1126         * JetStream/sunspider/base64.js: Added.
1127         * JetStream/sunspider/cordic.js: Added.
1128         * JetStream/sunspider/crypto-aes.js: Added.
1129         * JetStream/sunspider/crypto-md5.js: Added.
1130         * JetStream/sunspider/crypto-sha1.js: Added.
1131         * JetStream/sunspider/date-format-tofte.js: Added.
1132         * JetStream/sunspider/date-format-xparb.js: Added.
1133         * JetStream/sunspider/n-body.js: Added.
1134         * JetStream/sunspider/regex-dna.js: Added.
1135         * JetStream/sunspider/tagcloud.js: Added.
1136
1137 2015-04-14  Said Abou-Hallawa  <sabouhallawa@apple.com>
1138
1139         textPath layout performance improvement.
1140         https://bugs.webkit.org/show_bug.cgi?id=141570.
1141
1142         Reviewed by Darin Adler.
1143
1144         Cut down the time spent in traversing the path for text by 50%. Instead
1145         of traversing the path twice at a certain length: one time for the position
1146         and the second time for the angle, we can merge these two passes into one.
1147
1148         * SVG/TextOnPathSimple.html: Added.
1149         * SVG/resources/TextOnPathSimple.svg: Added.
1150
1151 2015-04-13  Zalan Bujtas  <zalan@apple.com>
1152
1153         Clear up the test content when test is done.
1154
1155         Unreviewed fix.
1156
1157         * Layout/simple-line-layout-innertext.html:
1158
1159 2015-04-09  Zalan Bujtas  <zalan@apple.com>
1160
1161         Simple line layout(regression): Calling innerText on RenderFlow with multiple children is slow.
1162         https://bugs.webkit.org/show_bug.cgi?id=143554
1163
1164         Reviewed by Antti Koivisto.
1165
1166         Initialize render flow's segments only when the render flow changes in TextIterator.
1167         The included performance test shows 6x speedup. (from ~10 runs/sec to ~60 runs/sec)
1168
1169         * Layout/simple-line-layout-innertext.html: Added.
1170
1171 2015-03-09  Chris Dumez  <cdumez@apple.com>
1172
1173         [CG] Have Canvas use the IOSurfacePool
1174         https://bugs.webkit.org/show_bug.cgi?id=142417
1175         <rdar://problem/20044440>
1176
1177         Reviewed by Darin Adler.
1178
1179         Lower the number of different canvas sizes from 1000 to 100 so that
1180         the test does not require such a huge cache size. With 100, we now
1181         get over 90% cache hit rate with the default IOSurfacePool size.
1182
1183         * Canvas/reuse.html:
1184
1185 2015-01-28  Said Abou-Hallawa  <sabouhallawa@apple.com>
1186
1187         Poor performance on IE's Chalkboard benchmark.
1188         https://bugs.webkit.org/show_bug.cgi?id=140753.
1189
1190         Reviewed by Zalan Bujtas.
1191
1192         * SVG/UnderTheSeeBenchmark.html: Added
1193         * SVG/WorldcupBenchmark.html: Added.
1194         * SVG/resources/RenderAnimator.css: Added.
1195         * SVG/resources/RenderAnimator.js: Added.
1196         These are benchmarks for the SVG rendering. Mainly we want to measure how fast
1197         the SVG rendering will be when only a small part of it is drawn.
1198         
1199 2015-01-21  Geoffrey Garen  <ggaren@apple.com>
1200
1201         bmalloc: support aligned allocation
1202         https://bugs.webkit.org/show_bug.cgi?id=140732
1203
1204         Reviewed by Andreas Kling.
1205
1206         * MallocBench/MallocBench.xcodeproj/project.pbxproj:
1207         * MallocBench/MallocBench/Benchmark.cpp:
1208         * MallocBench/MallocBench/memalign.cpp:
1209         (test):
1210         (benchmark_memalign): Added a test for specific interesting memalign values.
1211
1212         * MallocBench/MallocBench/stress_aligned.cpp: Added.
1213         (benchmark_stress_aligned):
1214         * MallocBench/MallocBench/stress_aligned.h: Added. Added a stress test
1215         for arbitrary memalign values.
1216
1217 2015-01-16  Geoffrey Garen  <ggaren@apple.com>
1218
1219         bmalloc: added the tiniest bit of testing for aligned allocation
1220         https://bugs.webkit.org/show_bug.cgi?id=140573
1221
1222         Reviewed by Andreas Kling.
1223
1224         Just good enoug to catch two bugs in a preliminary implementation.
1225
1226         * MallocBench/MallocBench.xcodeproj/project.pbxproj:
1227         * MallocBench/MallocBench/Benchmark.cpp:
1228         * MallocBench/MallocBench/mbmalloc.cpp:
1229         * MallocBench/MallocBench/mbmalloc.h:
1230         * MallocBench/MallocBench/memalign.cpp: Added.
1231         (benchmark_memalign):
1232         * MallocBench/MallocBench/memalign.h: Added.
1233
1234 2014-12-09  Myles C. Maxfield  <mmaxfield@apple.com>
1235
1236         Add performance test related to font fallback
1237         https://bugs.webkit.org/show_bug.cgi?id=139332
1238
1239         Reviewed by Simon Fraser.
1240
1241         * Layout/font-fallback.html: Added.
1242         * Layout/resources/font-fallback.html: Added.
1243
1244 2014-12-08  Dean Jackson  <dino@apple.com>
1245
1246         [Apple] Use Accelerate framework to speed-up FEGaussianBlur
1247         https://bugs.webkit.org/show_bug.cgi?id=139310
1248
1249         Reviewed by Simon Fraser.
1250
1251         Add an interactive performance test that measures the speed of a set
1252         of blur operations on a generated images.
1253
1254         * Interactive/blur-filter-timing.html: Added.
1255
1256 2014-11-13  Zalan Bujtas  <zalan@apple.com>
1257
1258         Simple line layout: Add performance test case to measure line layout speed of monolithic text content.
1259         https://bugs.webkit.org/show_bug.cgi?id=138699
1260
1261         Reviewed by Antti Koivisto.
1262
1263         * Layout/line-layout-long-long-text.html: Added.
1264
1265 2014-10-22  Zalan Bujtas  <zalan@apple.com>
1266
1267         Speed up line parsing for simple line layout (part I)
1268         https://bugs.webkit.org/show_bug.cgi?id=137275
1269
1270         Reviewed by Antti Koivisto.
1271
1272         Extend simple line layout performance test with a few more cases.
1273         Now we've got:
1274         <div center
1275         <div right
1276         <div justify
1277         <div white-space: pre (new)
1278         <div overflow-wrap: break-word (new)
1279         <pre
1280         <pre white-space: pre-wrap
1281         <pre white-space: pre-line (new)
1282         <pre white-space: nowrap (new)
1283         <pre white-space: pre-wrap overflow-wrap: break-word
1284         <div + embedded <span etc.
1285         <div + br
1286
1287         * Layout/line-layout-simple.html:
1288
1289 2014-10-15  Andrei Bucur  <abucur@adobe.com>
1290
1291         [Multicol] Start adding performance tests for the multi-column implementation
1292         https://bugs.webkit.org/show_bug.cgi?id=137687
1293
1294         Reviewed by Mihnea Ovidenie.
1295
1296         This patch creates a Multicol folder inside the Layout performance tests suite. It adds only two tests
1297         as described below.
1298
1299         The tests are skipped until the implementation stabilizes.
1300
1301         * Layout/Multicol/MulticolManyColumns.html: Added.
1302         This test verifies the performance of the multi-column implementation with two nested multi-column
1303         containers, the first having 20 columns and the second 10 columns.
1304
1305         * Layout/Multicol/MulticolNested.html: Added.
1306         This test verifies the performance of nesting multi-column containers in the presence
1307         of floats.
1308
1309         * Layout/Multicol/resources/multicol-content-many-columns.html: Added.
1310         * Layout/Multicol/resources/multicol-content-nested.html: Added.
1311         * Skipped: Skip the Multicol folder for now.
1312
1313 2014-09-29  Filip Pizlo  <fpizlo@apple.com>
1314
1315         It should be fun and easy to run every possible JavaScript benchmark from the command line
1316         https://bugs.webkit.org/show_bug.cgi?id=137245
1317
1318         Reviewed by Oliver Hunt.
1319         
1320         This adds the scaffolding for running Octane version 2 inside run-jsc-benchmarks.
1321         In the future we should just land Octane2 in this directory, and run-jsc-benchmarks
1322         should be changed to point directly at this directory instead of requiring the
1323         Octane path to be configured as part of the configuration file.
1324
1325         * Octane: Added.
1326         * Octane/wrappers: Added.
1327         * Octane/wrappers/jsc-box2d.js: Added.
1328         (jscSetUp):
1329         (jscTearDown):
1330         (jscRun):
1331         * Octane/wrappers/jsc-boyer.js: Added.
1332         (jscSetUp):
1333         (jscTearDown):
1334         (jscRun):
1335         * Octane/wrappers/jsc-closure.js: Added.
1336         (jscSetUp):
1337         (jscTearDown):
1338         (jscRun):
1339         * Octane/wrappers/jsc-decrypt.js: Added.
1340         (jscSetUp):
1341         (jscTearDown):
1342         (jscRun):
1343         * Octane/wrappers/jsc-deltablue.js: Added.
1344         (jscSetUp):
1345         (jscTearDown):
1346         (jscRun):
1347         * Octane/wrappers/jsc-earley.js: Added.
1348         (jscSetUp):
1349         (jscTearDown):
1350         (jscRun):
1351         * Octane/wrappers/jsc-encrypt.js: Added.
1352         (jscSetUp):
1353         (jscTearDown):
1354         (jscRun):
1355         * Octane/wrappers/jsc-gbemu.js: Added.
1356         (jscSetUp):
1357         (jscTearDown):
1358         (jscRun):
1359         * Octane/wrappers/jsc-jquery.js: Added.
1360         (jscSetUp):
1361         (jscTearDown):
1362         (jscRun):
1363         * Octane/wrappers/jsc-mandreel.js: Added.
1364         (jscSetUp):
1365         (jscTearDown):
1366         (jscRun):
1367         * Octane/wrappers/jsc-navier-stokes.js: Added.
1368         (jscSetUp):
1369         (jscTearDown):
1370         (jscRun):
1371         * Octane/wrappers/jsc-pdfjs.js: Added.
1372         (jscSetUp.PdfJS_window.console.log):
1373         (jscSetUp):
1374         (jscTearDown):
1375         (jscRun):
1376         * Octane/wrappers/jsc-raytrace.js: Added.
1377         (jscSetUp):
1378         (jscTearDown):
1379         (jscRun):
1380         * Octane/wrappers/jsc-regexp.js: Added.
1381         (jscSetUp):
1382         (jscTearDown):
1383         (jscRun):
1384         * Octane/wrappers/jsc-richards.js: Added.
1385         (jscSetUp):
1386         (jscTearDown):
1387         (jscRun):
1388         * Octane/wrappers/jsc-splay.js: Added.
1389         (jscSetUp):
1390         (jscTearDown):
1391         (jscRun):
1392         * Octane/wrappers/jsc-typescript.js: Added.
1393         (jscSetUp):
1394         (jscTearDown):
1395         (jscRun):
1396         * Octane/wrappers/jsc-zlib.js: Added.
1397         (jscSetUp):
1398         (jscTearDown):
1399         (jscRun):
1400
1401 2014-09-28  Sungmann Cho  <sungmann.cho@navercorp.com>
1402
1403         Fix some minor typos: psuedo -> pseudo
1404         https://bugs.webkit.org/show_bug.cgi?id=137192
1405
1406         Reviewed by Alexey Proskuryakov.
1407
1408         * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js:
1409
1410 2014-09-11  Geoffrey Garen  <ggaren@apple.com>
1411
1412         Some MallocBench refinements
1413         https://bugs.webkit.org/show_bug.cgi?id=136750
1414
1415         Reviewed by Sam Weinig.
1416
1417         * MallocBench/MallocBench/Interpreter.cpp:
1418         (Interpreter::run): Allow for null entries in the object list so that
1419         we can test in modes that exclude large or small allocations.
1420
1421         * MallocBench/MallocBench/churn.cpp:
1422         (benchmark_churn):
1423         * MallocBench/MallocBench/flickr.cpp:
1424         (benchmark_flickr):
1425         * MallocBench/MallocBench/fragment.cpp:
1426         (benchmark_fragment_iterate):
1427         * MallocBench/MallocBench/list.cpp:
1428         (benchmark_list_allocate):
1429         * MallocBench/MallocBench/reddit.cpp:
1430         (benchmark_reddit): Updated test runtimes to weight them more equally,
1431         for the sake of arithmetic mean.
1432
1433         * MallocBench/MallocBench/stress.cpp:
1434         (Object::Object):
1435         (allocate):
1436         (deallocate):
1437         (benchmark_stress): Verify the contents of memory as we go. Also,
1438         force scavenging each time through the loop to test the scavenging path.
1439
1440         * MallocBench/MallocBench/theverge.cpp:
1441         (benchmark_theverge):
1442         * MallocBench/MallocBench/tree.cpp:
1443         (benchmark_tree_churn): Re-weighted, as above.
1444
1445 2014-09-08  Myles C. Maxfield  <mmaxfield@apple.com>
1446
1447         PerformanceTests/SVG/SVG-Text.html has unparsable output
1448         https://bugs.webkit.org/show_bug.cgi?id=136648
1449
1450         Reviewed by Gavin Barraclough.
1451
1452         I need to clean up the arbitrary text on the page before telling
1453         the test runner infrastructure that the test is complete.
1454
1455         * SVG/SVG-Text.html:
1456
1457 2014-09-05  Myles C. Maxfield  <mmaxfield@apple.com>
1458
1459         Laying out a TextRun using an SVG font is O(n^2)
1460         https://bugs.webkit.org/show_bug.cgi?id=136584
1461
1462         Reviewed by Andreas Kling.
1463
1464         Time how long it takes to lay out and render some text using an SVG font.
1465
1466         * SVG/SVG-Text.html: Added.
1467         * SVG/resources/graffiti.svg: Added.
1468
1469 2014-09-02  Geoffrey Garen  <ggaren@apple.com>
1470
1471         MallocBench should have a stress test for correctness
1472         https://bugs.webkit.org/show_bug.cgi?id=136468
1473
1474         Reviewed by Andreas Kling.
1475
1476         Added a stress test that allocates randomized sizes of randomized
1477         lifetimes in randomized order.
1478
1479         This version of the test reproduces the EWS crash seen in bmalloc
1480         (<https://bugs.webkit.org/show_bug.cgi?id=132629>).
1481
1482         * MallocBench/MallocBench.xcodeproj/project.pbxproj:
1483         * MallocBench/MallocBench/Benchmark.cpp: Sort!
1484         * MallocBench/MallocBench/stress.cpp: Added.
1485         (Object::Object):
1486         (SizeStream::SizeStream):
1487         (SizeStream::next):
1488         (benchmark_stress): Usually, we random(0). Surprisingly, though, only
1489         random(1) reproduces the bug I was looking for.
1490         * MallocBench/MallocBench/stress.h: Added.
1491
1492 2014-06-02  Ryosuke Niwa  <rniwa@webkit.org>
1493
1494         Rename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
1495         https://bugs.webkit.org/show_bug.cgi?id=133455
1496
1497         Reviewed by Timothy Hatcher.
1498
1499         * Speedometer/: Renamed from DoYouEvenBench.
1500         * Skipped: Updated the path for InteractiveRunner.html
1501
1502 2014-06-02  Ryosuke Niwa  <rniwa@webkit.org>
1503
1504         Rename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
1505         https://bugs.webkit.org/show_bug.cgi?id=133455
1506
1507         Reviewed by Timothy Hatcher.
1508
1509         Renamed the benchmark to Speedometer and added the new look designed by Timothy Hatcher.
1510
1511         Also changed the unit of measurements from milliseconds to runs-per-minute averaged over the number
1512         of the benchmark suites (7 for 1.0). You can divide 420000 by the old benchmark score (in milliseconds)
1513         to get the new value for the set of tests that are enabled by default in 1.0. You can continue to see
1514         results in milliseconds on Full.html#ms.
1515
1516         * DoYouEvenBench/Full.html: Added a bunch of sections and the description of the benchmark.
1517
1518         * DoYouEvenBench/resources/benchmark-report.js: Remove the newly added content when ran inside a DRT or
1519         WTR so that run-perf-tests wouldn't error.
1520         * DoYouEvenBench/resources/benchmark-runner.js:
1521         (BenchmarkRunner.prototype._appendFrame): Call a newly added willAddTestFrame callback when it exists.
1522
1523         * DoYouEvenBench/resources/gauge.png: Added.
1524         * DoYouEvenBench/resources/gauge@2x.png: Added.
1525         * DoYouEvenBench/resources/logo.png: Added.
1526         * DoYouEvenBench/resources/logo@2x.png: Added.
1527         * DoYouEvenBench/resources/main.css: Replaced the style.
1528
1529         * DoYouEvenBench/resources/main.js:
1530         (window.benchmarkClient.willAddTestFrame): Place the iframe right where #testContainer is shown.
1531         (window.benchmarkClient.willRunTest): Show the name of the suite (e.g. EmberJS-TodoMVC) to run next.
1532         (window.benchmarkClient.didRunSuites):
1533         (window.benchmarkClient.willStartFirstIteration): Initialize _timeValues and _finishedTestCount now that
1534         we have an UI to run the benchmark multiple times without reloading the page.
1535         (window.benchmarkClient.didFinishLastIteration): Split into smaller pieces.
1536         (window.benchmarkClient._computeResults): Computes the mean and the statistics for the given time values,
1537         and also format them in a human readable form.
1538         (window.benchmarkClient._computeResults.totalTimeInDisplayUnit): Converts ms to runs/min.
1539         (window.benchmarkClient._computeResults.sigFigFromPercentDelta): Given a percentage error (e.g. 1%),
1540         returns the number of significant digits required for the mean.
1541         (window.benchmarkClient._computeResults.toSigFigPrecision): Calls toPrecision with the specified precision
1542         constrained to be at least the number of non-decimal digits and at most 6.
1543         (window.benchmarkClient._addDetailedResultsRow): Renamed from _addResult. It now takes the table to which
1544         to add a row and the iteration number.
1545         (window.benchmarkClient._updateGaugeNeedle): Added. Controls the angle of the speed indicator.
1546         (window.benchmarkClient._populateDetailedResults): Added.
1547         (window.benchmarkClient.prepareUI): Added. It adds an event listener to show a specified section when
1548         the push state of the document changes, and shows a warning sign when the view port size is too small.
1549         We do this inside a callback to avoid running it inside DRT / WTR.
1550         (startBenchmark):
1551         (showSection): Added.
1552         (startTest): Added.
1553         (showResultsSummary): Added.
1554         (showResultDetails): Added.
1555         (showAbout): Added.
1556
1557 2014-06-01  Ryosuke Niwa  <rniwa@webkit.org>
1558
1559         DYEBench: Move test states into benchmarkClient and remove the closure
1560         https://bugs.webkit.org/show_bug.cgi?id=133438
1561
1562         Reviewed by Benjamin Poulain.
1563
1564         Moved all local variables in the closure wrapping benchmarkClient onto the object itself
1565         and removed the closure to improve the readability of the code.
1566
1567         * DoYouEvenBench/Full.html:
1568         * DoYouEvenBench/resources/main.js:
1569         (window.benchmarkClient.willRunTest):
1570         (window.benchmarkClient.didRunTest):
1571         (window.benchmarkClient.didRunSuites):
1572         (window.benchmarkClient.willStartFirstIteration):
1573         (window.benchmarkClient.didFinishLastIteration):
1574         (window.benchmarkClient._addResult): Moved.
1575         (.): Deleted.
1576
1577 2014-06-01  Ryosuke Niwa  <rniwa@webkit.org>
1578
1579         DYEBench: Split stylesheets and scripts in Full.html into separate files
1580         https://bugs.webkit.org/show_bug.cgi?id=133437
1581
1582         Reviewed by Benjamin Poulain.
1583
1584         Extracted main.js and main.css.
1585
1586         Also fixed a bug in startBenchmark that disabled suites were counted towards the total number of tests.
1587
1588         * DoYouEvenBench/Full.html:
1589         * DoYouEvenBench/resources/main.css: Added.
1590         * DoYouEvenBench/resources/main.js: Added.
1591         (.addResult):
1592         (window.benchmarkClient):
1593         (startBenchmark): Renamed from startTest.
1594
1595 2014-06-01  Ryosuke Niwa  <rniwa@webkit.org>
1596
1597         DYEBench: CSS parser warning at line 106 of base.css
1598         https://bugs.webkit.org/show_bug.cgi?id=133433
1599
1600         Reviewed by Maciej Stachowiak.
1601
1602         Removed the old filter CSS property for Internet Explorer. The latest Internet Explorer supports -ms-linear-gradient
1603         on background CSS property anyways.
1604
1605         It's interesting that some of the tests only have -webkit- prefixes. Perhaps we should update those subtests.
1606
1607         * DoYouEvenBench/Full.html:
1608         * DoYouEvenBench/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css:
1609         (#header:before):
1610         * DoYouEvenBench/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css:
1611         (#header:before):
1612         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css:
1613         (#header:before):
1614         * DoYouEvenBench/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css:
1615         (#header:before):
1616         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css:
1617         (#header:before):
1618         * DoYouEvenBench/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css:
1619         (#header:before):
1620         * DoYouEvenBench/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css:
1621         (#header:before):
1622
1623 2014-05-31  Ryosuke Niwa  <rniwa@webkit.org>
1624
1625         DYEBench: Ember.js assertion hit at line 20593
1626         https://bugs.webkit.org/show_bug.cgi?id=133431
1627
1628         Reviewed by Darin Adler.
1629
1630         The assertion was hit because ToDoMVC includes jQuery 2.1 and Ember.js 1.3.1 only recognizes jQuery 2.0.
1631         Port the assertion from Ember.js 1.5.1 to suppress the assertion.
1632
1633         We should update the entire Ember.js at some point but this would do the job for now.
1634
1635         * DoYouEvenBench/Full.html:
1636         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js:
1637
1638 2014-05-31  Ryosuke Niwa  <rniwa@webkit.org>
1639
1640         DYEBench: Prevent frame flattening on iOS
1641         https://bugs.webkit.org/show_bug.cgi?id=133428
1642
1643         Reviewed by Andreas Kling.
1644
1645         Prevent frame flattening on iOS by setting scrolling=no.
1646
1647         * DoYouEvenBench/Full.html:
1648         * DoYouEvenBench/resources/benchmark-runner.js:
1649         (BenchmarkRunner.prototype._appendFrame):
1650
1651 2014-05-30  Ryosuke Niwa  <rniwa@webkit.org>
1652
1653         DYEBench spits out 404 errors for learn.json
1654         https://bugs.webkit.org/show_bug.cgi?id=133416
1655
1656         Reviewed by Oliver Hunt.
1657
1658         Add an empty learn.json file so that it won't cause a 404 error when hosted on a http server.
1659
1660         Bumped the version number to 0.12.
1661
1662         * DoYouEvenBench/Full.html:
1663         * DoYouEvenBench/resources/todomvc/learn.json:
1664
1665 2014-05-23  Geoffrey Garen  <ggaren@apple.com>
1666
1667         Performance testing, diamond-square terrain generation + canvas
1668         https://bugs.webkit.org/show_bug.cgi?id=133054
1669
1670         Reviewed by Ryosuke Niwa.
1671
1672         This test was written by Hunter Loftis. It originally appeared on his
1673         blog @ <http://www.playfuljs.com/realistic-terrain-in-130-lines/>.
1674
1675         I did a bit of editing for format and benchmark suitability.
1676
1677         * Canvas/terrain.html: Added.
1678
1679 2014-05-13  Ryosuke Niwa  <rniwa@webkit.org>
1680
1681         DYEBench should run 20 iterations in browser
1682         https://bugs.webkit.org/show_bug.cgi?id=132795
1683
1684         Reviewed by Gavin Barraclough.
1685
1686         Right now, run-perf-tests runs BYEBench 4 times with different instances of DRT/WTR to get
1687         a more stable time and account for differences in the runtime environment, particularly,
1688         ASLR (Address Space Layout Randomization).
1689
1690         While we can't account for the latter effect when the benchmark is ran inside a browser,
1691         we can at least run 20 iterations to get a more stable (but perhaps biased by ALSR) number.
1692
1693         While the sample size of 20 is statistically unsound to compute the arithmetic mean from,
1694         it's MUCH better than the current sample size of 5.
1695
1696         * DoYouEvenBench/Full.html:
1697         (benchmarkClient.iterationCount): Set the default iteration count to 20.
1698         (startTest): Use benchmarkClient.iterationCount as the iteration count.
1699         * DoYouEvenBench/resources/benchmark-report.js:
1700         (benchmarkClient.iterationCount): Continue to use the old iteration count of 5 when ran
1701         inside run-perf-tests.
1702
1703 2014-05-09  Ryosuke Niwa  <rniwa@webkit.org>
1704
1705         DYEBench should show 95th percentile right next to the mean with ±
1706         https://bugs.webkit.org/show_bug.cgi?id=132729
1707
1708         Reviewed by Darin Adler.
1709
1710         Before this patch, Full.html showed the 95th percentile delta for the arthemtic mean in a separate row
1711         but this was confusing for some people. Show it right next to mean in the same row separated by ±.
1712
1713         * DoYouEvenBench/Full.html:
1714
1715 2014-05-08  Ryosuke Niwa  <rniwa@webkit.org>
1716
1717         DYEBench should use TodoMVC to test FlightJS for consistency
1718         https://bugs.webkit.org/show_bug.cgi?id=132727
1719
1720         Reviewed by Andreas Kling.
1721
1722         Add a test suite for the FlightJS version of TodoMVC, and disable FlightJS-MailClient by default.
1723
1724         I initially intended to include a wider variety of demo apps in DYEBench
1725         but that's not happening any time soon so let us use TodoMVC for all frameworks for now.
1726
1727         We can add more demo apps in v2.
1728
1729         * DoYouEvenBench/Full.html: Increment the version to 0.10.
1730         * DoYouEvenBench/InteractiveRunner.html: Don't check disabled suites by default.
1731         * DoYouEvenBench/resources/tests.js:
1732         * DoYouEvenBench/resources/todomvc/dependency-examples: Added.
1733         * DoYouEvenBench/resources/todomvc/dependency-examples/flight: Added.
1734         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/.gitignore: Added.
1735         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/.jshintrc: Added.
1736         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app: Added.
1737         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js: Added.
1738         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/app.js: Added.
1739         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data: Added.
1740         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data/stats.js: Added.
1741         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data/todos.js: Added.
1742         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/main.js: Added.
1743         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/store.js: Added.
1744         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui: Added.
1745         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/main_selector.js: Added.
1746         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/new_item.js: Added.
1747         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/stats.js: Added.
1748         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/todo_list.js: Added.
1749         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/toggle_all.js: Added.
1750         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/with_filters.js: Added.
1751         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/utils.js: Added.
1752         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates: Added.
1753         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates/stats.html: Added.
1754         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates/todo.html: Added.
1755         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower.json: Added.
1756         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components: Added.
1757         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/depot: Added.
1758         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/depot/depot.js: Added.
1759         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim: Added.
1760         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-sham.js: Added.
1761         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Added.
1762         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight: Added.
1763         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib: Added.
1764         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/advice.js: Added.
1765         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/base.js: Added.
1766         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/component.js: Added.
1767         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Added.
1768         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/debug.js: Added.
1769         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Added.
1770         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Added.
1771         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/registry.js: Added.
1772         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/utils.js: Added.
1773         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/jquery: Added.
1774         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Added.
1775         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs: Added.
1776         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text: Added.
1777         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text/text.js: Added.
1778         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs/require.js: Added.
1779         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common: Added.
1780         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Added.
1781         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.js: Added.
1782         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Added.
1783         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/index.html: Added.
1784         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/karma.conf.js: Added.
1785         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/package.json: Added.
1786         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/readme.md: Added.
1787         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test: Added.
1788         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/.jshintrc: Added.
1789         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture: Added.
1790         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Added.
1791         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Added.
1792         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Added.
1793         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/mock: Added.
1794         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Added.
1795         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec: Added.
1796         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data: Added.
1797         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Added.
1798         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Added.
1799         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui: Added.
1800         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Added.
1801         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Added.
1802         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Added.
1803         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/test-main.js: Added.
1804
1805 2014-05-07  Manuel Rego Casasnovas  <rego@igalia.com>
1806
1807         [CSS Grid Layout] Remove runtime feature
1808         https://bugs.webkit.org/show_bug.cgi?id=132382
1809
1810         Reviewed by Benjamin Poulain.
1811
1812         Remove set of WebKitCSSGridLayoutEnabled preference.
1813
1814         * Layout/auto-grid-lots-of-data.html:
1815         * Layout/fixed-grid-lots-of-data.html:
1816
1817 2014-05-06  Radu Stavila  <stavila@adobe.com>
1818
1819         [CSSRegions] Enabled regions performance tests by default
1820         https://bugs.webkit.org/show_bug.cgi?id=128244
1821
1822         Reviewed by Andreas Kling.
1823
1824         Enabled regions performance tests.
1825
1826         * Skipped:
1827
1828 2014-04-25  Andreas Kling  <akling@apple.com>
1829
1830         Bump jQuery to same version that dromaeo.com uses.
1831
1832         Rubber-stamped by Ryosuke Niwa.
1833
1834         * Dromaeo/resources/dromaeo/web/lib/jquery-1.10.2.min.js: Added.
1835         * Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html:
1836         * Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html:
1837         * Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html:
1838         * Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:
1839         * Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html:
1840         * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html:
1841
1842 2014-04-18  Geoffrey Garen  <ggaren@apple.com>
1843
1844         Added some more Membuster recordings to MallocBench
1845         https://bugs.webkit.org/show_bug.cgi?id=131862
1846
1847         Reviewed by Sam Weinig.
1848
1849         * MallocBench/MallocBench/Benchmark.cpp:
1850         (Benchmark::Benchmark):
1851         (Benchmark::run):
1852         * MallocBench/MallocBench/Benchmark.h:
1853         * MallocBench/MallocBench/CommandLine.cpp:
1854         * MallocBench/MallocBench/CommandLine.h:
1855         (CommandLine::runs): Added a --runs option, so we can specify zero runs
1856         for memory warning benchmarks. Those benchmarks want zero runs so that
1857         they can perform a single warmup, which does not free all allocated
1858         objects, and then see how far back to 0MB they can get. Running multiple
1859         times would accumulate leaks, which is not representative of the
1860         simulated scenario.
1861
1862         * MallocBench/MallocBench/Interpreter.cpp:
1863         (Interpreter::Interpreter):
1864         (Interpreter::run):
1865         * MallocBench/MallocBench/Interpreter.h: Support not deallocating all
1866         objects allocated during the recording, so we can do low memory warning
1867         memory use measurements, as above.
1868
1869         * MallocBench/MallocBench/flickr.cpp:
1870         (benchmark_flickr_memory_warning):
1871         * MallocBench/MallocBench/main.cpp:
1872         (main):
1873         * MallocBench/MallocBench/reddit.cpp:
1874         (benchmark_reddit_memory_warning):
1875         * MallocBench/MallocBench/theverge.cpp:
1876         (benchmark_theverge_memory_warning): Adopt the API above.
1877
1878         * MallocBench/run-malloc-benchmarks: I took a first pass at listing all
1879         available benchmarks here. Then I commented out the benchmarks that
1880         probably aren't reasonable to run by default.
1881
1882 2014-04-18  Geoffrey Garen  <ggaren@apple.com>
1883
1884         MallocBench: removed the --measure-heap option
1885         https://bugs.webkit.org/show_bug.cgi?id=131854
1886
1887         Reviewed by Sam Weinig.
1888
1889         As of <https://bugs.webkit.org/show_bug.cgi?id=131661>, measuring the
1890         heap is fast, so there's no reason to disable it.
1891
1892         * MallocBench/MallocBench/Benchmark.cpp:
1893         (Benchmark::Benchmark):
1894         (Benchmark::run):
1895         (Benchmark::printReport):
1896         * MallocBench/MallocBench/Benchmark.h:
1897         * MallocBench/MallocBench/CommandLine.cpp:
1898         (CommandLine::printUsage):
1899         * MallocBench/MallocBench/CommandLine.h:
1900         (CommandLine::heapSize):
1901         (CommandLine::measureHeap): Deleted.
1902         * MallocBench/MallocBench/main.cpp:
1903         (main):
1904
1905 2014-04-16  Alexandru Chiculita  <achicu@adobe.com>
1906
1907         Improve performance of the RenderLayerCompositor::OverlapMap
1908         https://bugs.webkit.org/show_bug.cgi?id=115063
1909
1910         Reviewed by Simon Fraser.
1911
1912         Testing the performance of computing the overlap of 5000 layers.
1913
1914         * Layout/layers_overlap_2d.html: Added. Using non-composited layers, to check
1915         that the performance on the non-composited path is not changing with this patch.
1916         * Layout/layers_overlap_3d.html: Added. Records the time to do the layout of 5000
1917         non-overlapping 3D layers.
1918
1919 2014-04-15  Zoltan Horvath  <zoltan@webkit.org>
1920
1921         [CSS Shapes] Linking stylesheet instead of inline style definition has ruined ShapesRegions test
1922         https://bugs.webkit.org/show_bug.cgi?id=131572
1923
1924         Reviewed by Rob Buis.
1925
1926         In r167022 I moved the common CSS selectors into RegionsShapes.css, then I linked it into the perf test
1927         files, but the measurement results dropped down from about 400ms to 10ms. I realized it's caused by the
1928         linked css rule, so I've put the selectors back into every test case, which fixes the test measurements.
1929
1930         * Layout/Shapes/resources/RegionsShapes.css: Removed.
1931         * Layout/Shapes/resources/RegionsShapesContent.html:
1932         * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth400.html:
1933         * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth600.html:
1934         * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth800.html:
1935         * Layout/Shapes/resources/RegionsShapesContentNoShapes.html:
1936
1937 2014-04-14  Geoffrey Garen  <ggaren@apple.com>
1938
1939         MallocBench should scavenge explicitly instead of waiting
1940         https://bugs.webkit.org/show_bug.cgi?id=131661
1941
1942         Reviewed by Andreas Kling.
1943
1944         * MallocBench/MallocBench.xcodeproj/project.pbxproj: Don't build mbmalloc
1945         by default because it will overwrite any other mbmalloc you're working
1946         with in the WebKitBuild directory.
1947
1948         * MallocBench/MallocBench/Benchmark.cpp:
1949         (Benchmark::run): Scavenge explicitly instead of waiting. This is faster,
1950         and it's the only way to get FastMalloc to scavenge. (That's a bug in
1951         FastMalloc, but we don't want it to interfere with broader testing.)
1952
1953         * MallocBench/MallocBench/mbmalloc.cpp:
1954         * MallocBench/MallocBench/mbmalloc.h: Added a scavenge implementation
1955         for system malloc.
1956
1957 2014-04-14  Geoffrey Garen  <ggaren@apple.com>
1958
1959         A few MallocBench record/replay fixes
1960         https://bugs.webkit.org/show_bug.cgi?id=131627
1961
1962         Reviewed by Andreas Kling.
1963
1964         * MallocBench/MallocBench/Interpreter.cpp:
1965         (Interpreter::run): Accept 0-sized allocations without asserting because
1966         WebKit does that sometimes.
1967
1968         * MallocBench/MallocBench/flickr.ops:
1969         * MallocBench/MallocBench/flickr_memory_warning.ops:
1970         * MallocBench/MallocBench/reddit.ops:
1971         * MallocBench/MallocBench/reddit_memory_warning.ops:
1972         * MallocBench/MallocBench/theverge.ops:
1973         * MallocBench/MallocBench/theverge_memory_warning.ops: Updated these
1974         recordings because a bug in the recording mechanism caused one out of
1975         every few thousand slot values to be bogus.
1976
1977 2014-04-13  Geoffrey Garen  <ggaren@apple.com>
1978
1979         Added some website recordings to MallocBench -- taken from Membuster
1980         https://bugs.webkit.org/show_bug.cgi?id=131601
1981
1982         Reviewed by Ryosuke Niwa.
1983
1984         Added flickr, reddit, and theverge -- each recorded from Membuster's
1985         cache, with and without sending Safari a low memory warning.
1986
1987         * MallocBench/MallocBench.xcodeproj/project.pbxproj:
1988         * MallocBench/MallocBench/Benchmark.cpp:
1989         * MallocBench/MallocBench/flickr.cpp: Added.
1990         (benchmark_flickr):
1991         (benchmark_flickr_memory_warning):
1992         * MallocBench/MallocBench/flickr.h: Added.
1993         * MallocBench/MallocBench/flickr.ops: Added.
1994         * MallocBench/MallocBench/flickr_memory_warning.ops: Added.
1995         * MallocBench/MallocBench/reddit.cpp: Added.
1996         (benchmark_reddit):
1997         (benchmark_reddit_memory_warning):
1998         * MallocBench/MallocBench/reddit.h: Added.
1999         * MallocBench/MallocBench/reddit.ops: Added.
2000         * MallocBench/MallocBench/reddit_memory_warning.ops: Added.
2001         * MallocBench/MallocBench/theverge.cpp: Added.
2002         (benchmark_theverge):
2003         (benchmark_theverge_memory_warning):
2004         * MallocBench/MallocBench/theverge.h: Added.
2005         * MallocBench/MallocBench/theverge.ops: Added.
2006         * MallocBench/MallocBench/theverge_memory_warning.ops: Added.
2007
2008 2014-04-13  Geoffrey Garen  <ggaren@apple.com>
2009
2010         MallocBench record/replay should support realloc
2011         https://bugs.webkit.org/show_bug.cgi?id=131598
2012
2013         Reviewed by Ryosuke Niwa.
2014
2015         * MallocBench/MallocBench.xcodeproj/project.pbxproj: Fixed some linkage
2016         issues that caused us not to fully link to system malloc in the default
2017         case. Also marked mbmalloc.dylib as required so the error message will
2018         be clearer if we mess up.
2019
2020         * MallocBench/MallocBench/Interpreter.cpp:
2021         (Interpreter::run):
2022         * MallocBench/MallocBench/Interpreter.h: Added the realloc case, and
2023         upgraded one-letter names to full words.
2024
2025 2014-04-11  Dirk Schulze  <krit@webkit.org>
2026
2027         Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
2028         https://bugs.webkit.org/show_bug.cgi?id=79659
2029
2030         Reviewed by Andreas Kling.
2031
2032         Add performance tests for real this time.
2033
2034         * Canvas/compositing-drawimage.html: Added.
2035         * Canvas/compositing-fillRect.html: Added.
2036
2037
2038 2014-04-11  Dirk Schulze  <krit@webkit.org>
2039
2040         Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
2041         https://bugs.webkit.org/show_bug.cgi?id=79659
2042
2043         Reviewed by Andreas Kling.
2044
2045         Add performance tests for fillRect() and drawImage() on composited contexts.
2046
2047         * Canvas/compositing-drawimage.html: Added.
2048         * Canvas/compositing-fillRect.html: Added.
2049
2050 2014-04-09  Zoltan Horvath  <zoltan@webkit.org>
2051
2052         [CSS Shapes] Add no shapes version of RegionsShapes performance test
2053         https://bugs.webkit.org/show_bug.cgi?id=131455
2054         
2055         Reviewed by Ryosuke Niwa.
2056
2057         This is a no shapes version of the RegionsShapes performance test. All the content
2058         will wrap around the floating containers. This way we can compare the runtime/memory
2059         usage of the RegionsShapes test with/without shapes. The test is skipped by default.
2060
2061         * Layout/Shapes/RegionsShapesNoShapes.html: Added.
2062         * Layout/Shapes/resources/RegionsShapesContentNoShapes.html: Added.
2063
2064 2014-04-09  Zoltan Horvath  <zoltan@webkit.org>
2065
2066         [CSS Shapes] Add no regions version of RegionsShapes performance test
2067         https://bugs.webkit.org/show_bug.cgi?id=131442
2068
2069         Reviewed by Ryosuke Niwa.
2070
2071         We would like have a no regions version for RegionsShapes performance test. The new
2072         test produces similar layout to RegionsShapes.html without using regions. It is helpful
2073         for us to do further comparisons when necessary. This test is skipped by default.
2074
2075         * Layout/Shapes/RegionsShapesNoRegions.html: Added.
2076         * Layout/Shapes/resources/RegionsShapes.css: Added.
2077         (html, body):
2078         (.shape):
2079         (#circleShape):
2080         (#imageShape):
2081         (#insetShape):
2082         (#roundedInsetShape):
2083         (#triangleLeft):
2084         (#triangleRight):
2085         (#selfIntersectingStar):
2086         (#region1):
2087         (#region2):
2088         (#region3):
2089         * Layout/Shapes/resources/RegionsShapesContent.html:
2090         * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth400.html: Added.
2091         * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth600.html: Added.
2092         * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth800.html: Added.
2093
2094 2014-04-02  Geoffrey Garen  <ggaren@apple.com>
2095
2096         Unreviewed.
2097
2098         Try to ignore some Xcode shmutz in MallocBench.
2099
2100         * MallocBench/MallocBench.xcodeproj: Added property svn:ignore.
2101
2102 2014-04-02  Geoffrey Garen  <ggaren@apple.com>
2103
2104         Let's benchmark malloc
2105         https://bugs.webkit.org/show_bug.cgi?id=131118
2106
2107         Reviewed by Mark Hahnenberg.
2108
2109         I want to replace fastMalloc with something faster (fasterMalloc?).
2110         I wrote these benchmarks to test / drive development.
2111
2112         * MallocBench: Added.
2113         * MallocBench/MallocBench: Added.
2114         * MallocBench/MallocBench.xcodeproj: Added.
2115         * MallocBench/MallocBench.xcodeproj/project.pbxproj: Added.
2116         * MallocBench/MallocBench/Benchmark.cpp: Added.
2117         (allocateHeap):
2118         (deallocateHeap):
2119         (Benchmark::Benchmark):
2120         (Benchmark::printBenchmarks):
2121         (Benchmark::runOnce):
2122         (Benchmark::run):
2123         (Benchmark::printReport):
2124         (Benchmark::currentTimeMS):
2125         (Benchmark::currentMemoryBytes):
2126         * MallocBench/MallocBench/Benchmark.h: Added.
2127         (Benchmark::Memory::Memory):
2128         (Benchmark::Memory::operator-):
2129         (Benchmark::isValid):
2130         * MallocBench/MallocBench/CPUCount.cpp: Added.
2131         (cpuCount):
2132         * MallocBench/MallocBench/CPUCount.h: Added.
2133         * MallocBench/MallocBench/CommandLine.cpp: Added.
2134         (CommandLine::printUsage):
2135         * MallocBench/MallocBench/CommandLine.h: Added.
2136         (CommandLine::isValid):
2137         (CommandLine::benchmarkName):
2138         (CommandLine::isParallel):
2139         (CommandLine::heapSize):
2140         (CommandLine::measureHeap):
2141         * MallocBench/MallocBench/Interpreter.cpp: Added.
2142         (Interpreter::Interpreter):
2143         (Interpreter::~Interpreter):
2144         (Interpreter::run):
2145         * MallocBench/MallocBench/Interpreter.h: Added.
2146         * MallocBench/MallocBench/balloon.cpp: Added.
2147         (benchmark_balloon):
2148         * MallocBench/MallocBench/balloon.h: Added.
2149         * MallocBench/MallocBench/big.cpp: Added.
2150         (benchmark_big):
2151         * MallocBench/MallocBench/big.h: Added.
2152         * MallocBench/MallocBench/churn.cpp: Added.
2153         (HeapDouble::operator new):
2154         (HeapDouble::operator delete):
2155         (HeapDouble::HeapDouble):
2156         (HeapDouble::operator+=):
2157         (benchmark_churn):
2158         * MallocBench/MallocBench/churn.h: Added.
2159         * MallocBench/MallocBench/crash.ops: Added.
2160         * MallocBench/MallocBench/facebook.cpp: Added.
2161         (benchmark_facebook):
2162         * MallocBench/MallocBench/facebook.h: Added.
2163         * MallocBench/MallocBench/facebook.ops: Added.
2164         * MallocBench/MallocBench/fragment.cpp: Added.
2165         (validate):
2166         (benchmark_fragment):
2167         (benchmark_fragment_iterate):
2168         * MallocBench/MallocBench/fragment.h: Added.
2169         * MallocBench/MallocBench/list.cpp: Added.
2170         (benchmark_list_allocate):
2171         (benchmark_list_traverse):
2172         * MallocBench/MallocBench/list.h: Added.
2173         * MallocBench/MallocBench/main.cpp: Added.
2174         (main):
2175         * MallocBench/MallocBench/mbmalloc.cpp: Added.
2176         * MallocBench/MallocBench/mbmalloc.h: Added.
2177         * MallocBench/MallocBench/medium.cpp: Added.
2178         (benchmark_medium):
2179         * MallocBench/MallocBench/medium.h: Added.
2180         * MallocBench/MallocBench/message.cpp: Added.
2181         (benchmark_message_one):
2182         (benchmark_message_many):
2183         * MallocBench/MallocBench/message.h: Added.
2184         * MallocBench/MallocBench/realloc.cpp: Added.
2185         (benchmark_realloc):
2186         * MallocBench/MallocBench/realloc.h: Added.
2187         * MallocBench/MallocBench/tree.cpp: Added.
2188         (benchmark_tree_allocate):
2189         (benchmark_tree_traverse):
2190         (benchmark_tree_churn):
2191         * MallocBench/MallocBench/tree.h: Added.
2192         * MallocBench/run-malloc-benchmarks: Added.
2193
2194 2014-03-29  Mark Lam  <mark.lam@apple.com>
2195
2196         LongSpider 3d-morph result check is inappropriate.
2197         <https://webkit.org/b/130928>
2198
2199         Reviewed by Filip Pizlo.
2200
2201         The LongSpider 3d-morph component expected result check is incorrect.
2202         The existing test checks if the leading digit of a sum starts with "-1".
2203         However, it turned out that the expected sum is in the order of
2204         -1.8735013540549517e-16 (i.e. very close to 0).  With small errors in
2205         the terms of the sum adding up, it is very easy for the resultant sum 
2206         to fluctuate.  There is no guarantee that the resultant sum's most
2207         significant digit will start with -1 either.
2208
2209         The fix is to do a tolerance check on all the terms of the sum as well
2210         as the total sum value instead.  The tolerance should be more lenient
2211         for the sum which accumulates error from the individual terms, then for
2212         individual terms.
2213
2214         * LongSpider/3d-morph.js:
2215         (expect):
2216
2217 2014-03-28  Zoltan Horvath  <zoltan@webkit.org>
2218
2219         [CSS Shapes] Add performance tests for Shapes with Regions
2220         https://bugs.webkit.org/show_bug.cgi?id=129624
2221
2222         Reviewed by Ryosuke Niwa.
2223
2224         This tests introduces a real-life like page, which contains different types of shapes within
2225         shape-outsides. The content flows through regions, which use media queries. The performance test
2226         loads the actual Shapes-Regions test case into iframes with different page sizes (thus the layout
2227         triggers the media queries as well), and measures its load time.
2228
2229         * Layout/RegionsShapes.html: Added.
2230         * Layout/Shapes/resources/RegionsShapesContent.html: Added.
2231
2232 2014-03-20  Zoltan Horvath  <zoltan@webkit.org>
2233
2234         Add option for hiding Confidence Interval Delta on the performance tests results page
2235         https://bugs.webkit.org/show_bug.cgi?id=130483
2236
2237         Reviewed by Ryosuke Niwa.
2238
2239         I've found it useful to hide the confidence interval delta from the results table
2240         sometimes, for example on copying data, or for a clearer look. This patch introduces
2241         a new button for it on the local results page.
2242
2243         * resources/results-template.html:
2244
2245 2014-03-20  Laszlo Vidacs  <lvidacs.u-szeged@partner.samsung.com>
2246
2247         Optimize RenderTable::colToEffCol() for tables without colspans
2248         https://bugs.webkit.org/show_bug.cgi?id=129298
2249
2250         Reviewed by Simon Fraser.
2251
2252         Create an alternative fast path to RenderTable colToEffCol() and effColToCol()
2253         when there is no colspan or colspan does not exceed the width of table.
2254         Blink merge https://codereview.chromium.org/154243002 by rhogan
2255
2256         * Layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html: Added.
2257         * Layout/large-table-with-collapsed-borders-and-colspans.html: Added.
2258         * Layout/large-table-with-collapsed-borders-and-no-colspans.html: Added.
2259         * Layout/resources/large-table-with-collapsed-borders.css: Added.
2260         * Layout/resources/large-table-with-collapsed-borders.js: Added.
2261
2262 2014-03-14  Maciej Stachowiak  <mjs@apple.com>
2263
2264         Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
2265         https://bugs.webkit.org/show_bug.cgi?id=130276
2266         <rdar://problem/16266927>
2267
2268         Reviewed by Simon Fraser.
2269
2270         * Dromaeo/resources/dromaeo/web/tests/sunspider-3d-raytrace.html:
2271         * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bitwise-and.html:
2272         * Dromaeo/resources/dromaeo/web/tests/sunspider-math-cordic.html:
2273         * Dromaeo/resources/dromaeo/web/tests/sunspider-string-tagcloud.html:
2274         * LongSpider/3d-morph.js:
2275         * LongSpider/3d-raytrace.js:
2276         * LongSpider/math-cordic.js:
2277         * LongSpider/string-tagcloud.js:
2278         * Parser/resources/html5-8266.html:
2279         * Parser/resources/html5.html:
2280
2281 2014-03-10  Zoltan Horvath  <zoltan@webkit.org>
2282
2283         [CSS Shapes] Add performance tests for SVG shape with shape-margin
2284         https://bugs.webkit.org/show_bug.cgi?id=129930
2285
2286         Reviewed by Ryosuke Niwa.
2287
2288         The test is skipped by default.
2289
2290         * Layout/Shapes/ShapeOutsideSVGWithMargin.html: Added.
2291         * Layout/Shapes/resources/shape.svg: Added.
2292
2293 2014-02-19  Zoltan Horvath  <zoltan@webkit.org>
2294
2295         [CSS Shapes] Add performance test for stacked floats with shape-outsides
2296         https://bugs.webkit.org/show_bug.cgi?id=128821
2297
2298         Reviewed by Brent Fulgham.
2299
2300         This tests generate stacked floats content with shape-outsides.
2301         The test is skipped by default.
2302
2303         * Layout/Shapes/ShapeOutsideStackedPolygons.html: Added.
2304
2305 2014-02-15  Zoltan Horvath  <zoltan@webkit.org>
2306
2307         [CSS Shapes] Add performance test for raster shape with shape-margin
2308         https://bugs.webkit.org/show_bug.cgi?id=128770
2309
2310         Reviewed by Ryosuke Niwa.
2311
2312         This patch introduces a new performance test for image valued shapes,
2313         where shape-margin is applied on the shape.
2314         The test is skipped by default.
2315
2316         * Layout/Shapes/ShapeOutsideRasterWithMargin.html: Added.
2317
2318 2014-02-14  Ryosuke Niwa  <rniwa@webkit.org>
2319
2320         Improve the appearance of DYEBench
2321         https://bugs.webkit.org/show_bug.cgi?id=128866
2322
2323         Reviewed by Antti Koivisto.
2324
2325         Add a div that shows progress during the test. Also show 95th percentile,
2326         and use a table instead of pre to show results.
2327
2328         * DoYouEvenBench/Full.html:
2329         (.addResult): Added. Shows results in a table.
2330         (benchmarkClient.willRunTest): Added to show the progress bar.
2331         (benchmarkClient.didRunTest):
2332         (benchmarkClient.didRunSuites):
2333         (benchmarkClient.didFinishLastIteration): Compute 95th percentile using Statistics.js
2334
2335         * DoYouEvenBench/resources/benchmark-runner.js:
2336         (BenchmarkRunner.prototype._appendFrame): Fix the bug where marginLeft and marginTop
2337         weren't correctly parsed. We were treating top as left and bottom as top somehow.
2338         (BenchmarkRunner.prototype._runTestAndRecordResults): Fixed a typo.
2339
2340 2014-02-13  Zoltan Horvath  <zoltan@webkit.org>
2341
2342         [CSS Shapes] Add performance test for complex polygon with shape-margin
2343         https://bugs.webkit.org/show_bug.cgi?id=128769
2344
2345         Reviewed by Ryosuke Niwa.
2346
2347         This patch modifies the logic of createShapeOutsideTest to accept multiple
2348         CSS properties from the test. The patch adds performance test for complex
2349         polygon shape (self intersecting at multiple places) case, moreover we
2350         apply shape-margin on the polygon also.
2351
2352         * Layout/Shapes/ShapeOutsideContentBox.html:
2353         * Layout/Shapes/ShapeOutsideInset.html:
2354         * Layout/Shapes/ShapeOutsidePolygonWithMargin.html: Added.
2355         * Layout/Shapes/ShapeOutsideRaster.html:
2356         * Layout/Shapes/ShapeOutsideSimplePolygon.html:
2357         * Layout/Shapes/resources/shapes.js:
2358
2359 2014-02-13  Zoltan Horvath  <zoltan@webkit.org>
2360
2361         [CSS Shapes] Add performance test for raster shape
2362         https://bugs.webkit.org/show_bug.cgi?id=128746
2363
2364         Reviewed by Ryosuke Niwa.
2365
2366         This patch adds performance testing for image valued shape-outside.
2367         The test is skipped by default for now.
2368
2369         * Layout/Shapes/ShapeOutsideRaster.html: Added.
2370         * Layout/Shapes/resources/shape.gif: Added.
2371
2372 2014-02-10  Zoltan Horvath  <zoltan@webkit.org>
2373
2374         [CSS Shapes] Add initial performance tests for polygon shape 
2375         https://bugs.webkit.org/show_bug.cgi?id=128554
2376
2377         Reviewed by Ryosuke Niwa.
2378
2379         This patch adds performance testing for simple polygon shape-outside.
2380         The Shapes performance tests directory is skipped by default.
2381
2382         * Layout/Shapes/ShapeOutsideSimplePolygon.html: Added.
2383
2384 2014-02-07  Zoltan Horvath  <zoltan@webkit.org>
2385
2386         [CSS Shapes] Add initial performance tests for inset shape
2387         https://bugs.webkit.org/show_bug.cgi?id=128378
2388
2389         Reviewed by Ryosuke Niwa.
2390
2391         * Layout/Shapes/ShapeOutsideContentBox.html: Move js to shapes.js.
2392         * Layout/Shapes/ShapeOutsideInset.html: Added.
2393         * Layout/Shapes/resources/shapes.js: Added.
2394         (.):
2395
2396 2014-02-04  Ryosuke Niwa  <rniwa@webkit.org>
2397
2398         Undelete the "build" directory erroneously removed in r163427.
2399
2400         * DoYouEvenBench/resources/todomvc/labs/architecture-examples/react/bower_components/director/build:
2401
2402 2014-02-04  Ryosuke Niwa  <rniwa@webkit.org>
2403
2404         Revert the change made in r162216 as it broke the benchmark on shipping Safari.
2405
2406         * DoYouEvenBench/resources/benchmark-runner.js:
2407
2408 2014-02-04  Ryosuke Niwa  <rniwa@webkit.org>
2409
2410         DoYouEvenBench: Update Ember.js test case
2411         https://bugs.webkit.org/show_bug.cgi?id=128227
2412
2413         Reviewed by Benjamin Poulain.
2414
2415         Updated the Ember.js TodoMVC implementation.
2416
2417         * DoYouEvenBench/resources/tests.js:
2418         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower.json:
2419         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember-data/ember-data.js: Added.
2420         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js:
2421         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js:
2422         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js:
2423         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js:
2424         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css:
2425         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js:
2426         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/index.html:
2427         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/app.js:
2428         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js:
2429         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js:
2430         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/helpers/pluralize.js: Added.
2431         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Removed.
2432         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/models/store.js: Removed.
2433         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/models/todo.js:
2434         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/router.js:
2435         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js:
2436         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/views/todos_view.js: Added.
2437         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/readme.md:
2438         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/test.html:
2439
2440 2014-02-04  Zoltan Horvath  <zoltan@webkit.org>
2441
2442         [CSS Shapes] Add initial performance test for shape-outside: content-box
2443         https://bugs.webkit.org/show_bug.cgi?id=128190
2444
2445         Reviewed by Ryosuke Niwa.
2446
2447         I've introduced Shapes subdirectory in Layout, every CSS Shapes related performance tests should
2448         go there in the future. The initial performance tests uses 'shape-outside: content-box' in order
2449         to tests the code paths of the Shapes implementation. I also introduced shapes.js, which allows us
2450         to easily add new, simple performance tests for shape-outside.
2451
2452         The entire progress is tracked under #128188 meta bug.
2453
2454         * Layout/Shapes/ShapeOutsideContentBox.html: Added.
2455         * Layout/Shapes/resources/shapes.css: Added.
2456         * Layout/Shapes/resources/shapes.js: Added.
2457         * Skipped: We skip running the tests by default for now.
2458
2459 2014-01-17  Manuel Rego Casasnovas  <rego@igalia.com>
2460
2461         [CSS Regions] Minor fixes in regions performance tests
2462         https://bugs.webkit.org/show_bug.cgi?id=127041
2463
2464         Reviewed by Ryosuke Niwa.
2465
2466         Fix minor issues in CSS Regions performance tests.
2467
2468         * Layout/RegionsAuto.html: Change type to lower case.
2469         * Layout/RegionsAutoMaxHeight.html: Ditto.
2470         * Layout/RegionsFixed.html: Ditto.
2471         * Layout/RegionsFixedShort.html: Ditto.
2472         * Layout/RegionsSelection.html: Ditto. Move test methods from regions.js.
2473         * Layout/resources/regions.js: Remove moved methods.
2474
2475 2014-01-17  Ryosuke Niwa  <rniwa@webkit.org>
2476
2477         Host DoYouEvenBench on webkit.org
2478         https://bugs.webkit.org/show_bug.cgi?id=127185
2479
2480         Reviewed by Benjamin Poulain.
2481
2482         Compute the resources directory relative to the benchmark-runner's location
2483         so that we can load tests even if the runner HTML was located elsewhere.
2484
2485         * DoYouEvenBench/Full.html:
2486         * DoYouEvenBench/resources/benchmark-runner.js:
2487         (BenchmarkState._containingDirectory):
2488
2489 2014-01-17  Ryosuke Niwa  <rniwa@webkit.org>
2490
2491         DoYouEvenBench: Move flightjs-example-app and todomvc into resources
2492         https://bugs.webkit.org/show_bug.cgi?id=127183
2493
2494         Rubber-stamped by Anders Carlsson.
2495
2496         * DoYouEvenBench/InteractiveRunner.html: Copied from PerformanceTests/DoYouEvenBench/benchmark.html.
2497         * DoYouEvenBench/benchmark.html: Removed.
2498         * DoYouEvenBench/flightjs-example-app: Removed.
2499         * DoYouEvenBench/flightjs-example-app/LICENSE.md: Removed.
2500         * DoYouEvenBench/flightjs-example-app/README.md: Removed.
2501         * DoYouEvenBench/flightjs-example-app/app: Removed.
2502         * DoYouEvenBench/flightjs-example-app/app/boot: Removed.
2503         * DoYouEvenBench/flightjs-example-app/app/boot/page.js: Removed.
2504         * DoYouEvenBench/flightjs-example-app/app/component_data: Removed.
2505         * DoYouEvenBench/flightjs-example-app/app/component_data/compose_box.js: Removed.
2506         * DoYouEvenBench/flightjs-example-app/app/component_data/mail_items.js: Removed.
2507         * DoYouEvenBench/flightjs-example-app/app/component_data/move_to.js: Removed.
2508         * DoYouEvenBench/flightjs-example-app/app/component_ui: Removed.
2509         * DoYouEvenBench/flightjs-example-app/app/component_ui/compose_box.js: Removed.
2510         * DoYouEvenBench/flightjs-example-app/app/component_ui/folders.js: Removed.
2511         * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_controls.js: Removed.
2512         * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_items.js: Removed.
2513         * DoYouEvenBench/flightjs-example-app/app/component_ui/move_to_selector.js: Removed.
2514         * DoYouEvenBench/flightjs-example-app/app/component_ui/with_select.js: Removed.
2515         * DoYouEvenBench/flightjs-example-app/app/css: Removed.
2516         * DoYouEvenBench/flightjs-example-app/app/css/custom.css: Removed.
2517         * DoYouEvenBench/flightjs-example-app/app/data.js: Removed.
2518         * DoYouEvenBench/flightjs-example-app/app/templates.js: Removed.
2519         * DoYouEvenBench/flightjs-example-app/components: Removed.
2520         * DoYouEvenBench/flightjs-example-app/components/bootstrap: Removed.
2521         * DoYouEvenBench/flightjs-example-app/components/bootstrap/css: Removed.
2522         * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.css: Removed.
2523         * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.min.css: Removed.
2524         * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.css: Removed.
2525         * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.min.css: Removed.
2526         * DoYouEvenBench/flightjs-example-app/components/bootstrap/img: Removed.
2527         * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings-white.png: Removed.
2528         * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings.png: Removed.
2529         * DoYouEvenBench/flightjs-example-app/components/bootstrap/js: Removed.
2530         * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.js: Removed.
2531         * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.min.js: Removed.
2532         * DoYouEvenBench/flightjs-example-app/components/es5-shim: Removed.
2533         * DoYouEvenBench/flightjs-example-app/components/es5-shim/.gitignore: Removed.
2534         * DoYouEvenBench/flightjs-example-app/components/es5-shim/CHANGES: Removed.
2535         * DoYouEvenBench/flightjs-example-app/components/es5-shim/CONTRIBUTORS.md: Removed.
2536         * DoYouEvenBench/flightjs-example-app/components/es5-shim/LICENSE: Removed.
2537         * DoYouEvenBench/flightjs-example-app/components/es5-shim/README.md: Removed.
2538         * DoYouEvenBench/flightjs-example-app/components/es5-shim/component.json: Removed.
2539         * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.js: Removed.
2540         * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.min.js: Removed.
2541         * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.js: Removed.
2542         * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.min.js: Removed.
2543         * DoYouEvenBench/flightjs-example-app/components/es5-shim/package.json: Removed.
2544         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests: Removed.
2545         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers: Removed.
2546         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js: Removed.
2547         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-matchers.js: Removed.
2548         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h.js: Removed.
2549         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/index.html: Removed.
2550         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib: Removed.
2551         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine-html.js: Removed.
2552         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.css: Removed.
2553         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.js: Removed.
2554         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine_favicon.png: Removed.
2555         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/json2.js: Removed.
2556         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec: Removed.
2557         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-array.js: Removed.
2558         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-date.js: Removed.
2559         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-function.js: Removed.
2560         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-object.js: Removed.
2561         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-string.js: Removed.
2562         * DoYouEvenBench/flightjs-example-app/components/flight: Removed.
2563         * DoYouEvenBench/flightjs-example-app/components/flight/.travis.yml: Removed.
2564         * DoYouEvenBench/flightjs-example-app/components/flight/lib: Removed.
2565         * DoYouEvenBench/flightjs-example-app/components/flight/lib/advice.js: Removed.
2566         * DoYouEvenBench/flightjs-example-app/components/flight/lib/component.js: Removed.
2567         * DoYouEvenBench/flightjs-example-app/components/flight/lib/compose.js: Removed.
2568         * DoYouEvenBench/flightjs-example-app/components/flight/lib/index.js: Removed.
2569         * DoYouEvenBench/flightjs-example-app/components/flight/lib/logger.js: Removed.
2570         * DoYouEvenBench/flightjs-example-app/components/flight/lib/registry.js: Removed.
2571         * DoYouEvenBench/flightjs-example-app/components/flight/lib/utils.js: Removed.
2572         * DoYouEvenBench/flightjs-example-app/components/flight/tools: Removed.
2573         * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug: Removed.
2574         * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug/debug.js: Removed.
2575         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight: Removed.
2576         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/LICENSE.md: Removed.
2577         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/README.md: Removed.
2578         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/bower.json: Removed.
2579         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib: Removed.
2580         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib/jasmine-flight.js: Removed.
2581         * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery: Removed.
2582         * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib: Removed.
2583         * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib/jasmine-jquery.js: Removed.
2584         * DoYouEvenBench/flightjs-example-app/components/jquery: Removed.
2585         * DoYouEvenBench/flightjs-example-app/components/jquery/component.json: Removed.
2586         * DoYouEvenBench/flightjs-example-app/components/jquery/composer.json: Removed.
2587         * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.js: Removed.
2588         * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.min.js: Removed.
2589         * DoYouEvenBench/flightjs-example-app/components/mustache: Removed.
2590         * DoYouEvenBench/flightjs-example-app/components/mustache/mustache.js: Removed.
2591         * DoYouEvenBench/flightjs-example-app/components/requirejs: Removed.
2592         * DoYouEvenBench/flightjs-example-app/components/requirejs/require.js: Removed.
2593         * DoYouEvenBench/flightjs-example-app/index.html: Removed.
2594         * DoYouEvenBench/flightjs-example-app/karma.conf.js: Removed.
2595         * DoYouEvenBench/flightjs-example-app/package.json: Removed.
2596         * DoYouEvenBench/flightjs-example-app/requireMain.js: Removed.
2597         * DoYouEvenBench/resources/benchmark-runner.js:
2598         * DoYouEvenBench/resources/flightjs-example-app: Copied from PerformanceTests/DoYouEvenBench/flightjs-example-app.
2599         * DoYouEvenBench/resources/todomvc: Copied from PerformanceTests/DoYouEvenBench/todomvc.
2600         * DoYouEvenBench/todomvc: Removed.
2601         * DoYouEvenBench/todomvc/architecture-examples: Removed.
2602         * DoYouEvenBench/todomvc/architecture-examples/angularjs: Removed.
2603         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower.json: Removed.
2604         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components: Removed.
2605         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular: Removed.
2606         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks: Removed.
2607         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Removed.
2608         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Removed.
2609         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common: Removed.
2610         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Removed.
2611         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Removed.
2612         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Removed.
2613         * DoYouEvenBench/todomvc/architecture-examples/angularjs/index.html: Removed.
2614         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js: Removed.
2615         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/app.js: Removed.
2616         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers: Removed.
2617         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Removed.
2618         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives: Removed.
2619         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Removed.
2620         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Removed.
2621         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Removed.
2622         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services: Removed.
2623         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Removed.
2624         * DoYouEvenBench/todomvc/architecture-examples/angularjs/readme.md: Removed.
2625         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test: Removed.
2626         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config: Removed.
2627         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Removed.
2628         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/package.json: Removed.
2629         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/readme.md: Removed.
2630         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit: Removed.
2631         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Removed.
2632         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Removed.
2633         * DoYouEvenBench/todomvc/architecture-examples/backbone: Removed.
2634         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower.json: Removed.
2635         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components: Removed.
2636         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone: Removed.
2637         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage: Removed.
2638         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Removed.
2639         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js: Removed.
2640         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery: Removed.
2641         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Removed.
2642         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common: Removed.
2643         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Removed.
2644         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Removed.
2645         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Removed.
2646         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore: Removed.
2647         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Removed.
2648         * DoYouEvenBench/todomvc/architecture-examples/backbone/index.html: Removed.
2649         * DoYouEvenBench/todomvc/architecture-examples/backbone/js: Removed.
2650         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/app.js: Removed.
2651         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections: Removed.
2652         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections/todos.js: Removed.
2653         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models: Removed.
2654         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models/todo.js: Removed.
2655         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers: Removed.
2656         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers/router.js: Removed.
2657         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views: Removed.
2658         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/app-view.js: Removed.
2659         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/todo-view.js: Removed.
2660         * DoYouEvenBench/todomvc/architecture-examples/backbone/readme.md: Removed.
2661         * DoYouEvenBench/todomvc/architecture-examples/emberjs: Removed.
2662         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower.json: Removed.
2663         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components: Removed.
2664         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember: Removed.
2665         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter: Removed.
2666         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Removed.
2667         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Removed.
2668         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars: Removed.
2669         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Removed.
2670         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery: Removed.
2671         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Removed.
2672         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common: Removed.
2673         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css: Removed.
2674         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Removed.
2675         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Removed.
2676         * DoYouEvenBench/todomvc/architecture-examples/emberjs/index.html: Removed.
2677         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js: Removed.
2678         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/app.js: Removed.
2679         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers: Removed.
2680         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Removed.
2681         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Removed.
2682         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs: Removed.
2683         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Removed.
2684         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models: Removed.
2685         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/store.js: Removed.
2686         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/todo.js: Removed.
2687         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/router.js: Removed.
2688         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views: Removed.
2689         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Removed.
2690         * DoYouEvenBench/todomvc/architecture-examples/emberjs/readme.md: Removed.
2691         * DoYouEvenBench/todomvc/architecture-examples/emberjs/test.html: Removed.
2692         * DoYouEvenBench/todomvc/architecture-examples/jquery: Removed.
2693         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower.json: Removed.
2694         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components: Removed.
2695         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars: Removed.
2696         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Removed.
2697         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery: Removed.
2698         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Removed.
2699         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common: Removed.
2700         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Removed.
2701         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Removed.
2702         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Removed.
2703         * DoYouEvenBench/todomvc/architecture-examples/jquery/css: Removed.
2704         * DoYouEvenBench/todomvc/architecture-examples/jquery/css/app.css: Removed.
2705         * DoYouEvenBench/todomvc/architecture-examples/jquery/index.html: Removed.
2706         * DoYouEvenBench/todomvc/architecture-examples/jquery/js: Removed.
2707         * DoYouEvenBench/todomvc/architecture-examples/jquery/js/app.js: Removed.
2708         * DoYouEvenBench/todomvc/architecture-examples/jquery/readme.md: Removed.
2709         * DoYouEvenBench/todomvc/labs: Removed.
2710         * DoYouEvenBench/todomvc/labs/architecture-examples: Removed.
2711         * DoYouEvenBench/todomvc/labs/architecture-examples/react: Removed.
2712         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower.json: Removed.
2713         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components: Removed.
2714         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director: Removed.
2715         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE: Removed.
2716         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/README.md: Removed.
2717         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build: Removed.
2718         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.js: Removed.
2719         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.min.js: Removed.
2720         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/ender.js: Removed.
2721         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react: Removed.
2722         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js: Removed.
2723         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/bower.json: Removed.
2724         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.js: Removed.
2725         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js: Removed.
2726         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common: Removed.
2727         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css: Removed.
2728         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js: Removed.
2729         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/bg.png: Removed.
2730         * DoYouEvenBench/todomvc/labs/architecture-examples/react/index.html: Removed.
2731         * DoYouEvenBench/todomvc/labs/architecture-examples/react/js: Removed.
2732         * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/app.jsx: Removed.
2733         * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/footer.jsx: Removed.
2734         * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/todoItem.jsx: Removed.
2735         * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/utils.jsx: Removed.
2736         * DoYouEvenBench/todomvc/labs/architecture-examples/react/readme.md: Removed.
2737         * DoYouEvenBench/todomvc/license.md: Removed.
2738         * DoYouEvenBench/todomvc/readme.md: Removed.
2739         * DoYouEvenBench/todomvc/vanilla-examples: Removed.
2740         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs: Removed.
2741         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower.json: Removed.
2742         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components: Removed.
2743         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common: Removed.
2744         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Removed.
2745         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Removed.
2746         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Removed.
2747         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/index.html: Removed.
2748         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js: Removed.
2749         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/app.js: Removed.
2750         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/controller.js: Removed.
2751         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/helpers.js: Removed.
2752         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/model.js: Removed.
2753         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/store.js: Removed.
2754         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/view.js: Removed.
2755         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/readme.md: Removed.
2756         * Skipped:
2757
2758 2014-01-17  Ryosuke Niwa  <rniwa@webkit.org>
2759
2760         Build fix. Skip HTML files that are not tests.
2761
2762         * Skipped:
2763
2764 2014-01-16  Ryosuke Niwa  <rniwa@webkit.org>
2765
2766         Automate DoYouEvenBench
2767         https://bugs.webkit.org/show_bug.cgi?id=124497
2768
2769         Reviewed by Geoffrey Garen.
2770
2771         Enable DoYouEvenBench/Full.html on perf bots by default.
2772
2773         Put a space between the time and ms, and fixed a typo in runner.js so that the aggregator name will be reported.
2774
2775         * DoYouEvenBench/Full.html:
2776         * Skipped:
2777         * resources/runner.js:
2778
2779 2014-01-15  Manuel Rego Casasnovas  <rego@igalia.com>
2780
2781         [CSS Regions] Add performance tests for selection with mixed content
2782         https://bugs.webkit.org/show_bug.cgi?id=126427
2783
2784         Reviewed by Ryosuke Niwa.
2785
2786         Add new performance tests for selection in CSS Regions mixing regular
2787         content with regions. 2 new tests are added, one checking select all
2788         command and another simulating a user selection passing through all the
2789         paragraphs (similar to Layout/RegionsSelection.html).
2790
2791         Test are skipped for now while implementation of selection in CSS
2792         Regions is still evolving.
2793
2794         * Layout/RegionsExtendingSelectionMixedContent.html: Added.
2795         * Layout/RegionsSelectAllMixedContent.html: Added.
2796         * Layout/resources/regions.css:
2797         (.regular):
2798         * Layout/resources/regions.js:
2799         * Skipped:
2800
2801 2014-01-14  Ryosuke Niwa  <rniwa@webkit.org>
2802
2803         Make DoYouEvenBench runnable by run-perf-tests
2804         https://bugs.webkit.org/show_bug.cgi?id=127030
2805
2806         Reviewed by Andreas Kling.
2807
2808         Added Full.html that runs 5 iterations of DoYouEvenBench. This is the canonical DoYouEvenBench,
2809         which is also runnable by run-perf-tests.
2810
2811         * DoYouEvenBench/Full.html: Added.
2812
2813         * DoYouEvenBench/benchmark.html:
2814         (startTest): Updated the code to account for the fact old measuredValues is pushed down to tests
2815         property and we now have total property so that we don't have to manually compute the total.
2816
2817         * DoYouEvenBench/resources/benchmark-report.js: Added. When we're inside a DRT/WTR, use
2818         PerfTestRunner to output that can be parsed by run-perf-tests. Do the same when the query part
2819         or the fragment part of the current URL is "webkit" for debugging purposes.
2820
2821         * DoYouEvenBench/resources/benchmark-runner.js:
2822         (BenchmarkRunner):
2823         (BenchmarkRunner.prototype._appendFrame): Position the frame at (0, 0) inside DRT and WTR since
2824         we have exactly 800px by 600px inside those two test runners. Also always insert the iframe as
2825         the first child of body to avoid inserting it after the pre inserted by the test runner.
2826         (BenchmarkRunner.prototype.step): Initializes _measuredValues.
2827         (BenchmarkRunner.prototype.runAllSteps): Merged callNextStep in benchmark.html.
2828         (BenchmarkRunner.prototype.runMultipleIterations): Added.
2829         (BenchmarkRunner.prototype._runTestAndRecordResults): Compute the grand total among suites.
2830         Also push down the sync and async time into tests property for consistency.
2831         (BenchmarkRunner.prototype._finalize):
2832
2833         * Dromaeo/resources/dromaeorunner.js:
2834         (DRT.testObject): Renamed dromaeoIterationCount to customIterationCount as this option is also
2835         used by DoYouEvenBench.
2836
2837         * resources/runner.js: Ditto.
2838         (.finish): Spit out the aggregator name.
2839
2840 2014-01-07  Ryosuke Niwa  <rniwa@webkit.org>
2841
2842         DoYouEvenBench: Turn BenchmarkRunner into a real class
2843         https://bugs.webkit.org/show_bug.cgi?id=126613
2844
2845         Reviewed by Stephanie Lewis.
2846
2847         Made BenchmarkRunner an instantiatable class. Made tests.js simply create an array of suite objects
2848         instead of calling BenchmarkRunner.Suite now that we can have mulitple instances of BenchmarkRunner.
2849
2850         * DoYouEvenBench/benchmark.html:
2851         (formatTestName): Moved and renamed from BenchmarkRunner._testName.
2852         (createUIForSuites): Extracted from a giant blob of code.
2853         (startTest): Ditto.
2854         * DoYouEvenBench/resources/benchmark-runner.js:
2855         (BenchmarkRunner): Added.
2856         (BenchmarkRunner.prototype.waitForElement):
2857         (BenchmarkRunner.prototype._removeFrame):
2858         (BenchmarkRunner.prototype._appendFrame):
2859         (BenchmarkRunner.prototype._waitAndWarmUp):
2860         (BenchmarkRunner.prototype._runTest):
2861         (BenchmarkState.prototype.prepareCurrentSuite):
2862         (BenchmarkRunner.prototype.step):
2863         (BenchmarkRunner.prototype._runTestAndRecordResults):
2864         (BenchmarkRunner.prototype._finalize):
2865         * DoYouEvenBench/resources/tests.js:
2866
2867 2014-01-07  Ryosuke Niwa  <rniwa@webkit.org>
2868
2869         DoYouEvenBench: Extract tests and runner code from benchmark.js/html
2870         https://bugs.webkit.org/show_bug.cgi?id=126596
2871
2872         Reviewed by Stephanie Lewis.
2873         
2874         Extracted benchmark-runner.js and tests.js out of benchmark.js and benchmark.html.
2875
2876         Added a "client" interface to BenchmarkRunner so that benchmark.html could register necessary hooks to
2877         update its UI. Also made BenchmarkRunner store a tree of results so that the serialization of test names
2878         could be isolated from BenchmarkRunner itself in the future.
2879
2880         * DoYouEvenBench/benchmark.html:
2881         Moved the code to instantiate and update UI here from benchmark.js. The test code was moved out of this
2882         file into resources/tests.js.
2883
2884         * DoYouEvenBench/resources/benchmark-runner.js: Renamed from PerformanceTests/DoYouEvenBench/benchmark.js.
2885         (SimplePromise): Moved from benchmark.js
2886         (SimplePromise.prototype.then): Ditto.
2887         (SimplePromise.prototype.resolve): Ditto.
2888         (BenchmarkTestStep): Added. Wraps each test step.
2889         (BenchmarkRunner.suite): Moved from benchmark.js.
2890         (BenchmarkRunner.setClient): Added.
2891         (BenchmarkRunner.waitForElement): Moved.
2892         (BenchmarkRunner._removeFrame): Ditto.
2893         (BenchmarkRunner._appendFrame): Ditto. Set the width and the height of the iframe as they're more than
2894         presentational as they affect performance.
2895         (BenchmarkRunner._waitAndWarmUp): Ditto.
2896         (BenchmarkRunner._runTest): Ditto.
2897         (BenchmarkRunner._testName): Ditto.
2898         (BenchmarkState): Ditto.
2899         (BenchmarkState.prototype.currentSuite): Ditto.
2900         (BenchmarkState.prototype.currentTest): Ditto.
2901         (BenchmarkState.prototype.next): Ditto.
2902         (BenchmarkState.prototype.isFirstTest): Ditto.
2903         (BenchmarkState.prototype.prepareCurrentSuite): Ditto.
2904         (BenchmarkRunner.step): Ditto.
2905         (BenchmarkRunner._runTestAndRecordResults): Ditto. Note the code to update the UI has been move to
2906         benchmark.html. Also moved the code to accumulate the totals here from _finalize.
2907         (BenchmarkRunner._finalize): Moved. 
2908
2909         * DoYouEvenBench/resources/tests.js: Copied from PerformanceTests/DoYouEvenBench/benchmark.html.
2910         Uses BenchmarkTestStep instead of an array for each test step.
2911
2912 2014-01-02  Myles C. Maxfield  <mmaxfield@apple.com>
2913
2914         Allow ImageBuffer to re-use IOSurfaces
2915         https://bugs.webkit.org/show_bug.cgi?id=125477
2916
2917         Reviewed by Geoff Garen. 
2918
2919         This test times creating a variety of different sizes of canvases 
2920         once some have already been created. The second creation of the 
2921         canvases should re-use the existing IOSurfaces. 
2922         
2923         * Canvas/reuse.html: Added.
2924
2925 2013-12-23  Commit Queue  <commit-queue@webkit.org>
2926
2927         Unreviewed, rolling out r160945.
2928         http://trac.webkit.org/changeset/160945
2929         https://bugs.webkit.org/show_bug.cgi?id=126164
2930
2931         Seems to have broken multiple canvas tests (Requested by ap on
2932         #webkit).
2933
2934         * Canvas/reuse.html: Removed.
2935
2936 2013-12-09  Myles C. Maxfield  <mmaxfield@apple.com>
2937
2938         Allow ImageBuffer to re-use IOSurfaces
2939         https://bugs.webkit.org/show_bug.cgi?id=125477
2940
2941         Reviewed by Geoff Garen.
2942
2943         This test times creating a variety of different sizes of canvases
2944         once some have already been created. The second creation of the
2945         canvases should re-use the existing IOSurfaces.
2946
2947         * Canvas/reuse.html: Added.
2948
2949 2013-12-15  Ryosuke Niwa  <rniwa@webkit.org>
2950
2951         REGRESSION: 2x regression on Dromaeo DOM query tests
2952         https://bugs.webkit.org/show_bug.cgi?id=125377
2953
2954         Reviewed by Filip Pizlo.
2955
2956         Added a micro-benchmark for updating a named property on document.
2957
2958         * Bindings/update-name-getter.html: Added.
2959         * Skipped:
2960
2961 2013-12-03  Manuel Rego Casasnovas  <rego@igalia.com>
2962
2963         [CSS Regions] Fix Layout/RegionsSelection.html in Mac platform
2964         https://bugs.webkit.org/show_bug.cgi?id=124963
2965
2966         Reviewed by Ryosuke Niwa.
2967
2968         Layout/RegionsSelection.html introduced in r159488 was not working in
2969         Mac platform because of it was trying to use mouse events out of the
2970         window dimensions. Use collapse() and extend() methods from Selection
2971         object to solve the issue.
2972
2973         * Layout/resources/regions.js: Use collapse() and extend() instead of
2974         mouse events.
2975
2976 2013-11-27  Ryosuke Niwa  <rniwa@webkit.org>
2977
2978         Build fix after r159805.
2979
2980         * resources/runner.js:
2981
2982 2013-11-26  Sergio Villar Senin  <svillar@igalia.com>
2983
2984         [CSS Grid Layout] Support grid-definition-{rows|columns} repeat() syntax
2985         https://bugs.webkit.org/show_bug.cgi?id=103312
2986
2987         Reviewed by Andreas Kling.
2988
2989         Use the repeat() syntax to build the huge grids used by the
2990         performance tests.
2991
2992         * Layout/auto-grid-lots-of-data.html:
2993         * Layout/fixed-grid-lots-of-data.html:
2994
2995 2013-11-26  Ryosuke Niwa  <rniwa@webkit.org>
2996
2997         Record subtest values in Dromaeo tests
2998         https://bugs.webkit.org/show_bug.cgi?id=124498
2999
3000         Reviewed by Andreas Kling.
3001
3002         Made Dromaeo's test runner report values in DRT.progress via newly added PerfTestRunner.reportValues.
3003
3004         * Dromaeo/resources/dromaeorunner.js:
3005         (.): Moved the definition out of DRT.setup.
3006         (DRT.setup): Ditto.
3007         (DRT.testObject): Extracted from DRT.setup. Set the subtest name and continueTesting.
3008         continueTesting is set true for subtests; i.e. when name is specified.
3009         (DRT.progress): Call PerfTestRunner.reportValues to report subtest results.
3010         (DRT.teardown): Call PerfTestRunner.reportValues instead of measureValueAsync.
3011
3012         * resources/runner.js: Made various changes for newly added PerfTestRunner.reportValues.
3013         (.): Moved the initialization of completedIterations, results, jsHeapResults, and mallocHeapResults into
3014         start since they need to be initialized before running each subtest. Initialize logLines here since we
3015         need to use the same logger for all subtests.
3016         (.start): Initialize the variables mentioned above here. Also respect doNotLogStart used by reportValues.
3017         (ignoreWarmUpAndLog): Added doNotLogProgress. Used by reportValues since it reports all values at once.
3018         (finish): Compute the metric name such as FrameFrame and Runs from unit. Also don't log or notify done
3019         when continueTesting is set on the test object.
3020         (PerfTestRunner.reportValues): Added. Reports all values for the main/sub test.
3021
3022 2013-11-26  Ryosuke Niwa  <rniwa@webkit.org>
3023
3024         Remove replay performance tests as it's not actively maintained
3025         https://bugs.webkit.org/show_bug.cgi?id=124764
3026
3027         Reviewed by Andreas Kling.
3028
3029         Removed the replay performance tests. We can add them back when time comes.
3030
3031         * Replay/Chinese/chinaz.com.replay: Removed.
3032         * Replay/Chinese/www.163.com.replay: Removed.
3033         * Replay/Chinese/www.alipay.com.replay: Removed.
3034         * Replay/Chinese/www.baidu.com.replay: Removed.
3035         * Replay/Chinese/www.csdn.net.replay: Removed.
3036         * Replay/Chinese/www.douban.com.replay: Removed.
3037         * Replay/Chinese/www.hao123.com.replay: Removed.
3038         * Replay/Chinese/www.xinhuanet.com.replay: Removed.
3039         * Replay/Chinese/www.xunlei.com.replay: Removed.
3040         * Replay/Chinese/www.youku.com.replay: Removed.
3041         * Replay/English/beatonna.livejournal.com.replay: Removed.
3042         * Replay/English/cakewrecks.blogspot.com.replay: Removed.
3043         * Replay/English/chemistry.about.com.replay: Removed.
3044         * Replay/English/digg.com.replay: Removed.
3045         * Replay/English/en.wikipedia.org-rorschach_test.replay: Removed.
3046         * Replay/English/icanhascheezburger.com.replay: Removed.
3047         * Replay/English/imgur.com-gallery.replay: Removed.
3048         * Replay/English/online.wsj.com.replay: Removed.
3049         * Replay/English/stockoverflow.com-best-comment.replay: Removed.
3050         * Replay/English/www.alibaba.com.replay: Removed.
3051         * Replay/English/www.amazon.com-kindle.replay: Removed.
3052         * Replay/English/www.apple.com.replay: Removed.
3053         * Replay/English/www.cnet.com.replay: Removed.
3054         * Replay/English/www.dailymotion.com.replay: Removed.
3055         * Replay/English/www.ehow.com-prevent-fire.replay: Removed.
3056         * Replay/English/www.filestube.com-amy-adams.replay: Removed.
3057         * Replay/English/www.foxnews.replay: Removed.
3058         * Replay/English/www.huffingtonpost.com.replay: Removed.
3059         * Replay/English/www.imdb.com-twilight.replay: Removed.
3060         * Replay/English/www.mozilla.com-all-order.replay: Removed.
3061         * Replay/English/www.php.net.replay: Removed.
3062         * Replay/English/www.reddit.com.replay: Removed.
3063         * Replay/English/www.telegraph.co.uk.replay: Removed.
3064         * Replay/English/www.w3.org-htmlcss.replay: Removed.
3065         * Replay/English/www.w3schools.com-html.replay: Removed.
3066         * Replay/English/www.youtube.com-music.replay: Removed.
3067         * Replay/French/www.orange.fr.replay: Removed.
3068         * Replay/Italian/www.repubblica.it.replay: Removed.
3069         * Replay/Japanese/2ch.net-newsplus.replay: Removed.
3070         * Replay/Japanese/entameblog.seesaa.net.replay: Removed.
3071         * Replay/Japanese/ja.wikipedia.org.replay: Removed.
3072         * Replay/Japanese/www.hatena.ne.jp.replay: Removed.
3073         * Replay/Japanese/www.livedoor.com.replay: Removed.
3074         * Replay/Japanese/www.nicovideo.jp.replay: Removed.
3075         * Replay/Japanese/www.rakuten.co.jp.replay: Removed.
3076         * Replay/Japanese/www.yahoo.co.jp.replay: Removed.
3077         * Replay/Korean/www.naver.com.replay: Removed.
3078         * Replay/Persian/blogfa.com.replay: Removed.
3079         * Replay/Polish/www.wp.pl.replay: Removed.
3080         * Replay/Portuguese/www.uol.com.br.replay: Removed.
3081         * Replay/Russian/lenta.ru.replay: Removed.
3082         * Replay/Russian/vkontakte.ru-help.replay: Removed.
3083         * Replay/Russian/www.ixbt.com.replay: Removed.
3084         * Replay/Russian/www.kp.ru.replay: Removed.
3085         * Replay/Russian/www.liveinternet.ru.replay: Removed.
3086         * Replay/Russian/www.pravda.ru.replay: Removed.
3087         * Replay/Russian/www.rambler.ru.replay: Removed.
3088         * Replay/Russian/www.ucoz.ru.replay: Removed.
3089         * Replay/Russian/www.yandex.ru.replay: Removed.
3090         * Replay/Spanish/www.taringa.net.replay: Removed.
3091         * Replay/Swedish/www.flashback.se.replay: Removed.
3092         * Replay/Swedish/www.tradera.com.replay: Removed.
3093         * Replay/www.google.com.replay: Removed.
3094         * Replay/www.techcrunch.com.replay: Removed.
3095         * Replay/www.youtube.com.replay: Removed.
3096
3097 2013-11-22  Ryosuke Niwa  <rniwa@webkit.org>
3098
3099         Layout Test editing/deleting/password-delete-performance.html is failing
3100         https://bugs.webkit.org/show_bug.cgi?id=124781
3101
3102         Reviewed by Alexey Proskuryakov.
3103
3104         Add a new performance test to replace editing/deleting/password-delete-performance.html.
3105         We skip this test by default since it's a micro benchmark.
3106
3107         * Interactive/DeletingInPasswordField.html: Added.
3108         * Skipped:
3109
3110 2013-11-18  Sergio Villar Senin  <svillar@igalia.com>
3111
3112         [CSS Grid Layout] Improve content-sized track layout
3113         https://bugs.webkit.org/show_bug.cgi?id=124408
3114
3115         Reviewed by Dean Jackson.
3116
3117         From Blink r156122 by <jchaffraix@chromium.org>
3118
3119         New test to check the performance of layouting grids with content sized tracks.
3120
3121         * Layout/auto-grid-lots-of-data.html: Added.
3122
3123 2013-11-08  Sergio Villar Senin  <svillar@igalia.com>
3124
3125         [CSS Grid Layout] Run the content-sized tracks sizing algorithm only when required
3126         https://bugs.webkit.org/show_bug.cgi?id=124039
3127
3128         Reviewed by Dean Jackson.
3129
3130         From Blink r156028 and r156168 by <jchaffraix@chromium.org>.
3131
3132         New performance tests for layouts in grids with fixed size tracks.
3133
3134         * Layout/fixed-grid-lots-of-data.html: Added.
3135
3136 2013-11-19  Manuel Rego Casasnovas  <rego@igalia.com>
3137
3138         [CSS Regions] Add performance test for selection
3139         https://bugs.webkit.org/show_bug.cgi?id=119230
3140
3141         Reviewed by Ryosuke Niwa.
3142
3143         Add new performance test for selection in CSS Regions. It checks a
3144         selection from the first region to the last one, passing through all the
3145         regions.
3146
3147         Test is skipped for now while implementation of selection in CSS Regions
3148         is still evolving.
3149
3150         * Layout/RegionsSelection.html: Added.
3151         * Layout/resources/regions.js:
3152         (.):
3153         * Skipped:
3154
3155 2013-11-18  Ryosuke Niwa  <rniwa@webkit.org>
3156
3157         Simplify and reformat the output of performance tests inside test runners
3158         https://bugs.webkit.org/show_bug.cgi?id=124496
3159
3160         Reviewed by Antti Koivisto.
3161
3162         As a preparation to support subtests for Dromaeo and DoYouEvenBench, simplify the output performance tests generate.
3163         Also modernize the output to better support "metric" concept we introduced a while ago.
3164
3165         New output on Dromaeo/dom-attr looks like this:
3166         -----------------------------------------------
3167         Running 5 times
3168         getAttribute -> [1105, 1108, 1134, 1137, 1154]
3169         element.property -> [1634, 1655, 1685, 1696, 1723]
3170         setAttribute -> [646.3536463536464, 651, 651, 656.3436563436563, 658]
3171         element.property = value -> [934, 949, 963, 964, 974]
3172         element.expando = value -> [419, 419.5804195804196, 421.57842157842157, 425.57442557442556, 429]
3173         element.expando -> [501, 517, 519.4805194805194, 521.4785214785214, 525]
3174
3175             1: 117.40644785571585 runs/s
3176             2: 118.84720469666297 runs/s
3177             3: 119.80547640905021 runs/s
3178             4: 120.51886194758805 runs/s
3179             5: 121.51924380569295 runs/s
3180
3181         :Time -> [117.40644785571585, 118.84720469666297, 119.80547640905021, 120.51886194758805, 121.51924380569295] runs/s
3182             mean: 119.619446942942 runs/s
3183             median: 119.80547640905021 runs/s
3184             stdev: 1.5769040458730506 runs/s
3185             min: 117.40644785571585 runs/s
3186             max: 121.51924380569295 runs/s
3187         -----------------------------------------------
3188
3189         * Dromaeo/resources/dromaeorunner.js:
3190         (DRT.progress): Use the new format for subtest reports.
3191         * resources/runner.js:
3192         (.): Declare verboseLogging, which is set to true outside of test runners.
3193         (PerfTestRunner.logInfo): Use verboseLogging instead of directly checking window.testRunner.
3194         (PerfTestRunner.logDetail): Added. Logs informative text with a label such as "mean: 123 s" with 4-space indentation.
3195         (PerfTestRunner.logStatistics): Use logDetail.
3196         (.start): Initialize verboseLogging. Also log "Running 20 times" as an informative log using logDetail.
3197         (.ignoreWarmUpAndLog): Use logDetail for showing the progress. These logs were useless inside test runners anyway
3198         because perftest didn't get to see any output until the test finished running.
3199         (.finish): Call logStatistics with metric name as opposed to a label. Each metric name is now prefixed with ':' to be
3200         distinguishable from subtests, making the new format forward compatible.
3201
3202 2013-11-18  Ryosuke Niwa  <rniwa@webkit.org>
3203
3204         [Performance tests] Interactive/SelectAll.html throws an exception
3205         https://bugs.webkit.org/show_bug.cgi?id=124495
3206
3207         Reviewed by Antti Koivisto
3208
3209         Return a boolean indicating whether more values are needed or not in
3210         PerfTestRunner.measureValueAsync so that runTest can terminate gracefully.
3211
3212         * Interactive/SelectAll.html:
3213         (runTest): Don't schedule a timer for runTest if we've got enough values.
3214         * resources/runner.js:
3215         (PerfTestRunner.measureValueAsync): Returns true iff more values are needed.
3216
3217 2013-11-13  Antti Koivisto  <antti@apple.com>
3218
3219         This was supposed to test overflow-wrap:break-word instead of word-break:break-all.
3220
3221         Rubber-stamped by Andreas Kling.
3222
3223         * Layout/line-layout-simple.html:
3224
3225 2013-11-12  Andreas Kling  <akling@apple.com>
3226
3227         Remove body onload handler from html5-8266.html that was causing
3228         the test to sometimes finish before doing anything interesting.
3229
3230         Unskip Parser/HTML5-8266-FullRender.html now that it's stable.
3231
3232         Rubber-stamped by Antti Koivisto.
3233
3234         * Parser/resources/html5-8266.html:
3235         * Skipped:
3236
3237 2013-11-12  Andreas Kling  <akling@apple.com>
3238
3239         Neutralize external resource loads in the new HTML5 spec copy.
3240
3241         Skip Parser/HTML5-8266-FullRender.html until I can make it less flaky.
3242
3243         * Parser/resources/html5-8266.html:
3244         * Skipped:
3245
3246 2013-11-12  Andreas Kling  <akling@apple.com>
3247
3248         Import a fresh version of the full HTML5 spec for perf testing.
3249
3250         Rubber-stamped by Antti Koivisto.
3251
3252         * Parser/HTML5-8266-FullRender.html: Added.
3253         * Parser/HTML5-8266-ParseOnly.html: Added.
3254         * Parser/resources/html5-8266.html: Added.
3255
3256 2013-11-09  Antti Koivisto  <antti@apple.com>
3257
3258         Add subtest for word-break:break-all to Layout/line-layout-simple.html
3259         https://bugs.webkit.org/show_bug.cgi?id=124103
3260
3261         Reviewed by Andreas Kling.
3262
3263         * Layout/line-layout-simple.html:
3264
3265         Combination "white-space:pre-wrap; word-break:break-all" is common for pure text.
3266
3267 2013-11-08  Antti Koivisto  <antti@apple.com>
3268
3269         Add line layout performance test that exercises more cases
3270         https://bugs.webkit.org/show_bug.cgi?id=124041
3271         
3272         Reviewed by Anders Carlsson.
3273
3274         The existing line-layout.html covers the most basic left-aligned case only.
3275         Add a test with more coverage for things that are mostly not yet supported by the simple
3276         line layout path:
3277         
3278         - centered text
3279         - right aligned text
3280         - justified text
3281         - pre
3282         - white-space:pre-wrap
3283         - text with simple inlines
3284         - text with br
3285
3286         * Layout/line-layout-simple.html: Added.
3287
3288 2013-10-25  Sergio Villar Senin  <svillar@igalia.com>
3289
3290         Use a Vector instead of HashSet to computed the orderValues&nb