2021-06-07  Myles C. Maxfield  <mmaxfield@apple.com>

        Release MotionMark 1.2!!! 🎉
        https://bugs.webkit.org/show_bug.cgi?id=226741

        Reviewed by Geoff Garen.

        Simply update the link to point to it.

        * index.html:

2021-06-04  Said Abou-Hallawa  <said@apple.com> and Myles C. Maxfield  <mmaxfield@apple.com>

        [MotionMark] Publish r278436 as a part of MotionMark 1.2
        https://bugs.webkit.org/show_bug.cgi?id=226626

        Reviewed by Simon Fraser.

        Controller.filterOutOutliers must pass a compare function to Array.sort()
        because it filters an array of numbers.

        * MotionMark1.2/tests/resources/main.js:
        (filterOutOutliers):

2021-05-21  Sam Sneddon  <gsnedders@apple.com>

        Fix Python 3.6+ DeprecationWarnings about unknown escapes
        https://bugs.webkit.org/show_bug.cgi?id=226018

        Reviewed by Jonathan Bedard.

        Fix Python 3.6+ DeprecationWarnings about unknown escapes

        * JetStream2.0/RexBench/FlightPlanner/convert-nfdc.py:

2021-05-12  Myles C. Maxfield  <mmaxfield@apple.com>

        [MotionMark] Apply r277406 to Websites/browserbench.org/MotionMark1.2
        https://bugs.webkit.org/show_bug.cgi?id=225722

        Rubber-stamped by Geoffrey Garen.

        Just copy over the change, so the website gets updated.

        This doesn't bump the version number, which is okay, because we never actually
        "released" version 1.2; we just made a folder on a website, and didn't update any
        links to point to it.

        * MotionMark1.2/resources/runner/tests.js:

