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