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