2021-05-02  Myles C. Maxfield  <mmaxfield@apple.com>

        Copy PerformanceTests/MotionMark to WebSites/browserbench.org/MotionMark1.2
        https://bugs.webkit.org/show_bug.cgi?id=225287

        Reviewed by Maciej Stachowiak and Ryosuke Niwa.

        This patch copies the files, and also updates the version in WebSites/browserbench.org
        to "1.2." It also updates the "about" page to include a description of the changes.

        No existing links have been updated to point to this new version.

        * MotionMark1.2/about.html: Added.
        * MotionMark1.2/developer.html: Added.
        * MotionMark1.2/index.html: Added.
        * MotionMark1.2/resources/debug-runner/d3.min.js: Added.
        * MotionMark1.2/resources/runner/benchmark-runner.js: Added.
        (BenchmarkRunnerState.Utilities.createClass):
        (this.next.currentSuite):
        (this.next.currentTest):
        (this.next.isFirstTest):
        (this.next.next):
        (this.next.frame.onload):
        (this.next.prepareCurrentTest):
        (this.next):
        (BenchmarkRunner.Utilities.createClass):
        (_appendFrame):
        (_removeFrame):
        (_runBenchmarkAndRecordResults):
        (step):
        (runAllSteps):
        (this._runNextIteration):
        (runMultipleIterations):
        (_finalize):
        * MotionMark1.2/resources/runner/crystal.svg: Added.
        * MotionMark1.2/resources/runner/lines.svg: Added.
        * MotionMark1.2/resources/runner/logo.svg: Added.
        * MotionMark1.2/resources/runner/motionmark.css: Added.
        (html,):
        (body):
        (body.showing-intro,):
        (body.showing-test-container):
        (body.images-loaded):
        (@media screen and (min-width: 667px) body):
        (@media screen and (min-width: 667px) body.showing-intro,):
        (@media screen and (min-width: 1025px) body.showing-intro,):
        (::selection):
        (.hidden):
        (section):
        (section.selected):
        (.logo):
        (.logo svg):
        (.logo div):
        (body.images-loaded .logo svg):
        (@media screen and (min-width: 667px) .logo svg):
        (@media screen and (min-width: 667px) .logo div):
        (section .body):
        (section .body p):
        (@media screen and (min-width: 667px) section .body):
        (@media screen and (min-width: 667px) section button):
        (button):
        (body.images-loaded button):
        (button:hover):
        (button:active):
        (button:disabled):
        (@media print button):
        (.portrait-orientation-check):
        (@media screen and (max-device-width: 1025px) and (orientation: portrait) .portrait-orientation-check):
        (@media screen and (max-device-width: 1025px) and (orientation: portrait) .landscape-orientation-check):
        (@keyframes background-fade):
        (@keyframes background-color):
        (12%, 20%):
        (22%, 30%):
        (32%, 40%):
        (42%, 50%):
        (52%, 60%):
        (62%, 70%):
        (72%, 80%):
        (82%, 90%):
        (92%, 100%):
        (@keyframes foreground-color):
        (#intro, #about):
        (#intro):
        (body.images-loaded #intro):
        (#about .body):
        (#about li):
        (#about button):
        (#about h3):
        (#about #log):
        (#about #log li):
        (@media screen and (min-width: 667px) #about .body):
        (@media screen and (min-width: 667px) #about ol, #about ul):
        (#intro a, #about a,):
        (.frame-container):
        (.frame-container > iframe):
        (body.small .frame-container):
        (body.medium .frame-container):
        (body.large .frame-container):
        (#results):
        (#results .body):
        (#results .score-container):
        (#results .table-container):
        (#results .table-container > div):
        (#results .score):
        (#results .confidence):
        (#results table):
        (#results table td,):
        (#results table td.suites-separator):
        (#results table tr:nth-child(even)):
        (#results #results-header):
        (#results #results-score):
        (#results #results-data span):
        (#results #results-header td,):
        (#results #results-score td,):
        (#results #results-score td):
        (@media screen and (min-width: 667px) #results .score,):
        (.detail span):
        (body.small .detail .small,):
        (#overlay):
        (@supports (-webkit-backdrop-filter: blur(10px))):
        (#overlay > div):
        (#overlay > div div):
        * MotionMark1.2/resources/runner/motionmark.js: Added.
        (ResultsDashboard.Utilities.createClass):
        (this._processData.push):
        (this._processData._processData):
        (this._processData.findRegression):
        (this._processData.):
        (this._processData.calculateScore):
        (this._processData.get data):
        (this._processData.get results):
        (this._processData.get options):
        (this._processData.get version):
        (this._processData._getResultsProperty):
        (this._processData.get score):
        (this._processData.get scoreLowerBound):
        (this._processData.get scoreUpperBound):
        (this._processData):
        (ResultsTable.Utilities.createClass):
        (this.clear.clear):
        (this.clear._addHeader):
        (this.clear._addBody):
        (this.clear._addEmptyRow):
        (this.clear):
        (this.clear._addIteration):
        (this.clear.showIterations):
        (window.benchmarkRunnerClient.initialize):
        (window.benchmarkRunnerClient.willStartFirstIteration):
        (window.benchmarkRunnerClient.didRunSuites):
        (window.benchmarkRunnerClient.didRunTest):
        (window.benchmarkRunnerClient.didFinishLastIteration):
        (window.sectionsManager.showSection):
        (window.sectionsManager.setSectionVersion):
        (window.sectionsManager.setSectionScore):
        (window.sectionsManager.populateTable):
        (window.benchmarkController.initialize):
        (window.benchmarkController.determineCanvasSize):
        (window.benchmarkController.addOrientationListenerIfNecessary):
        (window.benchmarkController._orientationChanged):
        (window.benchmarkController.updateStartButtonState):
        (window.benchmarkController._startBenchmark):
        (window.benchmarkController.startBenchmark):
        (window.benchmarkController.showResults):
        (window.benchmarkController.handleKeyPress):
        (window.benchmarkController.hideDebugInfo):
        (window.benchmarkController.data.onclick):
        (window.benchmarkController.button.onclick):
        (window.benchmarkController.showDebugInfo):
        (window.benchmarkController.selectResults):
        * MotionMark1.2/resources/runner/tests.js: Added.
        (Headers.details.text):
        (Suite):
        (suiteFromName):
        * MotionMark1.2/resources/statistics.js: Added.
        (Pseudo.resetRandomSeed):
        (Pseudo.random):
        (Statistics.sampleMean):
        (Statistics.unbiasedSampleStandardDeviation):
        (Statistics.geometricMean):
        (Statistics.cdf):
        (Statistics.erf):
        (Statistics.largestDeviationPercentage):
        (Experiment.Utilities.createClass):
        (this.reset.reset):
        (this.reset.get sampleCount):
        (this.reset.sample):
        (this.reset.mean):
        (this.reset.standardDeviation):
        (this.reset.cdf):
        (this.reset.percentage):
        (this.reset.concern):
        (this.reset.score):
        (this.reset):
        (Regression.Utilities.createClass):
        (valueAt):
        (setBest):
        (_calculateRegression):
        (bootstrap):
        * MotionMark1.2/resources/strings.js: Added.
        * MotionMark1.2/tests/3d/resources/webgl.js: Added.
        (Stage.call.initialize):
        (Stage.call._getFunctionSource):
        (Stage.call._resetIfNecessary):
        (Stage.call.tune):
        (Stage.call.animate):
        (Stage.call.complexity):
        (Stage.call):
        * MotionMark1.2/tests/3d/resources/webgpu.js: Added.
        (constant.float.uniforms.register):
        (Stage.call.initialize):
        (Stage.call._getFunctionSource):
        (Stage.call._resetIfNecessary):
        (Stage.call.tune):
        (Stage.call.animate):
        (Stage.call.complexity):
        (Stage.call):
        (new.WebGLStage.waitUntilReady):
        (new.WebGLStage):
        * MotionMark1.2/tests/3d/triangles-webgl.html: Added.
        * MotionMark1.2/tests/3d/triangles-webgpu.html: Added.
        * MotionMark1.2/tests/bouncing-particles/bouncing-canvas-images.html: Added.
        * MotionMark1.2/tests/bouncing-particles/bouncing-canvas-shapes.html: Added.
        * MotionMark1.2/tests/bouncing-particles/bouncing-css-images.html: Added.
        * MotionMark1.2/tests/bouncing-particles/bouncing-css-shapes.html: Added.
        * MotionMark1.2/tests/bouncing-particles/bouncing-svg-images.html: Added.
        * MotionMark1.2/tests/bouncing-particles/bouncing-svg-shapes.html: Added.
        * MotionMark1.2/tests/bouncing-particles/bouncing-tagged-images.html: Added.
        * MotionMark1.2/tests/bouncing-particles/resources/bouncing-canvas-images.js: Added.
        (_draw):
        (BouncingCanvasParticlesStage.call.initialize):
        (BouncingCanvasParticlesStage.call.createParticle):
        (BouncingCanvasParticlesStage.call):
        * MotionMark1.2/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Added.
        (applyRotation):
        (applyClipping):
        (_draw):
        (animate):
        (BouncingParticlesStage.call.initialize):
        (BouncingParticlesStage.call.animate):
        (BouncingParticlesStage.call):
        * MotionMark1.2/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Added.
        (this._color1.Stage.randomColor._applyFill):
        (this._color1.Stage.randomColor._drawShape):
        (this._color1.Stage.randomColor._draw):
        (this._color1.Stage.randomColor):
        (BouncingCanvasParticlesStage.call.initialize):
        (BouncingCanvasParticlesStage.call.createParticle):
        (BouncingCanvasParticlesStage.call):
        * MotionMark1.2/tests/bouncing-particles/resources/bouncing-css-images.js: Added.
        (this._move._move):
        (this._move.animate):
        (this._move):
        (BouncingParticlesStage.call.initialize):
        (BouncingParticlesStage.call.createParticle):
        (BouncingParticlesStage.call.particleWillBeRemoved):
        (BouncingParticlesStage.call):
        * MotionMark1.2/tests/bouncing-particles/resources/bouncing-css-shapes.js: Added.
        (switch):
        (this._move._createSpan):
        (this._move._move):
        (this._move.animate):
        (this._move):
        (BouncingParticlesStage.call.initialize):
        (BouncingParticlesStage.call.createParticle):
        (BouncingParticlesStage.call.particleWillBeRemoved):
        (BouncingParticlesStage.call):
        * MotionMark1.2/tests/bouncing-particles/resources/bouncing-particles.js: Added.
        (BouncingParticle):
        (BouncingParticle.prototype.get center):
        (BouncingParticle.prototype.animate):
        (initialize):
        (parseShapeParameters):
        (animate):
        (tune):
        (complexity):
        * MotionMark1.2/tests/bouncing-particles/resources/bouncing-svg-images.js: Added.
        (BouncingSvgParticlesStage.call.initialize):
        (BouncingSvgParticlesStage.call.createParticle):
        (BouncingSvgParticlesStage.call):
        * MotionMark1.2/tests/bouncing-particles/resources/bouncing-svg-particles.js: Added.
        (_applyClipping):
        (_move):
        (animate):
        (BouncingParticlesStage.call._createDefs):
        (BouncingParticlesStage.call._ensureDefsIsCreated):
        (BouncingParticlesStage.call._createClipStar):
        (BouncingParticlesStage.call.ensureClipStarIsCreated):
        (BouncingParticlesStage.call.particleWillBeRemoved):
        (BouncingParticlesStage.call):
        * MotionMark1.2/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Added.
        (this._move._createShape):
        (this._move._applyFill):
        (this._move):
        (BouncingSvgParticlesStage.call.initialize):
        (BouncingSvgParticlesStage.call.createGradient):
        (BouncingSvgParticlesStage.call.createParticle):
        (BouncingSvgParticlesStage.call.particleWillBeRemoved):
        (BouncingSvgParticlesStage.call):
        * MotionMark1.2/tests/bouncing-particles/resources/bouncing-tagged-images.js: Added.
        (this._move._move):
        (this._move.animate):
        (this._move):
        (BouncingParticlesStage.call.):
        (BouncingParticlesStage.call.initialize):
        (BouncingParticlesStage.call.img.onload):
        (BouncingParticlesStage.call._loadImage):
        (BouncingParticlesStage.call.createParticle):
        (BouncingParticlesStage.call.particleWillBeRemoved):
        (BouncingParticlesStage.call):
        (new.BouncingTaggedImagesStage.waitUntilReady):
        (new.BouncingTaggedImagesStage):
        * MotionMark1.2/tests/bouncing-particles/resources/image1.jpg: Added.
        * MotionMark1.2/tests/bouncing-particles/resources/image2.jpg: Added.
        * MotionMark1.2/tests/bouncing-particles/resources/image3.jpg: Added.
        * MotionMark1.2/tests/bouncing-particles/resources/image4.jpg: Added.
        * MotionMark1.2/tests/bouncing-particles/resources/image5.jpg: Added.
        * MotionMark1.2/tests/dom/compositing-transforms.html: Added.
        * MotionMark1.2/tests/dom/focus.html: Added.
        * MotionMark1.2/tests/dom/leaves.html: Added.
        * MotionMark1.2/tests/dom/multiply.html: Added.
        * MotionMark1.2/tests/dom/particles.html: Added.
        * MotionMark1.2/tests/dom/resources/compositing-transforms.js: Added.
        (this._move._move):
        (this._move.animate):
        (this._move):
        (BouncingParticlesStage.call.initialize):
        (BouncingParticlesStage.call.createParticle):
        (BouncingParticlesStage.call.particleWillBeRemoved):
        (BouncingParticlesStage.call):
        * MotionMark1.2/tests/dom/resources/dom-particles.js: Added.
        (Particle.call.reset):
        (Particle.call.move):
        (Particle.call):
        (ParticlesStage.call.initialize):
        (ParticlesStage.call.createParticle):
        (ParticlesStage.call.willRemoveParticle):
        (ParticlesStage.call):
        * MotionMark1.2/tests/dom/resources/focus.js: Added.
        (FocusElement.Utilities.createClass):
        (hide):
        (show):
        (animate):
        (Stage.call.initialize):
        (Stage.call.complexity):
        (Stage.call.tune):
        (Stage.call.animate):
        (Stage.call.getBlurValue):
        (Stage.call.getOpacityValue):
        (Stage.call):
        * MotionMark1.2/tests/dom/resources/leaves.js: Added.
        (SuperLeaf.call.move):
        (SuperLeaf.call):
        (switch):
        * MotionMark1.2/tests/dom/resources/multiply.js: Added.
        (switch):
        * MotionMark1.2/tests/master/canvas-stage.html: Added.
        * MotionMark1.2/tests/master/design.html: Added.
        * MotionMark1.2/tests/master/focus.html: Added.
        * MotionMark1.2/tests/master/image-data.html: Added.
        * MotionMark1.2/tests/master/leaves.html: Added.
        * MotionMark1.2/tests/master/multiply.html: Added.
        * MotionMark1.2/tests/master/resources/canvas-stage.js: Added.
        (initialize):
        (tune):
        (animate):
        (complexity):
        * MotionMark1.2/tests/master/resources/canvas-tests.js: Added.
        (CanvasLineSegment.Utilities.createClass):
        (draw):
        (CanvasArc.Utilities.createClass):
        (CanvasLinePoint.Utilities.createClass):
        (randomPoint):
        (SimpleCanvasStage.call.initialize):
        (SimpleCanvasStage.call.animate):
        (SimpleCanvasStage.call):
        (switch):
        * MotionMark1.2/tests/master/resources/compass.svg: Added.
        * MotionMark1.2/tests/master/resources/compass100.png: Added.
        * MotionMark1.2/tests/master/resources/console.svg: Added.
        * MotionMark1.2/tests/master/resources/console100.png: Added.
        * MotionMark1.2/tests/master/resources/contribute.svg: Added.
        * MotionMark1.2/tests/master/resources/contribute100.png: Added.
        * MotionMark1.2/tests/master/resources/debugger.svg: Added.
        * MotionMark1.2/tests/master/resources/debugger100.png: Added.
        * MotionMark1.2/tests/master/resources/design.js: Added.
        (initialize):
        (tune):
        (animate):
        (complexity):
        * MotionMark1.2/tests/master/resources/focus.js: Added.
        (FocusElement.Utilities.createClass):
        (this.animate.hide):
        (this.animate.show):
        (this.animate.animate):
        (this.animate):
        (Stage.call.initialize):
        (Stage.call.complexity):
        (Stage.call.tune):
        (Stage.call.animate):
        (Stage.call):
        * MotionMark1.2/tests/master/resources/image-data.js: Added.
        (initialize):
        (_loadImage):
        (tune):
        (_createTestElement):
        (_refreshElement):
        (animate):
        (_getRandomNeighboringPixelIndex):
        (complexity):
        (new.ImageDataStage.waitUntilReady):
        (new.ImageDataStage):
        * MotionMark1.2/tests/master/resources/inspector.svg: Added.
        * MotionMark1.2/tests/master/resources/inspector100.png: Added.
        * MotionMark1.2/tests/master/resources/layout.svg: Added.
        * MotionMark1.2/tests/master/resources/layout100.png: Added.
        * MotionMark1.2/tests/master/resources/leaves.js: Added.
        (Particle.call.reset):
        (Particle.call.animate):
        (Particle.call.move):
        (Particle.call):
        (initialize):
        (img.onload):
        (_loadImage):
        (animate):
        (createParticle):
        (willRemoveParticle):
        (new.ParticlesStage.waitUntilReady):
        (new.ParticlesStage):
        * MotionMark1.2/tests/master/resources/multiply.js: Added.
        (initialize):
        (_addTile):
        (complexity):
        (tune):
        (animate):
        * MotionMark1.2/tests/master/resources/particles.js: Added.
        (Particle):
        (Particle.prototype.reset):
        (Particle.prototype.animate):
        (Particle.prototype.move):
        (animate):
        (tune):
        (complexity):
        * MotionMark1.2/tests/master/resources/performance.svg: Added.
        * MotionMark1.2/tests/master/resources/performance100.png: Added.
        * MotionMark1.2/tests/master/resources/script.svg: Added.
        * MotionMark1.2/tests/master/resources/script100.png: Added.
        * MotionMark1.2/tests/master/resources/shortcuts.svg: Added.
        * MotionMark1.2/tests/master/resources/shortcuts100.png: Added.
        * MotionMark1.2/tests/master/resources/standards.svg: Added.
        * MotionMark1.2/tests/master/resources/standards100.png: Added.
        * MotionMark1.2/tests/master/resources/storage.svg: Added.
        * MotionMark1.2/tests/master/resources/storage100.png: Added.
        * MotionMark1.2/tests/master/resources/styles.svg: Added.
        * MotionMark1.2/tests/master/resources/styles100.png: Added.
        * MotionMark1.2/tests/master/resources/suits.js: Added.
        (this.initialize.initialize):
        (this.initialize.reset):
        (this.initialize.move):
        (this.initialize):
        (ParticlesStage.call.initialize):
        (ParticlesStage.call.createParticle):
        (ParticlesStage.call.willRemoveParticle):
        (ParticlesStage.call):
        * MotionMark1.2/tests/master/resources/timeline.svg: Added.
        * MotionMark1.2/tests/master/resources/timeline100.png: Added.
        * MotionMark1.2/tests/master/suits.html: Added.
        * MotionMark1.2/tests/resources/main.js: Added.
        (Sampler.Utilities.createClass):
        (record):
        (processSamples):
        (Controller.Utilities.createClass):
        (set isFrameLengthEstimatorEnabled):
        (start):
        (recordFirstSample):
        (mark):
        (containsMark):
        (filterOutOutliers):
        (_measureAndResetInterval):
        (update):
        (registerFrameTime):
        (intervalHasConcluded):
        (didFinishInterval):
        (tune):
        (shouldStop):
        (results):
        (_processComplexitySamples):
        (_processMarks):
        (_processControllerSamples):
        (_getComplexity):
        (_getFrameLength):
        (Stage.Utilities.createClass):
        (Stage.Utilities.createClass.initialize):
        (Stage.Utilities.createClass.get element):
        (Stage.Utilities.createClass.get size):
        (Stage.Utilities.createClass.complexity):
        (Stage.Utilities.createClass.tune):
        (Stage.Utilities.createClass.animate):
        (Stage.Utilities.createClass.clear):
        (random):
        (randomBool):
        (randomSign):
        (randomInt):
        (randomPosition):
        (randomSquareSize):
        (randomVelocity):
        (randomAngle):
        (randomColor):
        (randomStyleMixBlendMode):
        (randomStyleFilter):
        (randomElementInArray):
        (rotatingColor):
        (dateFractionalValue):
        (dateCounterValue):
        (randomRotater):
        (Rotater.Utilities.createClass):
        (get interval):
        (next):
        (degree):
        (rotateZ):
        (rotate):
        (Benchmark.Utilities.createClass):
        (get stage):
        (get timestamp):
        (backgroundColor):
        (run):
        (waitUntilReady):
        (_animateLoop):
        * MotionMark1.2/tests/resources/math.js: Added.
        (this._gain.error.sample):
        (this._gain.error.reset):
        (this._gain.error):
        (PIDController.Utilities.createClass):
        (_yPosition):
        (_distanceUltimate):
        (_distance):
        (_gainIncrement):
        (_updateStage):
        (_tuneP):
        (_tunePID):
        (_tune):
        (_saturate):
        (tune):
        * MotionMark1.2/tests/resources/stage.css: Added.
        (html):
        (body):
        (#stage):
        (#center-text):
        * MotionMark1.2/tests/resources/star.svg: Added.
        * MotionMark1.2/tests/resources/yin-yang.png: Added.
        * MotionMark1.2/tests/resources/yin-yang.svg: Added.
        * MotionMark1.2/tests/simple/resources/simple-canvas-paths.js: Added.
        (CanvasLineSegment.Utilities.createClass):
        (this._lineWidth.Stage.randomInt.draw):
        (this._lineWidth.Stage.randomInt):
        (CanvasLinePoint.Utilities.createClass):
        (draw):
        (CanvasQuadraticSegment.Utilities.createClass):
        (CanvasQuadraticPoint.Utilities.createClass):
        (CanvasBezierSegment.Utilities.createClass):
        (CanvasBezierPoint.Utilities.createClass):
        (CanvasArcToSegment.Utilities.createClass):
        (CanvasArcToSegmentFill.Utilities.createClass):
        (CanvasArcToSegment.call.draw):
        (CanvasArcToSegment.call):
        (CanvasArcSegment.Utilities.createClass):
        (CanvasArcSegmentFill.Utilities.createClass):
        (CanvasArcSegment.call.draw):
        (CanvasArcSegment.call):
        (CanvasRect.Utilities.createClass):
        (CanvasRectFill.Utilities.createClass):
        (CanvasRect.call.draw):
        (CanvasRect.call):
        (CanvasEllipse.Utilities.createClass):
        (CanvasEllipseFill.Utilities.createClass):
        (CanvasEllipse.call.draw):
        (CanvasEllipse.call):
        (CanvasStroke.Utilities.createClass):
        (this._object.new.draw):
        (this._object.new):
        (CanvasFill.Utilities.createClass):
        (SimpleCanvasStage.call.animate):
        (SimpleCanvasStage.call):
        (SimpleCanvasStage.call.initialize):
        (SimpleCanvasPathStrokeStage.call.initialize):
        (SimpleCanvasPathStrokeStage.call):
        (initialize):
        (animate):
        (switch):
        * MotionMark1.2/tests/simple/resources/simple-canvas.js: Added.
        (tune):
        (animate):
        (complexity):
        * MotionMark1.2/tests/simple/resources/tiled-canvas-image.js: Added.
        (CanvasImageTile.Utilities.createClass):
        (getImageData):
        (putImageData):
        (Stage.call.initialize):
        (Stage.call._setupTiles):
        (Stage.call._nextTilePosition):
        (Stage.call.tune):
        (Stage.call._drawBackground):
        (Stage.call.animate):
        (Stage.call.complexity):
        (Stage.call):
        * MotionMark1.2/tests/simple/simple-canvas-paths.html: Added.
        * MotionMark1.2/tests/simple/tiled-canvas-image.html: Added.
        * MotionMark1.2/tests/svg/suits.html: Added.
        * MotionMark1.2/tests/svg/suits.js: Added.
        (this.initialize.move):
        (this.initialize):
        (this.initialize.reset):
        (switch):
        * MotionMark1.2/tests/template/resources/template-canvas.js: Added.
        (TemplateCanvasObject):
        (TemplateCanvasObject.prototype._draw):
        (TemplateCanvasObject.prototype.animate):
        (Stage.call.initialize):
        (Stage.call.tune):
        (Stage.call.animate):
        (Stage.call):
        (new.TemplateCanvasStage.waitUntilReady):
        (new.TemplateCanvasStage):
        * MotionMark1.2/tests/template/resources/template-css.js: Added.
        (Stage.call.initialize):
        (Stage.call.tune):
        (Stage.call.animate):
        (Stage.call):
        * MotionMark1.2/tests/template/resources/template-svg.js: Added.
        (Stage.call.initialize):
        (Stage.call.tune):
        (Stage.call.animate):
        (Stage.call):
        * MotionMark1.2/tests/template/template-canvas.html: Added.
        * MotionMark1.2/tests/template/template-css.html: Added.
        * MotionMark1.2/tests/template/template-svg.html: Added.
        * MotionMark1.2/tests/text/design-6.html: Added.
        * MotionMark1.2/tests/text/design-6.js: Added.
        (switch):
        (dataset.forEach):
        * MotionMark1.2/tests/text/design.html: Added.
        * MotionMark1.2/tests/text/design.js: Added.
        (switch):
        (dataset.forEach):

2021-01-05  Beth Dakin  <bdakin@apple.com>

        Remove non-inclusive language from copy of JetStream 2.0 in Websites/
        https://bugs.webkit.org/show_bug.cgi?id=220257

        Reviewed by Darin Adler.

        * JetStream2.0/code-load/inspector-payload.js:
        (WebInspector.DOMNode.WebInspector.Resource.WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.styleFormatter):
        (WebInspector.DOMNode.WebInspector.Resource.WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.isAllowlistedProperty):
        (WebInspector.DOMNode.WebInspector.Resource.WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.isWhitelistedProperty): Deleted.
        * JetStream2.0/web-tooling-benchmark/browser.js:
        * JetStream2.0/web-tooling-benchmark/cli.js:

2019-09-18  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Update demos to work on STP 92
        https://bugs.webkit.org/show_bug.cgi?id=201872

        Reviewed by Dean Jackson.

        GPUShaderStageBit => GPUShaderStage

        * MotionMark1.1/tests/3d/resources/webgpu.js:
        (Stage.call.initialize):

2019-09-09  Jon Lee  <jonlee@apple.com>

        Upload triangles tests for 3D suite in MotionMark
        https://bugs.webkit.org/show_bug.cgi?id=201606

        Reviewed by Simon Fraser.

        * MotionMark1.1/resources/debug-runner/tests.js:
        * MotionMark1.1/tests/3d/resources/webgl.js:
        * MotionMark1.1/tests/3d/resources/webgpu.js: Added.
        * MotionMark1.1/tests/3d/triangles-webgl.html: Copied from PerformanceTests/MotionMark/tests/3d/webgl.html.
        * MotionMark1.1/tests/3d/triangles-webgpu.html: Renamed from PerformanceTests/MotionMark/tests/3d/webgl.html.

2019-04-16  Jon Lee  <jonlee@apple.com>

        [MotionMark] The text "kkkj" is causing Firefox console warning: `unreachable code after return statement`
        https://bugs.webkit.org/show_bug.cgi?id=196814

        Reviewed by Wenson Hsieh.

        * MotionMark/resources/extensions.js:
        (subtract.subtract.sampleY):
        * MotionMark1.1/resources/extensions.js:
        (subtract.subtract.sampleY):

2019-03-27  Saam Barati  <sbarati@apple.com>

        JetStream 2 should not report time values as scores
        https://bugs.webkit.org/show_bug.cgi?id=196334

        Reviewed by Yusuke Suzuki.

        * JetStream2.0/JetStreamDriver.js:
        (toTimeValue):
        (Driver.prototype.async.reportScoreToRunBenchmarkRunner):

2019-03-27  Saam barati  <sbarati@apple.com>

        Unreviewed. Fix individual benchmark description urls to go to in-depth.html instead of about.html

        * JetStream2.0/JetStreamDriver.js:
        (Driver.prototype.prepareToRun.text.div.id.string_appeared_here.h3):

2019-03-26  Jon Davis  <jond@apple.com>

        Update BrowserBench for JetStream2.
        https://bugs.webkit.org/show_bug.cgi?id=196273

        Reviewed by Saam Barati.

        * index.html:
        * resources/JetStream2-Logo.png: Added.
        * resources/JetStream2-Logo@2x.png: Added.
        * resources/main.css:
        (.benchmark:hover img): Improved hover effect for the JetStream2 logo.

2019-03-25  Saam barati  <sbarati@apple.com>

        Update browserbench.org/JetStream2.0 to the latest version.

        Rubber-stamped by Filip Pizlo.

        * JetStream2.0: Replaced with ../../PerformanceTests/JetStream2.

2019-03-18  Saam Barati  <sbarati@apple.com>

        Unreviewed. Rename JetStream directory to JetStream1.1

        * JetStream: Removed.
        * JetStream1.1: Copied from Websites/browserbench.org/JetStream.

2019-01-09  Saam Barati  <sbarati@apple.com>

        Merge the latest version of JetStream2.0 to browserbench.org.

        Rubber-stamped by Ryosuke Niwa.

        * JetStream2.0: Copied from PerformanceTests/JetStream2.

2018-10-11  Jon Lee  <jonlee@apple.com>

        Update default hyperlink for MotionMark to MotionMark 1.1
        https://bugs.webkit.org/show_bug.cgi?id=190491

        Reviewed by Ryosuke Niwa.

        * index.html:

2018-08-14  Jon Lee  <jonlee@apple.com>

        Add MotionMark 1.1 to browserbench
        https://bugs.webkit.org/show_bug.cgi?id=188585
        <rdar://problem/43308076>

        Rubber-stamped by Ryosuke Niwa.

        * MotionMark1.1/: Added.

2018-01-15  Ryosuke Niwa  <rniwa@webkit.org>

        ΩUpdate the default hyperlink for Speedometer to Speedometer 2.0.

        Rubber-stamped by Saam Barati.

        * index.html:

2018-01-09  Ryosuke Niwa  <rniwa@webkit.org>

        Merge the latest version of Speedometer 2.0 to browserbench.org against at r226694.

        Rubber-stamped by Keith Miller.

        * Speedometer2.0: Replaced with PerformanceTests/Speedometer.

2017-09-28  Ryosuke Niwa  <rniwa@webkit.org>

        Merge the latest version of Speedometer 2.0 to browserbench.org against at r222534.

        Rubber-stamped by Saam Barati (a while ago).

        * Speedometer2.0: Replaced with PerformanceTests/Speedometer.

2017-09-10  Jon Davis  <jond@apple.com>

        Minor design changes for browserbench.org landing page
        https://bugs.webkit.org/show_bug.cgi?id=176612

        Reviewed by Darin Adler.

        * index.html:
        * resources/main.css: Shrink the logos and arrange them into a grid.
        (main):
        (.benchmarks):
        (.benchmarks a):
        (.benchmark):
        (.benchmark:hover):
        (.benchmark img):
        (#ares-6-logo): Deleted.
        (#motionmark-logo): Deleted.
        (#speedometer-logo): Deleted.
        (#jetstream-logo): Deleted.

2017-08-23  Ryosuke Niwa  <rniwa@webkit.org>

        Build fix. Copy the missing statistics.js for Speedometer 2.0.

        * resources/statistics.js: Copied from PerformanceTests/resources/statistics.js.

2017-08-23  Ryosuke Niwa  <rniwa@webkit.org>

        Merge the latest version of Speedometer 2.0 to browserbench.org against at r221126.

        Rubber-stamped by Yusuke Suzuki.

        * Speedometer2.0: Replaced with PerformanceTests/Speedometer.
        * Speedometer2.0/resources/todomvc/architecture-examples/preact/dist/app.js:
        * Speedometer2.0/resources/todomvc/architecture-examples/preact/dist/todomvc.css:
        * Speedometer2.0/resources/todomvc/architecture-examples/preact/src/app/footer.js:
        * Speedometer2.0/resources/todomvc/architecture-examples/preact/src/app/index.js:
        * Speedometer2.0/resources/todomvc/architecture-examples/preact/src/app/item.js:
        * Speedometer2.0/resources/todomvc/architecture-examples/preact/src/app/util.js:
        (export.uuid):

2017-08-23  Ryosuke Niwa  <rniwa@webkit.org>

        Merge the latest version of Speedometer 2.0 to browserbench.org against at r221119.

        Rubber-stamped by Joseph Pecoraro.

        * Speedometer2.0: Replaced with PerformanceTests/Speedometer.

2017-08-22  Ryosuke Niwa  <rniwa@webkit.org>

        Merge the latest version of Speedometer 2.0 to browserbench.org against at r221056.

        Rubber-stamped by Joseph Pecoraro.

        * Speedometer2.0: Replaced with PerformanceTests/Speedometer.
        * Speedometer2.0/resources/main.js:
        (window.benchmarkClient.didFinishLastIteration):
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.9debb1b0a94f14d0ebe9.js: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.9debb1b0a94f14d0ebe9.js.map: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.a55034b424c795b1a9a8.js: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.a55034b424c795b1a9a8.js.map: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.bade2cb8992d8a68d0d7.js: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.bade2cb8992d8a68d0d7.js.map: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.9debb1b0a94f14d0ebe9.css: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.9debb1b0a94f14d0ebe9.css.map: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.bade2cb8992d8a68d0d7.css: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.bade2cb8992d8a68d0d7.css.map: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/store.js:
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015/src/store.js:

2017-08-21  Ryosuke Niwa  <rniwa@webkit.org>

        Merge the latest version of Speedometer 2.0 to browserbench.org

        Rubber-stamped by Joseph Pecoraro.

        * Speedometer2.0: Replaced with PerformanceTests/Speedometer.
        * Speedometer2.0/resources/benchmark-runner.js:
        * Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/inline.b342d102ba4a53bf2002.bundle.js: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/main.779eb2f1ddbe23ac61c7.bundle.js: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/polyfills.2d45a4c73c85e24fe474.bundle.js: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/vendor.b4be818cb6d8028f9192.bundle.js: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/angular/e2e: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/angular/e2e/app.e2e-spec.ts: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/angular/e2e/app.po.ts: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/angular/e2e/tsconfig.e2e.json: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.js:
        * Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.js:
        * Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.js:
        * Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.js:
        * Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-app-css/index.css:
        * Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/app/instance-initializers: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/app/instance-initializers/global.js: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/config/environment.js:
        * Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/tests/.jshintrc: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/module-for-acceptance.js:
        * Speedometer2.0/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/start-app.js:
        * Speedometer2.0/resources/todomvc/architecture-examples/react-redux/dist/static/css/main.d43d2909.css: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.946269ff.js: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/css/app.677b45842d9f8b96e5b23c18969233b7.css: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/app.b0e835874bc8949670d1.js: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/manifest.84b2b4fceb74ab1f91f3.js: Removed.
        * Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/vendor.a52517c5aa98e7fbea2e.js: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js.map: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js.map: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js.map: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css.map: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css.map: Removed.
        * Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/js/store.js:

2017-08-18  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r219640): Speedometer no longer runs on Safari 7
        https://bugs.webkit.org/show_bug.cgi?id=175749

        Reviewed by Joseph Pecoraro.

        Fix the bug on browserbench.org.

        * Speedometer/resources/benchmark-runner.js:
        (BenchmarkRunner.prototype._runTest):

2017-07-18  Ryosuke Niwa  <rniwa@webkit.org>

        Merge r219640 into Speedometer 1.0.

        * Speedometer/resources/benchmark-runner.js:
        (BenchmarkRunner.prototype._writeMark):
        (BenchmarkRunner.prototype._runTest):
        (BenchmarkRunner.prototype._runTestAndRecordResults):

2017-07-14  Saam Barati  <sbarati@apple.com>

        Fix ambiguous description text in ARES-6 about the data the benchmark measures
        https://bugs.webkit.org/show_bug.cgi?id=174510

        Rubber stamped by Filip Pizlo.

        * ARES-6/about.html:

2017-06-07  Saam Barati  <sbarati@apple.com>

        ARES-6 incorrectly measures Worst 4 Iterations
        https://bugs.webkit.org/show_bug.cgi?id=172960

        Reviewed by Mark Lam.

        Version 1.0 of ARES-6 was accidentally measuring the first
        4 iterations, instead of the worst 4. This patch fixes the
        bug and bumps the version to 1.0.1.

        * ARES-6/glue.js:
        (driver.reportResult):
        * ARES-6/results.js:
        (Results.prototype.reportResult):

2017-06-06  Saam Barati  <sbarati@apple.com>

        Add a version number to ARES-6
        https://bugs.webkit.org/show_bug.cgi?id=172962

        Reviewed by Yusuke Suzuki.

        * ARES-6/glue.js:
        (driver.reportResult):

2017-06-05  Saam Barati  <sbarati@apple.com>

        Update index.html to include ARES-6.

        Rubber stamped by Ryosuke Niwa.

        * index.html:

2017-06-01  Saam Barati  <sbarati@apple.com>

        Ensure a good experience for ARES-6 error reporting
        https://bugs.webkit.org/show_bug.cgi?id=171699

        Reviewed by Filip Pizlo and Jon Davis.

        This patch fixes a bug where we would silently fail running ARES-6. The bug
        was that we were calling reportError with the wrong |this| value.
        I also cleaned up a bit of the code around error reporting. We
        now indicate which test failed, and update the status to reflect
        that a failure happened.
        
        This patch also modifies the CSS a bit to work better on smaller
        screened devices. The CSS prevents the status from having a line
        break both when an error is reported and when we're running the 
        benchmark.

        * ARES-6/driver.js:
        (Driver):
        (Driver.prototype.reportError):
        * ARES-6/results.js:
        (Results.prototype.reportError):
        (Results):
        * ARES-6/styles.css:
        (.start):
        (#status):
        (.failed):
        (#status.failed):
        (.test .failed:before):
        (#magic):
        (@media only screen and (max-width: 784px)):
        (.test):
        (p):
        (@media only screen and (max-width: 320px)):

2017-05-19  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r217118): Speedometer 2.0: Flight.js test is broken
        https://bugs.webkit.org/show_bug.cgi?id=172394

        Reviewed by Chris Dumez.

        Merge the fix.

        * Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:
        (newContext.checkLoaded):

2017-05-19  Ryosuke Niwa  <rniwa@webkit.org>

        Merge Speedometer 2.0 fixes up to r217121 to browserbench.org
        https://bugs.webkit.org/show_bug.cgi?id=172389

        Rubber-stamped by Chris Dumez.

        Merged the various fixes for Speedometer 2.0 starting from r217107 through r217121.

        * Speedometer2.0/InteractiveRunner.html:
        * Speedometer2.0/resources/benchmark-runner.js:
        * Speedometer2.0/resources/tests.js:
        * Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/js/main.js:
        * Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:
        * Speedometer2.0/resources/todomvc/functional-prog-examples/elm/dist/elm.js:
        * Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/js/store.js:

2017-05-18  Ryosuke Niwa  <rniwa@webkit.org>

        Add Speedometer 2.0 to browserbench.org for final testing
        https://bugs.webkit.org/show_bug.cgi?id=172335

        Rubber-stamped by Chris Dumez.

        Stage Speedometer 2.0 here for the final testing before we call it official.

        * Speedometer2.0: Copied from PerformanceTests/Speedometer.
        * Speedometer2.0/Full.html: Removed.
        * Speedometer2.0/index.html: Copied from PerformanceTests/Speedometer/index.html.

2017-05-15  Ryosuke Niwa  <rniwa@webkit.org>

        browserbench.org/Speedometer/ should show the benchmark not an index of files
        https://bugs.webkit.org/show_bug.cgi?id=172141

        Reviewed by Alexey Proskuryakov.

        Renamed Speedometer/Full.html to Speedometer/index.html.
        We used to have a .htaccess but it's better to use the same file name convention as other benchmarks.

        * Speedometer/index.html: Renamed from Websites/browserbench.org/Speedometer/Full.html.

2017-05-12  Ryosuke Niwa  <rniwa@webkit.org>

        Add Websites/browserbench.org
        https://bugs.webkit.org/show_bug.cgi?id=172049

        Rubber-stamped by Geoffrey Garen.

        Added the current contents of browserbench.org.

        * ARES-6/ARES-6.svg: Added.
        * ARES-6/Air/README.md: Added.
        * ARES-6/Air/airjs-tests.yaml: Added.
        * ARES-6/Air/all.js: Added.
        * ARES-6/Air/allocate_stack.js: Added.
        * ARES-6/Air/arg.js: Added.
        * ARES-6/Air/basic_block.js: Added.
        * ARES-6/Air/benchmark.js: Added.
        * ARES-6/Air/code.js: Added.
        * ARES-6/Air/custom.js: Added.
        * ARES-6/Air/frequented_block.js: Added.
        * ARES-6/Air/insertion_set.js: Added.
        * ARES-6/Air/inst.js: Added.
        * ARES-6/Air/liveness.js: Added.
        * ARES-6/Air/make_dist.sh: Added.
        * ARES-6/Air/opcode.js: Added.
        * ARES-6/Air/payload-airjs-ACLj8C.js: Added.
        * ARES-6/Air/payload-gbemu-executeIteration.js: Added.
        * ARES-6/Air/payload-imaging-gaussian-blur-gaussianBlur.js: Added.
        * ARES-6/Air/payload-typescript-scanIdentifier.js: Added.
        * ARES-6/Air/reg.js: Added.
        * ARES-6/Air/stack_slot.js: Added.
        * ARES-6/Air/stress-test.js: Added.
        * ARES-6/Air/strip-hash.rb: Added.
        * ARES-6/Air/symbols.js: Added.
        * ARES-6/Air/test.html: Added.
        * ARES-6/Air/test.js: Added.
        * ARES-6/Air/tmp.js: Added.
        * ARES-6/Air/tmp_base.js: Added.
        * ARES-6/Air/util.js: Added.
        * ARES-6/Babylon/AUTHORS: Added.
        * ARES-6/Babylon/air-blob.js: Added.
        * ARES-6/Babylon/babylon-blob.js: Added.
        * ARES-6/Babylon/basic-blob.js: Added.
        * ARES-6/Babylon/benchmark.js: Added.
        * ARES-6/Babylon/index.js: Added.
        * ARES-6/Babylon/inspector-blob.js: Added.
        * ARES-6/Basic/ast.js: Added.
        * ARES-6/Basic/basic-tests.yaml: Added.
        * ARES-6/Basic/basic.js: Added.
        * ARES-6/Basic/benchmark.js: Added.
        * ARES-6/Basic/caseless_map.js: Added.
        * ARES-6/Basic/lexer.js: Added.
        * ARES-6/Basic/number.js: Added.
        * ARES-6/Basic/parser.js: Added.
        * ARES-6/Basic/random.js: Added.
        * ARES-6/Basic/state.js: Added.
        * ARES-6/Basic/stress-test.js: Added.
        * ARES-6/Basic/test.html: Added.
        * ARES-6/Basic/test.js: Added.
        * ARES-6/Basic/util.js: Added.
        * ARES-6/about.html: Added.
        * ARES-6/air_benchmark.js: Added.
        * ARES-6/babylon_benchmark.js: Added.
        * ARES-6/basic_benchmark.js: Added.
        * ARES-6/cli.js: Added.
        * ARES-6/driver.js: Added.
        * ARES-6/glue.js: Added.
        * ARES-6/index.html: Added.
        * ARES-6/ml/benchmark.js: Added.
        * ARES-6/ml/index.js: Added.
        * ARES-6/ml_benchmark.js: Added.
        * ARES-6/results.js: Added.
        * ARES-6/stats.js: Added.
        * ARES-6/styles.css: Added.
        * ARES-6/swoop.svg: Added.
        * JetStream/CDjsSetup.js: Added.
        * JetStream/JetStream-Logo.png: Added.
        * JetStream/JetStream-Logo@2x.png: Added.
        * JetStream/JetStream.css: Added.
        * JetStream/JetStreamDriver.js: Added.
        * JetStream/LLVM-test-suite-LICENSE.txt: Added.
        * JetStream/Octane/base.js: Added.
        * JetStream/Octane/code-load.js: Added.
        * JetStream/Octane2/base.js: Added.
        * JetStream/Octane2/box2d.js: Added.
        * JetStream/Octane2/code-load.js: Added.
        * JetStream/Octane2/crypto.js: Added.
        * JetStream/Octane2/deltablue.js: Added.
        * JetStream/Octane2/earley-boyer.js: Added.
        * JetStream/Octane2/gbemu-part1.js: Added.
        * JetStream/Octane2/gbemu-part2.js: Added.
        * JetStream/Octane2/mandreel.js: Added.
        * JetStream/Octane2/navier-stokes.js: Added.
        * JetStream/Octane2/pdfjs.js: Added.
        * JetStream/Octane2/raytrace.js: Added.
        * JetStream/Octane2/regexp.js: Added.
        * JetStream/Octane2/richards.js: Added.
        * JetStream/Octane2/run.js: Added.
        * JetStream/Octane2/splay.js: Added.
        * JetStream/Octane2/typescript-compiler.js: Added.
        * JetStream/Octane2/typescript-input.js: Added.
        * JetStream/Octane2/typescript.js: Added.
        * JetStream/Octane2/zlib-data.js: Added.
        * JetStream/Octane2/zlib.js: Added.
        * JetStream/Octane2Setup.js: Added.
        * JetStream/OctaneSetup.js: Added.
        * JetStream/Reference.js: Added.
        * JetStream/SimplePayload.js: Added.
        * JetStream/SimpleSetup.js: Added.
        * JetStream/SunSpiderPayload.js: Added.
        * JetStream/SunSpiderSetup.js: Added.
        * JetStream/Swoosh.png: Added.
        * JetStream/Swoosh@2x.png: Added.
        * JetStream/TestingSetup.js: Added.
        * JetStream/cdjs/benchmark.js: Added.
        * JetStream/cdjs/call_sign.js: Added.
        * JetStream/cdjs/collision.js: Added.
        * JetStream/cdjs/collision_detector.js: Added.
        * JetStream/cdjs/constants.js: Added.
        * JetStream/cdjs/motion.js: Added.
        * JetStream/cdjs/red_black_tree.js: Added.
        * JetStream/cdjs/reduce_collision_set.js: Added.
        * JetStream/cdjs/simulator.js: Added.
        * JetStream/cdjs/util.js: Added.
        * JetStream/cdjs/vector_2d.js: Added.
        * JetStream/cdjs/vector_3d.js: Added.
        * JetStream/in-depth.html: Added.
        * JetStream/index.html: Added.
        * JetStream/simple/bigfib.cpp: Added.
        * JetStream/simple/bigfib.cpp.js: Added.
        * JetStream/simple/container.cpp: Added.
        * JetStream/simple/container.cpp.js: Added.
        * JetStream/simple/dry.c: Added.
        * JetStream/simple/dry.c.js: Added.
        * JetStream/simple/float-mm.c: Added.
        * JetStream/simple/float-mm.c.js: Added.
        * JetStream/simple/gcc-loops.cpp: Added.
        * JetStream/simple/gcc-loops.cpp.js: Added.
        * JetStream/simple/hash-map.js: Added.
        * JetStream/simple/n-body.c: Added.
        * JetStream/simple/n-body.c.js: Added.
        * JetStream/simple/quicksort.c: Added.
        * JetStream/simple/quicksort.c.js: Added.
        * JetStream/simple/towers.c: Added.
        * JetStream/simple/towers.c.js: Added.
        * JetStream/sources/3d-cube.js: Added.
        * JetStream/sources/3d-raytrace.js: Added.
        * JetStream/sources/base64.js: Added.
        * JetStream/sources/bigfib.cpp: Added.
        * JetStream/sources/bigfib.cpp.js: Added.
        * JetStream/sources/box2d.js: Added.
        * JetStream/sources/cdjs-benchmark.js: Added.
        * JetStream/sources/cdjs-call_sign.js: Added.
        * JetStream/sources/cdjs-collision.js: Added.
        * JetStream/sources/cdjs-collision_detector.js: Added.
        * JetStream/sources/cdjs-constants.js: Added.
        * JetStream/sources/cdjs-motion.js: Added.
        * JetStream/sources/cdjs-red_black_tree.js: Added.
        * JetStream/sources/cdjs-reduce_collision_set.js: Added.
        * JetStream/sources/cdjs-simulator.js: Added.
        * JetStream/sources/cdjs-util.js: Added.
        * JetStream/sources/cdjs-vector_2d.js: Added.
        * JetStream/sources/cdjs-vector_3d.js: Added.
        * JetStream/sources/code-first-load-code-load.js: Added.
        * JetStream/sources/code-multi-load-code-load.js: Added.
        * JetStream/sources/container.cpp: Added.
        * JetStream/sources/container.cpp.js: Added.
        * JetStream/sources/crypto-aes.js: Added.
        * JetStream/sources/crypto-md5.js: Added.
        * JetStream/sources/crypto-sha1.js: Added.
        * JetStream/sources/crypto.js: Added.
        * JetStream/sources/date-format-tofte.js: Added.
        * JetStream/sources/date-format-xparb.js: Added.
        * JetStream/sources/deltablue.js: Added.
        * JetStream/sources/dry.c: Added.
        * JetStream/sources/dry.c.js: Added.
        * JetStream/sources/earley-boyer.js: Added.
        * JetStream/sources/float-mm.c: Added.
        * JetStream/sources/float-mm.c.js: Added.
        * JetStream/sources/gbemu-part1.js: Added.
        * JetStream/sources/gbemu-part2.js: Added.
        * JetStream/sources/gcc-loops.cpp: Added.
        * JetStream/sources/gcc-loops.cpp.js: Added.
        * JetStream/sources/hash-map.js: Added.
        * JetStream/sources/mandreel.js: Added.
        * JetStream/sources/n-body.c: Added.
        * JetStream/sources/n-body.c.js: Added.
        * JetStream/sources/n-body.js: Added.
        * JetStream/sources/navier-stokes.js: Added.
        * JetStream/sources/pdfjs.js: Added.
        * JetStream/sources/quicksort.c: Added.
        * JetStream/sources/quicksort.c.js: Added.
        * JetStream/sources/raytrace.js: Added.
        * JetStream/sources/regex-dna.js: Added.
        * JetStream/sources/regexp.js: Added.
        * JetStream/sources/richards.js: Added.
        * JetStream/sources/splay.js: Added.
        * JetStream/sources/tagcloud.js: Added.
        * JetStream/sources/towers.c: Added.
        * JetStream/sources/towers.c.js: Added.
        * JetStream/sources/typescript-compiler.js: Added.
        * JetStream/sources/typescript-input.js: Added.
        * JetStream/sources/typescript.js: Added.
        * JetStream/sources/zlib-data.js: Added.
        * JetStream/sources/zlib.js: Added.
        * JetStream/sunspider/3d-cube.js: Added.
        * JetStream/sunspider/3d-raytrace.js: Added.
        * JetStream/sunspider/base64.js: Added.
        * JetStream/sunspider/crypto-aes.js: Added.
        * JetStream/sunspider/crypto-md5.js: Added.
        * JetStream/sunspider/crypto-sha1.js: Added.
        * JetStream/sunspider/date-format-tofte.js: Added.
        * JetStream/sunspider/date-format-xparb.js: Added.
        * JetStream/sunspider/n-body.js: Added.
        * JetStream/sunspider/regex-dna.js: Added.
        * JetStream/sunspider/tagcloud.js: Added.
        * MotionMark/about.html: Added.
        * MotionMark/developer.html: Added.
        * MotionMark/index.html: Added.
        * MotionMark/resources/debug-runner/animometer.css: Added.
        * MotionMark/resources/debug-runner/animometer.js: Added.
        * MotionMark/resources/debug-runner/d3.min.js: Added.
        * MotionMark/resources/debug-runner/graph.js: Added.
        * MotionMark/resources/debug-runner/tests.js: Added.
        * MotionMark/resources/extensions.js: Added.
        * MotionMark/resources/runner/animometer.css: Added.
        * MotionMark/resources/runner/animometer.js: Added.
        * MotionMark/resources/runner/benchmark-runner.js: Added.
        * MotionMark/resources/runner/crystal.svg: Added.
        * MotionMark/resources/runner/lines.svg: Added.
        * MotionMark/resources/runner/logo.svg: Added.
        * MotionMark/resources/runner/tests.js: Added.
        * MotionMark/resources/statistics.js: Added.
        * MotionMark/resources/strings.js: Added.
        * MotionMark/tests/3d/resources/webgl.js: Added.
        * MotionMark/tests/3d/webgl.html: Added.
        * MotionMark/tests/bouncing-particles/bouncing-canvas-images.html: Added.
        * MotionMark/tests/bouncing-particles/bouncing-canvas-shapes.html: Added.
        * MotionMark/tests/bouncing-particles/bouncing-css-images.html: Added.
        * MotionMark/tests/bouncing-particles/bouncing-css-shapes.html: Added.
        * MotionMark/tests/bouncing-particles/bouncing-svg-images.html: Added.
        * MotionMark/tests/bouncing-particles/bouncing-svg-shapes.html: Added.
        * MotionMark/tests/bouncing-particles/bouncing-tagged-images.html: Added.
        * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-images.js: Added.
        * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Added.
        * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Added.
        * MotionMark/tests/bouncing-particles/resources/bouncing-css-images.js: Added.
        * MotionMark/tests/bouncing-particles/resources/bouncing-css-shapes.js: Added.
        * MotionMark/tests/bouncing-particles/resources/bouncing-particles.js: Added.
        * MotionMark/tests/bouncing-particles/resources/bouncing-svg-images.js: Added.
        * MotionMark/tests/bouncing-particles/resources/bouncing-svg-particles.js: Added.
        * MotionMark/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Added.
        * MotionMark/tests/bouncing-particles/resources/bouncing-tagged-images.js: Added.
        * MotionMark/tests/bouncing-particles/resources/image1.jpg: Added.
        * MotionMark/tests/bouncing-particles/resources/image2.jpg: Added.
        * MotionMark/tests/bouncing-particles/resources/image3.jpg: Added.
        * MotionMark/tests/bouncing-particles/resources/image4.jpg: Added.
        * MotionMark/tests/bouncing-particles/resources/image5.jpg: Added.
        * MotionMark/tests/dom/compositing-transforms.html: Added.
        * MotionMark/tests/dom/focus.html: Added.
        * MotionMark/tests/dom/leaves.html: Added.
        * MotionMark/tests/dom/particles.html: Added.
        * MotionMark/tests/dom/resources/compositing-transforms.js: Added.
        * MotionMark/tests/dom/resources/dom-particles.js: Added.
        * MotionMark/tests/dom/resources/focus.js: Added.
        * MotionMark/tests/dom/resources/leaves.js: Added.
        * MotionMark/tests/master/canvas-stage.html: Added.
        * MotionMark/tests/master/focus.html: Added.
        * MotionMark/tests/master/image-data.html: Added.
        * MotionMark/tests/master/leaves.html: Added.
        * MotionMark/tests/master/multiply.html: Added.
        * MotionMark/tests/master/resources/canvas-stage.js: Added.
        * MotionMark/tests/master/resources/canvas-tests.js: Added.
        * MotionMark/tests/master/resources/compass.svg: Added.
        * MotionMark/tests/master/resources/compass100.png: Added.
        * MotionMark/tests/master/resources/console.svg: Added.
        * MotionMark/tests/master/resources/console100.png: Added.
        * MotionMark/tests/master/resources/contribute.svg: Added.
        * MotionMark/tests/master/resources/contribute100.png: Added.
        * MotionMark/tests/master/resources/debugger.svg: Added.
        * MotionMark/tests/master/resources/debugger100.png: Added.
        * MotionMark/tests/master/resources/focus.js: Added.
        * MotionMark/tests/master/resources/image-data.js: Added.
        * MotionMark/tests/master/resources/inspector.svg: Added.
        * MotionMark/tests/master/resources/inspector100.png: Added.
        * MotionMark/tests/master/resources/layout.svg: Added.
        * MotionMark/tests/master/resources/layout100.png: Added.
        * MotionMark/tests/master/resources/leaves.js: Added.
        * MotionMark/tests/master/resources/multiply.js: Added.
        * MotionMark/tests/master/resources/particles.js: Added.
        * MotionMark/tests/master/resources/performance.svg: Added.
        * MotionMark/tests/master/resources/performance100.png: Added.
        * MotionMark/tests/master/resources/script.svg: Added.
        * MotionMark/tests/master/resources/script100.png: Added.
        * MotionMark/tests/master/resources/shortcuts.svg: Added.
        * MotionMark/tests/master/resources/shortcuts100.png: Added.
        * MotionMark/tests/master/resources/standards.svg: Added.
        * MotionMark/tests/master/resources/standards100.png: Added.
        * MotionMark/tests/master/resources/storage.svg: Added.
        * MotionMark/tests/master/resources/storage100.png: Added.
        * MotionMark/tests/master/resources/styles.svg: Added.
        * MotionMark/tests/master/resources/styles100.png: Added.
        * MotionMark/tests/master/resources/svg-particles.js: Added.
        * MotionMark/tests/master/resources/text.js: Added.
        * MotionMark/tests/master/resources/timeline.svg: Added.
        * MotionMark/tests/master/resources/timeline100.png: Added.
        * MotionMark/tests/master/svg-particles.html: Added.
        * MotionMark/tests/master/text.html: Added.
        * MotionMark/tests/resources/main.js: Added.
        * MotionMark/tests/resources/math.js: Added.
        * MotionMark/tests/resources/stage.css: Added.
        * MotionMark/tests/resources/star.svg: Added.
        * MotionMark/tests/resources/yin-yang.png: Added.
        * MotionMark/tests/resources/yin-yang.svg: Added.
        * MotionMark/tests/simple/resources/simple-canvas-paths.js: Added.
        * MotionMark/tests/simple/resources/simple-canvas.js: Added.
        * MotionMark/tests/simple/resources/tiled-canvas-image.js: Added.
        * MotionMark/tests/simple/simple-canvas-paths.html: Added.
        * MotionMark/tests/simple/tiled-canvas-image.html: Added.
        * MotionMark/tests/template/resources/template-canvas.js: Added.
        * MotionMark/tests/template/resources/template-css.js: Added.
        * MotionMark/tests/template/resources/template-svg.js: Added.
        * MotionMark/tests/template/template-canvas.html: Added.
        * MotionMark/tests/template/template-css.html: Added.
        * MotionMark/tests/template/template-svg.html: Added.
        * MotionMark/version: Added.
        * Speedometer/Full.html: Added.
        * Speedometer/InteractiveRunner.html: Added.
        * Speedometer/resources/benchmark-report.js: Added.
        * Speedometer/resources/benchmark-runner.js: Added.
        * Speedometer/resources/flightjs-example-app/LICENSE.md: Added.
        * Speedometer/resources/flightjs-example-app/README.md: Added.
        * Speedometer/resources/flightjs-example-app/app/boot/page.js: Added.
        * Speedometer/resources/flightjs-example-app/app/component_data/compose_box.js: Added.
        * Speedometer/resources/flightjs-example-app/app/component_data/mail_items.js: Added.
        * Speedometer/resources/flightjs-example-app/app/component_data/move_to.js: Added.
        * Speedometer/resources/flightjs-example-app/app/component_ui/compose_box.js: Added.
        * Speedometer/resources/flightjs-example-app/app/component_ui/folders.js: Added.
        * Speedometer/resources/flightjs-example-app/app/component_ui/mail_controls.js: Added.
        * Speedometer/resources/flightjs-example-app/app/component_ui/mail_items.js: Added.
        * Speedometer/resources/flightjs-example-app/app/component_ui/move_to_selector.js: Added.
        * Speedometer/resources/flightjs-example-app/app/component_ui/with_select.js: Added.
        * Speedometer/resources/flightjs-example-app/app/css/custom.css: Added.
        * Speedometer/resources/flightjs-example-app/app/data.js: Added.
        * Speedometer/resources/flightjs-example-app/app/templates.js: Added.
        * Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.css: Added.
        * Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.min.css: Added.
        * Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap.css: Added.
        * Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap.min.css: Added.
        * Speedometer/resources/flightjs-example-app/components/bootstrap/img/glyphicons-halflings-white.png: Added.
        * Speedometer/resources/flightjs-example-app/components/bootstrap/img/glyphicons-halflings.png: Added.
        * Speedometer/resources/flightjs-example-app/components/bootstrap/js/bootstrap.js: Added.
        * Speedometer/resources/flightjs-example-app/components/bootstrap/js/bootstrap.min.js: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/.gitignore: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/CHANGES: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/CONTRIBUTORS.md: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/LICENSE: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/README.md: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/component.json: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/es5-sham.js: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/es5-sham.min.js: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/es5-shim.js: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/es5-shim.min.js: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/package.json: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-matchers.js: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h.js: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/tests/index.html: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine-html.js: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine.css: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine.js: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine_favicon.png: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/json2.js: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-array.js: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-date.js: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-function.js: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-object.js: Added.
        * Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-string.js: Added.
        * Speedometer/resources/flightjs-example-app/components/flight/.travis.yml: Added.
        * Speedometer/resources/flightjs-example-app/components/flight/lib/advice.js: Added.
        * Speedometer/resources/flightjs-example-app/components/flight/lib/component.js: Added.
        * Speedometer/resources/flightjs-example-app/components/flight/lib/compose.js: Added.
        * Speedometer/resources/flightjs-example-app/components/flight/lib/index.js: Added.
        * Speedometer/resources/flightjs-example-app/components/flight/lib/logger.js: Added.
        * Speedometer/resources/flightjs-example-app/components/flight/lib/registry.js: Added.
        * Speedometer/resources/flightjs-example-app/components/flight/lib/utils.js: Added.
        * Speedometer/resources/flightjs-example-app/components/flight/tools/debug/debug.js: Added.
        * Speedometer/resources/flightjs-example-app/components/jasmine-flight/LICENSE.md: Added.
        * Speedometer/resources/flightjs-example-app/components/jasmine-flight/README.md: Added.
        * Speedometer/resources/flightjs-example-app/components/jasmine-flight/bower.json: Added.
        * Speedometer/resources/flightjs-example-app/components/jasmine-flight/lib/jasmine-flight.js: Added.
        * Speedometer/resources/flightjs-example-app/components/jasmine-jquery/lib/jasmine-jquery.js: Added.
        * Speedometer/resources/flightjs-example-app/components/jquery/component.json: Added.
        * Speedometer/resources/flightjs-example-app/components/jquery/composer.json: Added.
        * Speedometer/resources/flightjs-example-app/components/jquery/jquery.js: Added.
        * Speedometer/resources/flightjs-example-app/components/jquery/jquery.min.js: Added.
        * Speedometer/resources/flightjs-example-app/components/mustache/mustache.js: Added.
        * Speedometer/resources/flightjs-example-app/components/requirejs/require.js: Added.
        * Speedometer/resources/flightjs-example-app/index.html: Added.
        * Speedometer/resources/flightjs-example-app/karma.conf.js: Added.
        * Speedometer/resources/flightjs-example-app/package.json: Added.
        * Speedometer/resources/flightjs-example-app/requireMain.js: Added.
        * Speedometer/resources/gauge.png: Added.
        * Speedometer/resources/gauge@2x.png: Added.
        * Speedometer/resources/logo.png: Added.
        * Speedometer/resources/logo@2x.png: Added.
        * Speedometer/resources/main.css: Added.
        * Speedometer/resources/main.js: Added.
        * Speedometer/resources/statistics.js: Added.
        * Speedometer/resources/tests.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/bower.json: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/index.html: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/js/app.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/test/package.json: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/test/readme.md: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/bower.json: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/index.html: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/js/app.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/js/collections/todos.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/js/models/todo.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/js/routers/router.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/js/views/app-view.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/js/views/todo-view.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/backbone/readme.md: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower.json: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-data/ember-data.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/index.html: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/app.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/helpers/pluralize.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/models/todo.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/router.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/todos_view.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/readme.md: Added.
        * Speedometer/resources/todomvc/architecture-examples/emberjs/test.html: Added.
        * Speedometer/resources/todomvc/architecture-examples/jquery/bower.json: Added.
        * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Added.
        * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Added.
        * Speedometer/resources/todomvc/architecture-examples/jquery/css/app.css: Added.
        * Speedometer/resources/todomvc/architecture-examples/jquery/index.html: Added.
        * Speedometer/resources/todomvc/architecture-examples/jquery/js/app.js: Added.
        * Speedometer/resources/todomvc/architecture-examples/jquery/readme.md: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/.gitignore: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/.jshintrc: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/app/js/app.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/app/js/data/stats.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/app/js/data/todos.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/app/js/main.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/app/js/store.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/main_selector.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/new_item.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/stats.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/todo_list.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/toggle_all.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/with_filters.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/app/js/utils.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/app/templates/stats.html: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/app/templates/todo.html: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower.json: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/depot/depot.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-sham.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/advice.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/base.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/component.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/debug.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/registry.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/utils.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text/text.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/requirejs/require.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/index.html: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/karma.conf.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/package.json: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/readme.md: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/test/.jshintrc: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Added.
        * Speedometer/resources/todomvc/dependency-examples/flight/test/test-main.js: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/bower.json: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/director/README.md: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/bower.json: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/react.js: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/bg.png: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/index.html: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/js/app.jsx: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/js/footer.jsx: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/js/todoItem.jsx: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/js/utils.jsx: Added.
        * Speedometer/resources/todomvc/labs/architecture-examples/react/readme.md: Added.
        * Speedometer/resources/todomvc/learn.json: Added.
        * Speedometer/resources/todomvc/license.md: Added.
        * Speedometer/resources/todomvc/readme.md: Added.
        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower.json: Added.
        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Added.
        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Added.
        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Added.
        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/index.html: Added.
        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/app.js: Added.
        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/controller.js: Added.
        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/helpers.js: Added.
        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/model.js: Added.
        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js: Added.
        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/view.js: Added.
        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/readme.md: Added.
        * index.html: Added.
        * resources/ARES-6-Logo.png: Added.
        * resources/ARES-6-Logo@2x.png: Added.
        * resources/JetStream-Logo.png: Added.
        * resources/JetStream-Logo@2x.png: Added.
        * resources/MotionMark-Logo.png: Added.
        * resources/MotionMark-Logo@2x.png: Added.
        * resources/Speedometer-Logo.png: Added.
        * resources/Speedometer-Logo@2x.png: Added.
        * resources/main.css: Added.
