)]}'
{
  "log": [
    {
      "commit": "c37b5040d7b07044cb76b5c3917abac4b0951579",
      "tree": "a11e606723a21e8f5e4d5749a1930559f1984ad3",
      "parents": [
        "7ef5b39f85ce4f21ebe4c48d7e489a0b880696bd"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Jul 22 03:23:13 2026"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Wed Jul 22 20:28:23 2026"
      },
      "message": "Re-render the result graphs when the available space changes.\n\nUse a ResizeObserver to detect when the graph container changes size,\nand use it to re-render the D3 graph.\n\nAddresses https://github.com/WebKit/MotionMark/issues/114\n"
    },
    {
      "commit": "7ef5b39f85ce4f21ebe4c48d7e489a0b880696bd",
      "tree": "c3a362b417f2b0b5746408603723367114230faf",
      "parents": [
        "fdc371164bed6c825516040cb9e978de8d67ba55"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Jun 15 17:28:57 2026"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Mon Jun 15 17:32:46 2026"
      },
      "message": "Update rubric to recommend maximizing the browser window (instead of \"fullscreen\")\n\nAs discussed[1], change the rubric to suggest maximizing the browser window,\ninstead of taking it into fullscreen. The about page clarifies that leaves\nsystem UI visible (i.e. the macOS use of \"maximize\").\n\n[1] https://docs.google.com/document/d/10dE1HHht5j1F4woUu8Z9pClksWU1gO7GUPQU-Rn_ah8/#heading\u003dh.lmrf9obg3lrc\n"
    },
    {
      "commit": "fdc371164bed6c825516040cb9e978de8d67ba55",
      "tree": "786081fbd9400dff35d2590b0c5af5a1e21f1c78",
      "parents": [
        "ace4c467b494ae1fc55feb51efba76b88a955a4b"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon May 18 18:56:48 2026"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon May 18 18:56:48 2026"
      },
      "message": "Merge https://github.com/WebKit/MotionMark/pull/103\n"
    },
    {
      "commit": "ace4c467b494ae1fc55feb51efba76b88a955a4b",
      "tree": "b64560e034562d991ba329f4b3896c58a5132a5f",
      "parents": [
        "a2c9e92ca46396699c8f1eb177dab35840f1fdf2"
      ],
      "author": {
        "name": "Sunny Sachanandani",
        "email": "sunnyps@chromium.org",
        "time": "Tue Mar 03 23:22:17 2026"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Mon May 18 18:46:02 2026"
      },
      "message": "Add a \"Load results\" button to upload results JSON\n"
    },
    {
      "commit": "a2c9e92ca46396699c8f1eb177dab35840f1fdf2",
      "tree": "396ef68879d955237f8f80989b6617b1c4f6ddec",
      "parents": [
        "f5389db345c8e3dbf32f6d559598428190603dc5"
      ],
      "author": {
        "name": "Victor Miura",
        "email": "vmiura@google.com",
        "time": "Tue Aug 05 16:50:51 2025"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon May 18 18:42:19 2026"
      },
      "message": "Add new experimental \u0027window\u0027 regression function."
    },
    {
      "commit": "f5389db345c8e3dbf32f6d559598428190603dc5",
      "tree": "0a04eb6b56ea78191d6a5a21ef247a9a8042d7b6",
      "parents": [
        "a10b0cb4bb7fb273b6ef3099490514dcc67a63d8"
      ],
      "author": {
        "name": "Sunny Sachanandani",
        "email": "sunnyps@chromium.org",
        "time": "Tue Mar 03 23:22:17 2026"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Mon May 18 18:23:21 2026"
      },
      "message": "Dynamic score profile selectors\n\nAllow changing the score profile on the fly from the results and graph\npages and update computed results, graphs, etc. immediately. This also\naffects the data that\u0027s used as the source for the \"Show Debug Info\" and\ndownloaded JSON.\n"
    },
    {
      "commit": "a10b0cb4bb7fb273b6ef3099490514dcc67a63d8",
      "tree": "7284b8925bacdfc7c919faa1381cb70d868efa18",
      "parents": [
        "f2a19965c69b37d3ab9f00147ac2d412ce7a2c26"
      ],
      "author": {
        "name": "Victor Miura",
        "email": "vmiura@chromium.org",
        "time": "Sat Aug 02 19:21:33 2025"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Mon Mar 09 18:27:41 2026"
      },
      "message": "Fixes for maximum stage complexity calculation\n"
    },
    {
      "commit": "f2a19965c69b37d3ab9f00147ac2d412ce7a2c26",
      "tree": "d86a579c356b1611444a8d6270f649088492cbe1",
      "parents": [
        "420bb9abeb9779b131cb916df4da99d5f442298f"
      ],
      "author": {
        "name": "Alejandro G. Castro",
        "email": "alex@igalia.com",
        "time": "Fri Apr 25 15:38:12 2025"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Mon Sep 15 17:00:15 2025"
      },
      "message": "Delay the fade-in animation until the fps calculation is done.\n\nIn some small devices the animation is causing that the fps calculation\ndoes not get the correct number because the animation is too heavy.\nThis change adds some seconds to the start of the initial fade-in animation\nto make sure it happens when the fps calculation is done. We also\ndelay the next color change animation accordingly.\n"
    },
    {
      "commit": "420bb9abeb9779b131cb916df4da99d5f442298f",
      "tree": "568f25727e73a22d0bdd496005a4e253f07a849e",
      "parents": [
        "5856536661736ae63c5136e917b1db32a7b83927"
      ],
      "author": {
        "name": "Victor Miura",
        "email": "vmiura@google.com",
        "time": "Tue Aug 05 16:47:28 2025"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Tue Aug 05 23:51:44 2025"
      },
      "message": "Improve visualization of regression lines.\n\nRegressions on the time graph used a very rough \u0027percentage\u0027 calculation\nbased on the inflection complexity and overall start and end complexity of a\nramp. This can sometimes be significantly different from the actual sample\ndata, since samples do not take a uniform amount of time.\n\nImprove this by finding the inflection complexity point in the sample data.\n"
    },
    {
      "commit": "5856536661736ae63c5136e917b1db32a7b83927",
      "tree": "3e80a3445964850f88aa67119a41f589b088b683",
      "parents": [
        "9236d483d1dc4a80889978c21e536cce935e50a4"
      ],
      "author": {
        "name": "Victor Miura",
        "email": "vmiura@chromium.org",
        "time": "Fri Aug 01 20:42:15 2025"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Mon Aug 04 17:14:28 2025"
      },
      "message": "Filter to animation frames before bootstrap sampling\n\nBefore we were applying bootstrap population resampling across all frame samples, and filtering out mutation frames at regression time. This could cause some odd results due to for example having only mutation samples in some populations.\n\nThis change filters out mutation frames prior to bootstrap to avoid these issues."
    },
    {
      "commit": "9236d483d1dc4a80889978c21e536cce935e50a4",
      "tree": "9c49983192fc52d146b99e81a1811af79070dd36",
      "parents": [
        "032f5037deeb280da265cd28d67ab78eb8620f24"
      ],
      "author": {
        "name": "Victor Miura",
        "email": "vmiura@google.com",
        "time": "Thu May 30 23:37:02 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Mon Aug 04 17:13:48 2025"
      },
      "message": "Separate mutation frame data in the Time Graph.\n\nPreviously the \u0027Time graph\u0027 showed all frame samples together, undet the \u0027Raw FPS\u0027 and \u0027Filtered FPS\u0027 graphics.\n\nThis change adds a separate graph for \u0027Mutation FPS\u0027 frames, and also excludes mutation frames from the \u0027Filtered FPS\u0027 graph. This makes it easier to see the correspondence between the score / regression function, and the animated frames.\n"
    },
    {
      "commit": "032f5037deeb280da265cd28d67ab78eb8620f24",
      "tree": "ab1da68ac93d1d9d8c30de0058e2721ea2e7c072",
      "parents": [
        "75efd9ebb111b6ecccbca4dc2f704159125219a1"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Feb 05 02:11:15 2025"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Tue Feb 11 17:48:24 2025"
      },
      "message": "Replace SimplePromise with native Promises\n\nThis PR replaces usage of SimplePromise with native Promises. The API shape\nis slightly different, requiring some logic changes.\n\nThe biggest change is that `Stage.initialize()` is now async, which\nlets us remove `waitUntilRead()`, and `_runBenchmarkAndRecordResults()`\nis also async.\n\nmodified:   MotionMark/resources/debug-runner/debug-runner.js: Fix a bug that broke clicking some controls.\nmodified:   MotionMark/resources/extensions.js\nmodified:   MotionMark/resources/runner/benchmark-runner.js\nmodified:   MotionMark/resources/runner/motionmark.js\nmodified:   MotionMark/tests/3d/resources/webgl.js\nmodified:   MotionMark/tests/3d/resources/webgpu.js\nmodified:   MotionMark/tests/bouncing-particles/resources/bouncing-canvas-images.js\nmodified:   MotionMark/tests/bouncing-particles/resources/bouncing-canvas-particles.js\nmodified:   MotionMark/tests/bouncing-particles/resources/bouncing-canvas-shapes.js\nmodified:   MotionMark/tests/bouncing-particles/resources/bouncing-css-images.js\nmodified:   MotionMark/tests/bouncing-particles/resources/bouncing-css-shapes.js\nmodified:   MotionMark/tests/bouncing-particles/resources/bouncing-particles.js\nmodified:   MotionMark/tests/bouncing-particles/resources/bouncing-svg-images.js\nmodified:   MotionMark/tests/bouncing-particles/resources/bouncing-svg-shapes.js\nmodified:   MotionMark/tests/bouncing-particles/resources/bouncing-tagged-images.js\nmodified:   MotionMark/tests/core/resources/canvas-stage.js\nmodified:   MotionMark/tests/core/resources/canvas-tests.js\nmodified:   MotionMark/tests/core/resources/design.js\nmodified:   MotionMark/tests/core/resources/focus.js\nmodified:   MotionMark/tests/core/resources/image-data.js\nmodified:   MotionMark/tests/core/resources/leaves.js\nmodified:   MotionMark/tests/core/resources/multiply.js\nmodified:   MotionMark/tests/core/resources/suits.js\nmodified:   MotionMark/tests/dom/resources/compositing-transforms.js\nmodified:   MotionMark/tests/dom/resources/dom-particles.js\nmodified:   MotionMark/tests/dom/resources/focus.js\nmodified:   MotionMark/tests/resources/main.js\nmodified:   MotionMark/tests/simple/resources/simple-canvas-paths.js\nmodified:   MotionMark/tests/simple/resources/tiled-canvas-image.js\nmodified:   MotionMark/tests/template/resources/template-canvas.js\nmodified:   MotionMark/tests/template/resources/template-css.js\nmodified:   MotionMark/tests/template/resources/template-svg.js\n"
    },
    {
      "commit": "75efd9ebb111b6ecccbca4dc2f704159125219a1",
      "tree": "00c7448a76176a3b9d4e510bdfb85d70b0783eb7",
      "parents": [
        "fc28b62e19ddfc1e66a8ad5fb2fa9c65cb7f4736"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Feb 05 23:27:09 2025"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Thu Feb 06 01:14:03 2025"
      },
      "message": "Benchmark and Controller refactoring.\n\nSplit up the confusingly named `main.js` into three files, for `class Benchmark`,\nthe various controllers, and `class Stage`.\n\nFix the html files to include the new JS files.\n"
    },
    {
      "commit": "fc28b62e19ddfc1e66a8ad5fb2fa9c65cb7f4736",
      "tree": "bb38bbc336152d65ded77ee93723de190f94151f",
      "parents": [
        "ef533da2ef9b92387620d0126eac26398af1eb18"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Sep 16 23:52:14 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Wed Feb 05 23:03:18 2025"
      },
      "message": "Import all runs from a benchmark JSON file\n\nWhen importing a file which is the result of a benchmark run with multiple iterations (which contains a `debugOutput` key), store all the runs in `RunData`.\n\nAdd static methods to `RunData` to handle both types of JSON, and move the data migration code there.\n\nThe score computation already correctly computed the arithmetic mean of the runs.\n\nThe code already correctly built the results table for multiple runs.\n"
    },
    {
      "commit": "ef533da2ef9b92387620d0126eac26398af1eb18",
      "tree": "d4600f59a5bd506e08f6a331e6a25ba66a77d323",
      "parents": [
        "c2f7f503fcb3daaaad11debcd6b6fe9bea753f23"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Sep 16 23:05:26 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Wed Feb 05 23:03:18 2025"
      },
      "message": "Make a RunData class\n\nThis class encapsulates the tuple of options, version and run data. ScoreCalculator can then store this in `runData`, replacing the separate storage of `options`, `version` and the confusingly named `_iterationsSamplers`.\n"
    },
    {
      "commit": "c2f7f503fcb3daaaad11debcd6b6fe9bea753f23",
      "tree": "eec93242c9c6c5a19129a731da49c34e5c0c5e65",
      "parents": [
        "559aee7a53c34f29442901656af9ccd5f6d47ecd"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Sep 16 22:47:11 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Wed Feb 05 23:03:18 2025"
      },
      "message": "Rename ResultsDashboard to ScoreCalculator\n\n`BenchmarkRunnerClient.results` becomes `BenchmarkRunnerClient.scoreCalculator`.\n\nAdd a public getter for `targetFrameRate`.\n"
    },
    {
      "commit": "559aee7a53c34f29442901656af9ccd5f6d47ecd",
      "tree": "ee2faed943872c54a05e27311bb8a23dd8cac4b7",
      "parents": [
        "d46dee42eb450dc381c7764376f2a9d0f3f9228a"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Sep 16 22:24:28 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Wed Feb 05 23:03:18 2025"
      },
      "message": "Add unit tests for data import, and minor fixes.\n\nAdd test-data-import.js which tests creating a `ResultsDashboard` with imported JSON,\nwhich is the JSON produced by running the test via the browser. The test validates that\nthe results analysis produces output data in the correct format, but does not validate\nthe score calculation.\n\nTo make the unit test run faster, we make `bootstrapIterations` be configurable via\nan option. The unit test sets this to a small value.\n\nFix a bug that prevented the JSON results dialog being shown by using arrow functions\nin `BenchmarkController` so that `this` is correctly bound.\n"
    },
    {
      "commit": "d46dee42eb450dc381c7764376f2a9d0f3f9228a",
      "tree": "f5346691ece8aa8789184bb1977e56571a89a0a5",
      "parents": [
        "baf37c1fcb690abbe048e249e248e7847bddd34f"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Sep 16 17:28:44 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Wed Feb 05 23:03:18 2025"
      },
      "message": "Move ResultsDashboard and ResultTable to a new file.\n\nFix a bug where we failed to pass the event to a the “benchmark-options” radio changed handler.\n"
    },
    {
      "commit": "baf37c1fcb690abbe048e249e248e7847bddd34f",
      "tree": "ba696373c8166b6d9718c573a813c87bd99db431",
      "parents": [
        "da4695d4036c93b0eb9369fe8aeeeaec07447747"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Sat Sep 14 01:49:14 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Sat Sep 14 03:50:08 2024"
      },
      "message": "Add a way to write Unit Tests.\n\nAdd some Mocha[1]-based tests for Pseudo and Statistics as initial examples.\nThey are run by loading `unit-tests/run-unit-tests.html` in the browser.\n\n[1] https://mochajs.org/\n"
    },
    {
      "commit": "da4695d4036c93b0eb9369fe8aeeeaec07447747",
      "tree": "2b96dcd3b7af5a1b41f712ed85708c070c1ce4ff",
      "parents": [
        "f2408a9e27997cd2a5739960519bcddf2e161bc6"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Thu Sep 12 20:52:40 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Sat Sep 14 03:48:29 2024"
      },
      "message": "Make real classes for BenchmarkRunnerClient, BenchmarkController and SectionsManager.\n\nThese are subclassed in the debug-runner.\n\nMove the graph-related code to a new GraphController class.\n\nFix DeveloperResultsTable\u0027s _addTest() override to correctly add the rows\nunder `tbody`.\n\nShare a bit more code between BenchmarkController and DebugBenchmarkController.\n\nRemove the window-scope benchmarkRunnerClient; keep it local to BenchmarkController.\n"
    },
    {
      "commit": "f2408a9e27997cd2a5739960519bcddf2e161bc6",
      "tree": "d619b9c50f741c8f8b7f31a471a7e38100e9402f",
      "parents": [
        "3f363c02a84ebdf73f9774ce49d89364c1212dbe"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Fri Sep 13 18:35:04 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 13 18:38:31 2024"
      },
      "message": "Respond to review feedback:\n* remove empty constructors\n* fix TextStage static shadowFalloff initialization\n* WebGPU test should use WebGPUStage and WebGPUBenchmark\n* Whitespace\n"
    },
    {
      "commit": "3f363c02a84ebdf73f9774ce49d89364c1212dbe",
      "tree": "8137f84a3eb96adb0bc4dfe58ed9004fc7379244",
      "parents": [
        "25a5449fd87af57b9ddeb9d94847b397f1d93e91"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Sep 11 03:59:50 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 13 18:38:31 2024"
      },
      "message": "Replace the anonymous SimpleCanvasStage subclass with an explicitly named one, with some name juggling.\n"
    },
    {
      "commit": "25a5449fd87af57b9ddeb9d94847b397f1d93e91",
      "tree": "fe44c7950bb7d5e831060706e6fb23f2002693cc",
      "parents": [
        "fedf44860b0620ba51aff0eb72e3a4417024e381"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Sep 11 03:28:01 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 13 18:38:31 2024"
      },
      "message": "Convert TemplateCanvasObject to JS class syntax.\n"
    },
    {
      "commit": "fedf44860b0620ba51aff0eb72e3a4417024e381",
      "tree": "ad0399d5de10426f8204723ca4b61cfe53ef0755",
      "parents": [
        "a12b58c8194d67630872429fc0150bc1f6569f2d"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Sep 11 03:23:33 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 13 18:38:31 2024"
      },
      "message": "Remove Utilities.createClass() and createSubclass().\n"
    },
    {
      "commit": "a12b58c8194d67630872429fc0150bc1f6569f2d",
      "tree": "fc6b5bcf222504d560b3cd4c64d7bc65d20e15af",
      "parents": [
        "1ea2c4632a5a8e84a444896c129c3d9b459ee22e"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Sep 11 01:31:50 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 13 18:38:31 2024"
      },
      "message": "Convert Particle and subclasses to use JS class syntax.\n"
    },
    {
      "commit": "1ea2c4632a5a8e84a444896c129c3d9b459ee22e",
      "tree": "153ba1d8b7364d912e8bcbb866eaf91b2a8398c2",
      "parents": [
        "b22f857bc826e2463e21a24e314d7ce94fcd6c02"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Sep 11 00:10:27 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 13 18:38:31 2024"
      },
      "message": "Convert more objects within specific tests into JS classes.\n"
    },
    {
      "commit": "b22f857bc826e2463e21a24e314d7ce94fcd6c02",
      "tree": "dd613a2176d8524ab9313d054763a13784602f32",
      "parents": [
        "505bd521c5299a6344fb8c9c903773a023e9b8a7"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Tue Sep 10 23:39:01 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 13 18:38:31 2024"
      },
      "message": "Convert Benchmark to a JS class\n"
    },
    {
      "commit": "505bd521c5299a6344fb8c9c903773a023e9b8a7",
      "tree": "644bc8341f85e7747c46fcfa524328778e64b126",
      "parents": [
        "9af3bcd486e56e172595bf4aee9f43bbbc352eef"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Tue Sep 10 20:54:13 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 13 18:38:31 2024"
      },
      "message": "Fix UnitBezier to correctly refer to class static data.\n"
    },
    {
      "commit": "9af3bcd486e56e172595bf4aee9f43bbbc352eef",
      "tree": "3e1fa2f116e3933784d875f803dbf849c04f1012",
      "parents": [
        "cacbf11e1475c0c3d18318c54ab69f5c15c454e9"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Tue Sep 10 17:22:57 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 13 18:38:31 2024"
      },
      "message": "Convert Stage and subclasses to use JS class syntax.\n"
    },
    {
      "commit": "cacbf11e1475c0c3d18318c54ab69f5c15c454e9",
      "tree": "c15a2da05e9c1b963a57b412dd5b0b2903762cbf",
      "parents": [
        "0a0b54ab7a8d47bb9b6e9e23697184c79a6b2d75"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Tue Sep 10 05:02:43 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 13 18:38:31 2024"
      },
      "message": "Instead of calling contentWindow.Utilities.parseParameters(), pass in the contentWindow’s location.\n"
    },
    {
      "commit": "0a0b54ab7a8d47bb9b6e9e23697184c79a6b2d75",
      "tree": "724dac4493bc1d43c614a9e0dbf37316246ce48e",
      "parents": [
        "0889e9dd00418af5c8ddadc854533bf38d3a1a7d"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Tue Sep 10 03:43:37 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 13 18:38:31 2024"
      },
      "message": "Convert Sampler, Controller and the Controller subclasses to use JS class syntax.\n"
    },
    {
      "commit": "0889e9dd00418af5c8ddadc854533bf38d3a1a7d",
      "tree": "6908d9f76321626b7411c535c943c9e127a6b094",
      "parents": [
        "3575bca2f8cfe1481e2ae16c050f2694d0b265fd"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Sep 09 23:44:32 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 13 18:38:31 2024"
      },
      "message": "Convert benchmark-runner.js to JS class syntax.\n"
    },
    {
      "commit": "3575bca2f8cfe1481e2ae16c050f2694d0b265fd",
      "tree": "d50d83b79e02bab6643b071822074892f734baa2",
      "parents": [
        "0904796ef7c144a3fff7c228394c0dee9201a1a4"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Sep 09 23:14:34 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 13 18:38:31 2024"
      },
      "message": "Convert classes in motionmark.js and debug-runner.js to JS class syntax.\n"
    },
    {
      "commit": "0904796ef7c144a3fff7c228394c0dee9201a1a4",
      "tree": "e248d5c9b982fa996b917cbe7ae721a2a533255d",
      "parents": [
        "327ef6c152c5748ae062990fc45f7fdf1ed3e266"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Sep 09 22:53:30 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 13 18:38:31 2024"
      },
      "message": "Convert classes in statistics.js and math.js to use JS class syntax.\n"
    },
    {
      "commit": "327ef6c152c5748ae062990fc45f7fdf1ed3e266",
      "tree": "0d00ea5b43d8032ed13296f4230352ca697bdec2",
      "parents": [
        "711326c22fcdcc9172301914117cf96ace1b769a"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Sep 09 22:21:21 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 13 18:38:31 2024"
      },
      "message": "Convert classes in extensions.js to JS class syntax, deprecating Utilities.createClass()\nand Utilities.createSubclass().\n\nMake Utilities a class with all static functions.\n\nUse arrow functions in a few places.\n"
    },
    {
      "commit": "711326c22fcdcc9172301914117cf96ace1b769a",
      "tree": "248c74ccd9e13fb34b95a0fd4fb4231a21408ca8",
      "parents": [
        "c5f2326e9a982cd0d6c8bc15320020ac57147156"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Jul 24 20:49:50 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Wed Jul 24 20:51:32 2024"
      },
      "message": "Update the version history for 1.3.1\n"
    },
    {
      "commit": "c5f2326e9a982cd0d6c8bc15320020ac57147156",
      "tree": "5f143addc6139fcb16a117276c9d3f22832f6aec",
      "parents": [
        "14d662cf0864187dad4ce6c8d4a6713925437bde"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Jul 24 20:26:35 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Wed Jul 24 20:39:30 2024"
      },
      "message": "Bump Multiply max complexity again.\n\nThis fixes https://github.com/WebKit/MotionMark/issues/63\n"
    },
    {
      "commit": "14d662cf0864187dad4ce6c8d4a6713925437bde",
      "tree": "5b6e6309a55e9b479baadac1c93782fca3d67c35",
      "parents": [
        "f1c7edb54b8d5aaa47303a577487a0a6bbe0e144"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Jul 24 19:37:23 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Wed Jul 24 19:38:00 2024"
      },
      "message": "Detab the changed added in f3034d6f7754eefcebd5df76657082344fc629ee.\n\nThis was a merge of https://github.com/WebKit/MotionMark/pull/48.\n"
    },
    {
      "commit": "f1c7edb54b8d5aaa47303a577487a0a6bbe0e144",
      "tree": "1a31dad35cfa84aa2d1381a6777c1ed9eb765fe3",
      "parents": [
        "f3034d6f7754eefcebd5df76657082344fc629ee"
      ],
      "author": {
        "name": "Said Abou-Hallawa",
        "email": "said@apple.com",
        "time": "Thu Apr 25 19:48:54 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Thu Apr 25 20:04:55 2024"
      },
      "message": "Frame rate detection on MotionMark occasionally sees older devices as 90 fps instead of 60\nhttps://github.com/WebKit/MotionMark/issues/50\nrdar://127012351\n\nTo get the target frame rate we sample 300 rAFs and we get the average of their\nframe rates. We calculate the average incrementally using some sort of exponential\ndecay. The average starts very small but keeps increasing until it reaches the\nactual target frame rate and it is supposed to stay unchanged much. Then we compare\nthe final average rate with predefined frame rates and get the closest one.\n\nThe purpose of this incremental calculation was to show the target frame rate\nbeing calculated in the detectionProgressElement in the developer page.\n\nIn addition to having the incremental average very small for more than 100 frames,\nthe bigger problem is this incremental average calculation gives more weight to\nthe last frame. And if it is considerably large for any reason, the final average\nwill be wildly inaccurate.\n\nThe fix is to simplify the calculations:\n\n1. For count \u003d\u003d 0: The firstTimeStamp will be recorded and and we won\u0027t update\n   the detectionProgressElement.\n\n2. For count \u003e 0:\n   averageFrameLength \u003d (timestamp - firstTimeStamp) / count;\n   averageFrameRate \u003d 1000 / averageFrameLength;\n"
    },
    {
      "commit": "f3034d6f7754eefcebd5df76657082344fc629ee",
      "tree": "1c20afcd860db7faf743b05ad132c3db52d9b56b",
      "parents": [
        "3f6115f9ea26fc74e723cb2eb55580dd93bac3d9"
      ],
      "author": {
        "name": "Scott Violet",
        "email": "sky@google.com",
        "time": "Fri Apr 05 17:05:03 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Mon Apr 15 17:08:20 2024"
      },
      "message": "x\n"
    },
    {
      "commit": "3f6115f9ea26fc74e723cb2eb55580dd93bac3d9",
      "tree": "07116ec084f653946a65f93f5f1c22c6e246db8f",
      "parents": [
        "d5d550272ea2afe1b5707c0c4b2223ede54b4827"
      ],
      "author": {
        "name": "vmiura",
        "email": "vmiura@google.com",
        "time": "Mon Feb 26 17:33:06 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Thu Mar 14 20:13:37 2024"
      },
      "message": "Fixes #43: Initialize canvas size when running benchmarks directly\n"
    },
    {
      "commit": "d5d550272ea2afe1b5707c0c4b2223ede54b4827",
      "tree": "0f8a9af7d6ac2ef01af621cf6bb203bbbb7e4a45",
      "parents": [
        "869e97cbcf2468bb84e9d3a286c841eaa8b834ff"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Jan 10 20:02:35 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Jan 10 20:02:35 2024"
      },
      "message": "Add more changes to the 1.3 change list in the about page\n"
    },
    {
      "commit": "869e97cbcf2468bb84e9d3a286c841eaa8b834ff",
      "tree": "2b7799d5fcbfd2df557c7e2664250a55fcb6d1fb",
      "parents": [
        "37c610115c8c3fae8a74a18305727064c1fd4edc"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Jan 10 19:27:06 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Jan 10 19:51:51 2024"
      },
      "message": "Fixed complexity runs throw an error\n\nThe `Controller` base class was trying to call `_previousFrameComplexity()` which\nwas only implemented on the `RampController` subclass.\n\nSince the `Controller` base class allocates the `Samples` object and records samples,\nwe know that all subclasses use the same sample format, so we can move the helper\nfunctions that access sample data into the `Controller` class.\n"
    },
    {
      "commit": "37c610115c8c3fae8a74a18305727064c1fd4edc",
      "tree": "3f194e22a990e2a370e66b6c3793634488397187",
      "parents": [
        "c401061575ae378480e7b2030028cf73515a8519"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Tue Jan 09 03:39:53 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Tue Jan 09 06:04:53 2024"
      },
      "message": "Ignore mutation frames when scoring\n\nThe RampController works by repeatedly changing the scene complexity, while measuring some\nnumber of animated frames at each complexity level. Currently, it tracks the duration of\nboth the mutation frames, and the animation frames, and both contribute to the score.\n\nThis has two issues: first, it increases noise in the results because there are two types\nof frames, and the mutation frames generally take longer. This noise can throw off the\nregression computation used to compute the score.\n\nSecond, it\u0027s not the intent of this benchmark to measure DOM mutation performance.\nMotionMark is focused on animation, so it makes sense to only measure the animation\nframes.\n\nThis change is implemented by having RampController keep track of which are the first\nframes after a complexity change, via `this._previousFrameComplexity`. Each frame is\nannotated as a \"mutation\" frame or an \"animation\" frame, which is stored as the first item\nin each sample.\n\nAt the two locations where we compute Regressions, we filter out the mutation frames so\nthat only animation frames contribute to the regression computations, and therefore the\nfinal score.\n\nAll frames are present in the output JSON, with \"m\" or \"a\" annotations. Mutation frames\nare colored gray in the complexity graph.\n"
    },
    {
      "commit": "c401061575ae378480e7b2030028cf73515a8519",
      "tree": "74c80390b7333b1061195d6b43d527d481e5640e",
      "parents": [
        "da952728b532387c1d93789f36a44115e2d3cb84"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Tue Jan 09 00:43:34 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Tue Jan 09 02:46:08 2024"
      },
      "message": "Simplify regression computation\n\nThe Regression class took index and function arguments to extract complexity and frame\nlength from the supplied data, which makes it hard to adjust in the face of frame skipping\nwhich will come in a future patch.\n\nSimplify by having the Regression class operate on a self-contained Array of x,y values\n(here, complexity and frame length). This also allows for removal of the complex logic\nthat tracks if it\u0027s iterating forwards or backwards.\n\nThe two callers, in `RampController` and `calculateScore()`, build the input Array\nby copying out of their respective data stores.\n\nThere should be no behavior change.\n"
    },
    {
      "commit": "da952728b532387c1d93789f36a44115e2d3cb84",
      "tree": "c5f180869834947651d4abef00e25f0b0ac8d956",
      "parents": [
        "b9253e7f262b545164fa6b996f6316542452af83"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Sun Jan 07 18:58:10 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Jan 08 23:45:49 2024"
      },
      "message": "The first frame of each ramp has an erroneously long frame duration\n\n`RampController.didFinishInterval()` is called before `Controller.update()`\ncalls `this._sampler.record()`. This results in _rampStartIndex being off by one,\npointing to the frame before start of the ramp, which in turn causes us to compute\na long frame duration for this frame. This long frame feeds into the ramp controller\nregression computation, throwing it off slightly, and adding noise.\n\nFix by having `Controller.update()` call `_sampler.record()` before it calls\n`didFinishInterval()`, which requires calling `_sampler.record()` in each of\nthe three code paths.\n"
    },
    {
      "commit": "b9253e7f262b545164fa6b996f6316542452af83",
      "tree": "02a7ca090daea58a261bfb28103c1537baccbb6b",
      "parents": [
        "d8685021ab4ffcd70f2bad1bbb24cac0adc96a79"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Jan 08 21:55:04 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Jan 08 23:42:36 2024"
      },
      "message": "Clarify sample indexing in main.js\n\nUse named constants to index into the `samples` data, instead of inscrutable\n`samples[1][i]` etc.\n\nUse `sampleTimeIndex` etc for values used to index into `samples` data.\nUse `processedSampleTimeIndex` etc for values used to build `controllerSamples`.\n"
    },
    {
      "commit": "d8685021ab4ffcd70f2bad1bbb24cac0adc96a79",
      "tree": "1ca9ac78452ffc02025f180cc6a18198bd28b811",
      "parents": [
        "d51d4b2d7556cf24d9be22e186b192258bb00bf6"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Jan 08 19:24:49 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Jan 08 23:28:22 2024"
      },
      "message": "Fix the frame rate axis of the time graph\n\nThe time graph right-hand Y scale (frame rate) currently has a lower bound of 30fps,\nbut the complexity graph has a lower bound of 15fps. Fix the time graph to use the\nsame lower bound, so that full ramps are visible.\n"
    },
    {
      "commit": "d51d4b2d7556cf24d9be22e186b192258bb00bf6",
      "tree": "834cdd10bf5642914261b04ccec4db180aa4f6b7",
      "parents": [
        "2b2e9d4e89dbd83922e7960872e8ad5f2d23d043"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Fri Jan 05 22:13:16 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Fri Jan 05 22:16:40 2024"
      },
      "message": "Update the About page and add a non-60fps warning on the front page.\n\nUpdate the About page to suggest changing the display refresh frequency to 60fps\nif comparing browsers.\n\nRemove Focus from the list of subtests described.\n\nAdd the full list of 1.3 changes, linking to GitHub commits.\n\nOn the front page, if frame-rate detection detects a non-60fps rate, fix\nthe label below the Run button to suggest changing the display refresh rate.\n"
    },
    {
      "commit": "2b2e9d4e89dbd83922e7960872e8ad5f2d23d043",
      "tree": "1e28f11fdc665c5606c1b11b46390883be0b7aa5",
      "parents": [
        "465dd49026a40a7bd8d30d64a264492165c711e8"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Fri Jan 05 19:00:46 2024"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Fri Jan 05 19:04:40 2024"
      },
      "message": "On faster machines, the Multiply test can max out and stop producing useful results.\n\nf5d127cff37d174599ab4e954a6ebfbb7787aeb8 increased the number of rows to 55, but\ntesting shows that 68 is a better value to leave some headroom for future faster\nhardware and software.\n"
    },
    {
      "commit": "465dd49026a40a7bd8d30d64a264492165c711e8",
      "tree": "dbee7998f76b0823209b118725ea28b92f7bfc44",
      "parents": [
        "c0a884c2df3287362a126484cd8c07c940015463"
      ],
      "author": {
        "name": "vmiura",
        "email": "vmiura@google.com",
        "time": "Mon Dec 18 22:36:15 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Fri Jan 05 18:56:58 2024"
      },
      "message": "Make the \u0027slope\u0027 profile the default profile.\n\nThe \u0027flat\u0027 profile was added back in https://commits.webkit.org/177081@main  to work around issues in a test that is no longer used.\n\nThe consensus is that the \u0027flat\u0027 profile can generate bad estimated results. Remove this as a fallback profile.\n\nFixes #32\n"
    },
    {
      "commit": "c0a884c2df3287362a126484cd8c07c940015463",
      "tree": "184b40d6e795b8dee5e43f4bd598f0636b0b0a87",
      "parents": [
        "ff00967f5d6e92624d4e50e92f719a5ad7de95b7"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Fri Aug 18 00:11:21 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Fri Jan 05 18:51:27 2024"
      },
      "message": "Automatic frame rate detection\n\nFrame rate detection was added in this commit:\nhttps://github.com/WebKit/MotionMark/commit/85ca394752860796c5fde10145921a656c398660\nbut in a way that only worked in developer.html, and had various bugs.\n\nThis change makes automatic frame rate detection work in the same way when the benchmark is run from\nindex.html and developer.html. The `determineFrameRate` function is moved to\n`window.benchmarkController`, and called from the `initialize` functions in both cases; code is\nadded so that the button to run the benchmark is disabled until detection is complete; a label shows\nthe detected fps, or an error message in the event of failure.\n\nFor historical reasons, `developer.html` initialized `frame-rate` to 5/6 of `system-frame-rate`,\nresulting in a targetFPS of 50 when run from `developer.html`, which was different from the\n60fps target when run normally. Remove this so that targetFPS always matches system frame rate.\n\nThere was a lot of messiness in how targetFrameRate was propagated through the benchmark, and the\nanalysis functions, with lots of `|| 60` fallbacks. This change removes all those fallbacks, making\nerrors obvious when we would have silently fallen back to 60. So `options[\"frame-rate\"]` and\n`options[\"system-frame-rate\"]` should always be defined. (`system-frame-rate` only differs from\n`frame-rate` if the user makes changes in developer.html.)\n\nThe analysis functions use `targetFPS` everywhere. `calculateScore` had an insidious bug where we\u0027re\ntry to read `_targetFrameRate` off the wrong `this` object.\n\nWhen importing an older JS file that does not contain any frame-rate data, assume 60fps (and log).\n"
    },
    {
      "commit": "ff00967f5d6e92624d4e50e92f719a5ad7de95b7",
      "tree": "6f29787c379c0bd49a9f795b41cb0ce27575bd4f",
      "parents": [
        "3090053c0fca81a9feb037075ef934275c690f3e"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Aug 23 01:23:08 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Fri Jan 05 18:33:25 2024"
      },
      "message": "Fix instability in the Design subtest\n\nThe Design subtest projects out copies of a `\u003ctable\u003e` along a ray, where the step between copies is\nconstant, so the longest distance increases with test complexity. At higher complexities, this\nresults in clipping at the document boundary.\n\nThis clipping makes rendering additional copies cheap (since they are clipped out), which can result\nin the test computing artificially high complexities. This results in noisy or inaccurate test\nscores.\n\nFix by using a max distance computed from the height of the template element, and then spacing\nout the copies out to that distance. This ensures that all copies are inside the viewport. Adjust\nthe layout, shrinking the table vertically a little so there\u0027s more space for copies above and\nbelow, where it tends to clip.\n\nhttps://github.com/WebKit/MotionMark/pull/24\n"
    },
    {
      "commit": "3090053c0fca81a9feb037075ef934275c690f3e",
      "tree": "733b61238d94dc714ac49972d0743bc5f58225b3",
      "parents": [
        "9edd41ad33d24cc10b60576b8eb9626178f66122"
      ],
      "author": {
        "name": "vmiura",
        "email": "vmiura@google.com",
        "time": "Tue Oct 24 17:39:18 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Thu Jan 04 23:53:38 2024"
      },
      "message": "Make the \u0027Paths\u0027 test workload more consistent\n\nThis test fixes a gradual change in the number of points having isSplit\u003dtrue\nfrom 5% to 50% of points by starting with 50% of points with isSplit\u003dtrue.\n\nFixes #30\n"
    },
    {
      "commit": "9edd41ad33d24cc10b60576b8eb9626178f66122",
      "tree": "c5d42d0f816336c655bfd03f21315c6b181390ed",
      "parents": [
        "f7e7ee3cd683b5d1715f60f1a652224a9c4c72d4"
      ],
      "author": {
        "name": "vmiura",
        "email": "vmiura@google.com",
        "time": "Tue Oct 24 17:10:35 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Thu Jan 04 23:47:40 2024"
      },
      "message": "Use \u0027display\u0027 style as the default visibility property for the Multiply test.\n\nThe Multiply test currently supports three different visibility property\noptions: opacity, display, visibility. The default behavior with no option\nspecified is to alternate between all three.\n\nThis change makes the \u0027display\u0027 property the default \u0027display\u0027\n\nhttps://github.com/WebKit/MotionMark/pull/29\n"
    },
    {
      "commit": "f7e7ee3cd683b5d1715f60f1a652224a9c4c72d4",
      "tree": "db4d169251c889408e8a699bc73bd63e24691793",
      "parents": [
        "09981e71d0305ea0c3fd9b5b1d38bfb5f8878fc4"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Fri Sep 15 18:15:21 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Sep 15 18:22:14 2023"
      },
      "message": "Fix iOS orientation detection\n\ndeveloper.html and index.html used a different class name for the \"Please rotate\nyour device\" tag, and the start button. This caused the JS to throw exceptions when\nrunning the orientation detection code.\n\nSo standardize these classes and ids between developer.html and index.html.\n"
    },
    {
      "commit": "09981e71d0305ea0c3fd9b5b1d38bfb5f8878fc4",
      "tree": "4b120e0ec5651ffd9a70632e9b4e755a11a36f26",
      "parents": [
        "135a09228e989d5a6fe57d45f07008ed29e965e7"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Fri Aug 18 00:38:42 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Fri Aug 18 01:01:27 2023"
      },
      "message": "Detab some files\n\nConvert some tabs that I added by mistake to spaces.\n"
    },
    {
      "commit": "135a09228e989d5a6fe57d45f07008ed29e965e7",
      "tree": "e4540e5f470e22c5bbb023c1cc83afe037191583",
      "parents": [
        "9aff6313086b51098d737ba79c6052f0afb71049"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Thu Aug 17 01:42:34 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Thu Aug 17 19:40:31 2023"
      },
      "message": "Fix the graph display\n\nThis change fixes various issues in the graph display.\n\nFirst, the graphs overflowed the page and triggered scrolling. Fix by using flex layout for\n`#test-graph .body`, with a fixed-height header, and a flexible `#test-graph-data` element.\nGraph layout uses getBoundingClientRect() on that lower box, using the result to size the\nSVG. To make this work, the header has to have the final height, so pre-fill header fields\nwith a non-breaking space so they have height before they get the actual values (which\nhappens after graph building).\n\nSecond, the graphs were hardcoded for 60fps. Make them scale for other frame rates,\nsupplying some reasonable set of axis labels for common frame rates, and computing a\nset otherwise.\n"
    },
    {
      "commit": "9aff6313086b51098d737ba79c6052f0afb71049",
      "tree": "0923d21f1ca972b62be864e98188132355f82766",
      "parents": [
        "aa76e5e565177477ce7d2dc48737165986bda0a3"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Aug 16 18:37:49 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Wed Aug 16 18:41:11 2023"
      },
      "message": "Make the JS formatting consistent. No behavior changes.\n"
    },
    {
      "commit": "aa76e5e565177477ce7d2dc48737165986bda0a3",
      "tree": "40ff0324069062604f322e0b1ce0173329866c31",
      "parents": [
        "25af4aa6bb1016753f6701848fe5a3b5a34a5d13"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Aug 16 18:31:26 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Wed Aug 16 18:40:59 2023"
      },
      "message": "tests/core/focus.html is unused #15\n\nWe removed the focus test from the core suite. This file can be removed. A version of this test still exists at dom/focus.html.\n\nResolves https://github.com/WebKit/MotionMark/issues/15.\n"
    },
    {
      "commit": "25af4aa6bb1016753f6701848fe5a3b5a34a5d13",
      "tree": "814decadd5cc99d33df07bfa30d66db330255f8c",
      "parents": [
        "1d4b784bc13057d74984db6430958e1deef85e6b"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Aug 16 18:18:31 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Wed Aug 16 18:27:29 2023"
      },
      "message": "There are two files called \"motionmark.js\" so rename one of them #13\n\nThere exists runner/motionmark.js and debug-runner/motionmark.js and it\u0027s really hard to keep track of which is which when editing files.\n\nThis change renames debug-runner/motionmark.js to debug-runner/debug-runner.js\n\nhttps://github.com/WebKit/MotionMark/issues/13\n"
    },
    {
      "commit": "1d4b784bc13057d74984db6430958e1deef85e6b",
      "tree": "2669b33c71082cd7cd71c1b3814db9281f66433d",
      "parents": [
        "283c04e775ee7a1a03d35a236910c244df7a8fec"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Wed Aug 16 17:03:40 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "smfr@users.noreply.github.com",
        "time": "Wed Aug 16 18:27:05 2023"
      },
      "message": "Rename the \"master\" directory to \"core\" #8\n\nThis directory contains the “core” set of tests.\n\nFixes https://github.com/WebKit/MotionMark/issues/8\n"
    },
    {
      "commit": "283c04e775ee7a1a03d35a236910c244df7a8fec",
      "tree": "758605745f227016a16998b18457584695ccba50",
      "parents": [
        "85ca394752860796c5fde10145921a656c398660"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Aug 14 22:47:25 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Aug 14 22:47:25 2023"
      },
      "message": "MotionMark: improve drag and drop feedback on developer page\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d260099\nrdar://113772977\n\nReviewed by Tim Nguyen.\n\nThe MotionMark developer.html page allows you to drag and drop a JSON file, but\nthe drop target didn\u0027t highlight on drag-over, and there was no feedback after dropping,\neven though things can be processing for a few seconds. So fix both issues.\n\n* PerformanceTests/MotionMark/resources/debug-runner/motionmark.css:\n(#drop-target.drag-over):\n(#drop-target:hover): Deleted.\n* PerformanceTests/MotionMark/resources/debug-runner/motionmark.js:\n"
    },
    {
      "commit": "85ca394752860796c5fde10145921a656c398660",
      "tree": "7274b65e9b99379a3edd5b4456c4bb7d1bcbbaab",
      "parents": [
        "f5d127cff37d174599ab4e954a6ebfbb7787aeb8"
      ],
      "author": {
        "name": "Dean Jackson",
        "email": "dino@apple.com",
        "time": "Mon Aug 14 22:37:19 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Aug 14 22:37:19 2023"
      },
      "message": "Support non-60 frame rates in MotionMark\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d244656\n\u003crdar://problem/99416135\u003e\n\nReviewed by Said Abou-Hallawa.\n\nSome devices have refresh rates that are not 60fps (like ProMotion @ 120Hz),\nand run requestAnimationFrame at that speed. Update MotionMark so that:\n\n- it doesn\u0027t hard-code 60fps everywhere\n- it attempts to detect the system frame rate\n- the results make it clear what frame rate the tests were using\n\n* PerformanceTests/MotionMark/developer.html:\n\tAdd the system frame rate and some related text.\n* PerformanceTests/MotionMark/resources/debug-runner/graph.js:\n\tGet the graphing component to read the frame rate provided\n\tby the results.\n(updateGraphData):\n(createComplexityGraph):\n(onGraphTypeChanged):\n* PerformanceTests/MotionMark/resources/debug-runner/motionmark.css:\n(#frame-rate-detection span): Make this red when we\u0027re in progress.\n* PerformanceTests/MotionMark/resources/debug-runner/motionmark.js:\n\tDetect the system frame rate.\n* PerformanceTests/MotionMark/resources/runner/motionmark.css:\n(section .body p): This text got longer, so give it a max-width.\n* PerformanceTests/MotionMark/resources/runner/motionmark.js:\n\tAdd support for variable frame rates where necessary.\n* PerformanceTests/MotionMark/resources/statistics.js:\n\tDitto.\n* PerformanceTests/MotionMark/resources/strings.js:\n\tAdd a new string.\n* PerformanceTests/MotionMark/tests/resources/main.js:\n\tSupport for variable rates.\n\n[Note that this doesn\u0027t enable auto framerate detection when not running from\ndeveloper.html]\n\nCanonical link: https://commits.webkit.org/254133@main\n"
    },
    {
      "commit": "f5d127cff37d174599ab4e954a6ebfbb7787aeb8",
      "tree": "b75a8b9b8e6644a8b44aa7ab2db2aed4931ea219",
      "parents": [
        "06acb93278c60d3c7ecb03fddf83d6c7de77ae67"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Aug 14 22:32:00 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Aug 14 22:32:00 2023"
      },
      "message": "MotionMark\u0027s multiply suite may generate incorrect score when requestAnimationFrame runs at 120hz\n\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d240605\n\nReviewed by Simon Fraser.\n\nThis effectively increases the maximum complexity. Doing this for\ntwo reasons: both Chrome and Safari are getting close to the maximum\ncomplexity. Increasing the complexity ensures Chrome is scored\ncorrectly when requestAnimationFrame runs at 120Hz.\n\nMerge from https://commits.webkit.org/251810@main\n\n* PerformanceTests/MotionMark/tests/master/resources/multiply.js:\nIncreases complexity.\n"
    },
    {
      "commit": "06acb93278c60d3c7ecb03fddf83d6c7de77ae67",
      "tree": "e4ced19f2c2bcf0dc1f2f2d61b090e120e3e316a",
      "parents": [
        "27f9a75f68158130f866773d10eef05eff804a79"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Aug 14 21:29:22 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Aug 14 21:29:22 2023"
      },
      "message": "Migrate MotionMark 1.2 from its own directory to the common MotionMark directory.\n"
    },
    {
      "commit": "27f9a75f68158130f866773d10eef05eff804a79",
      "tree": "a23e9cab565448585a6195ca698589bf70a43c8d",
      "parents": [
        "c96e17f85c47fb4120ebe6e78ec9c265cc9e5384"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Aug 14 21:27:25 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Aug 14 21:27:25 2023"
      },
      "message": "Migrate MotionMark 1.1 from its own directory to the common MotionMark directory.\n"
    },
    {
      "commit": "c96e17f85c47fb4120ebe6e78ec9c265cc9e5384",
      "tree": "1d4a447c7c9aded6eae645fe29d4e6bbf1381b12",
      "parents": [
        "7d35327959ee382e2f42bde0fc8e9935c2f32d73"
      ],
      "author": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Aug 14 21:24:31 2023"
      },
      "committer": {
        "name": "Simon Fraser",
        "email": "simon.fraser@apple.com",
        "time": "Mon Aug 14 21:24:31 2023"
      },
      "message": "Prepare for a future where the “MotionMark” directory represents the current, in-development version of the benchmark, and branches and tags are used for releases.\n\nHave the index.html redirect point to “MotionMark”, and mark the version as “development.\n"
    },
    {
      "commit": "7d35327959ee382e2f42bde0fc8e9935c2f32d73",
      "tree": "09aed9f980ec0373fad6c3bfa6fc6595429baf2d",
      "parents": [
        "623628c1b730954258ac2b07a0a44367a3869377"
      ],
      "author": {
        "name": "Brian Grinstead",
        "email": "briangrinstead@gmail.com",
        "time": "Sat Jul 08 00:11:26 2023"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 08 00:11:26 2023"
      },
      "message": "add index.html that redirects to MotionMark1.2. fixes #2 (#3)\n\n"
    },
    {
      "commit": "623628c1b730954258ac2b07a0a44367a3869377",
      "tree": "28723ffd78e6b217f18d5686a6db11e95c057e75",
      "parents": [
        "74754aa405f30816062bc0b3a87c29bba6ecafe9"
      ],
      "author": {
        "name": "Myles C. Maxfield",
        "email": "mmaxfield@apple.com",
        "time": "Fri Jun 09 06:43:08 2023"
      },
      "committer": {
        "name": "Myles C. Maxfield",
        "email": "mmaxfield@apple.com",
        "time": "Fri Jun 09 06:43:08 2023"
      },
      "message": "Populate governance document\n"
    },
    {
      "commit": "74754aa405f30816062bc0b3a87c29bba6ecafe9",
      "tree": "28f789caf08ed432bed752db0dabe9ee7d3caa1b",
      "parents": [
        "4239aea3ceeb1bbbf1fac99617fb82336ecfc1ea"
      ],
      "author": {
        "name": "Myles C. Maxfield",
        "email": "mmaxfield@apple.com",
        "time": "Sat May 13 02:34:27 2023"
      },
      "committer": {
        "name": "Myles C. Maxfield",
        "email": "mmaxfield@apple.com",
        "time": "Sat May 13 02:34:27 2023"
      },
      "message": "Add new repository skeleton files\n"
    },
    {
      "commit": "4239aea3ceeb1bbbf1fac99617fb82336ecfc1ea",
      "tree": "3c715661068ae7ca42755dd4175e1d36835d51a1",
      "parents": [
        "4710d7498e27cb972971fefcebd781f2c4745a0d"
      ],
      "author": {
        "name": "Myles C. Maxfield",
        "email": "mmaxfield@apple.com",
        "time": "Fri Mar 31 00:41:30 2023"
      },
      "committer": {
        "name": "Myles C. Maxfield",
        "email": "mmaxfield@apple.com",
        "time": "Fri Mar 31 00:41:30 2023"
      },
      "message": "[MotionMark] Live version of 4 tests just show a 403 Access Denied page\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d254782\nrdar://107208247\n\nReviewed by Alexey Proskuryakov.\n\nApparently, the firewall that the live MotionMark site is behind doesn\u0027t like it when paths that include\nthe \"../\" string are part of query parameters in URLs. Luckily, MotionMark is already set up to do the right\nthing when the query parameter is omitted, so this patch just deletes those query parameters and uses the\ntest-specific logic to fall back to the correct string anyway.\n\n* Websites/browserbench.org/MotionMark1.2/resources/debug-runner/tests.js:\n* Websites/browserbench.org/MotionMark1.2/tests/bouncing-particles/resources/bouncing-canvas-images.js:\n(BouncingCanvasParticlesStage.call.initialize):\n* Websites/browserbench.org/MotionMark1.2/tests/bouncing-particles/resources/bouncing-svg-images.js:\n(BouncingSvgParticlesStage.call.initialize):\n\nCanonical link: https://commits.webkit.org/262382@main\n"
    },
    {
      "commit": "4710d7498e27cb972971fefcebd781f2c4745a0d",
      "tree": "e5f4c5d81245b8351e393e8ceddcbdc371da6370",
      "parents": [
        "2da3a8b47bce34bb4380626ccf7422fbf59c897a"
      ],
      "author": {
        "name": "Myles C. Maxfield",
        "email": "mmaxfield@apple.com",
        "time": "Fri Jun 04 16:36:34 2021"
      },
      "committer": {
        "name": "Myles C. Maxfield",
        "email": "mmaxfield@apple.com",
        "time": "Fri Jun 04 16:36:34 2021"
      },
      "message": "[MotionMark] Publish r278436 as a part of MotionMark 1.2\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d226626\n\nReviewed by Simon Fraser.\n\nController.filterOutOutliers must pass a compare function to Array.sort()\nbecause it filters an array of numbers.\n\n* MotionMark1.2/tests/resources/main.js:\n(filterOutOutliers):\n\n\nCanonical link: https://commits.webkit.org/238487@main\ngit-svn-id: https://svn.webkit.org/repository/webkit/trunk@278467 268f45cc-cd09-0410-ab3c-d52691b4dbfc\n"
    },
    {
      "commit": "2da3a8b47bce34bb4380626ccf7422fbf59c897a",
      "tree": "debd92c0d6cddd6e02de1e8821ed5c665c0bcafa",
      "parents": [
        "e174a0f44e8a3d99c267664dd26d567d1eead38d"
      ],
      "author": {
        "name": "Myles C. Maxfield",
        "email": "mmaxfield@apple.com",
        "time": "Wed May 12 23:27:30 2021"
      },
      "committer": {
        "name": "Myles C. Maxfield",
        "email": "mmaxfield@apple.com",
        "time": "Wed May 12 23:27:30 2021"
      },
      "message": "[MotionMark] Apply r277406 to Websites/browserbench.org/MotionMark1.2\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d225722\n\nRubber-stamped by Geoffrey Garen.\n\nJust copy over the change, so the website gets updated.\n\nThis doesn\u0027t bump the version number, which is okay, because we never actually\n\"released\" version 1.2; we just made a folder on a website, and didn\u0027t update any\nlinks to point to it.\n\n* MotionMark1.2/resources/runner/tests.js:\n\nCanonical link: https://commits.webkit.org/237659@main\ngit-svn-id: https://svn.webkit.org/repository/webkit/trunk@277409 268f45cc-cd09-0410-ab3c-d52691b4dbfc\n"
    },
    {
      "commit": "e174a0f44e8a3d99c267664dd26d567d1eead38d",
      "tree": "030cb0f57662a9a772af38ba4cf0dbf2b46eb1a6",
      "parents": [
        "dbcfbd84e89181bca193ecb2bd46dc4c559b9355"
      ],
      "author": {
        "name": "Myles C. Maxfield",
        "email": "mmaxfield@apple.com",
        "time": "Mon May 03 03:11:56 2021"
      },
      "committer": {
        "name": "Myles C. Maxfield",
        "email": "mmaxfield@apple.com",
        "time": "Mon May 03 03:11:56 2021"
      },
      "message": "Copy PerformanceTests/MotionMark to WebSites/browserbench.org/MotionMark1.2\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d225287\n\nReviewed by Maciej Stachowiak and Ryosuke Niwa.\n\nThis patch copies the files, and also updates the version in WebSites/browserbench.org\nto \"1.2.\" It also updates the \"about\" page to include a description of the changes.\n\nNo existing links have been updated to point to this new version.\n\n* MotionMark1.2/about.html: Added.\n* MotionMark1.2/developer.html: Added.\n* MotionMark1.2/index.html: Added.\n* MotionMark1.2/resources/debug-runner/d3.min.js: Added.\n* MotionMark1.2/resources/runner/benchmark-runner.js: Added.\n(BenchmarkRunnerState.Utilities.createClass):\n(this.next.currentSuite):\n(this.next.currentTest):\n(this.next.isFirstTest):\n(this.next.next):\n(this.next.frame.onload):\n(this.next.prepareCurrentTest):\n(this.next):\n(BenchmarkRunner.Utilities.createClass):\n(_appendFrame):\n(_removeFrame):\n(_runBenchmarkAndRecordResults):\n(step):\n(runAllSteps):\n(this._runNextIteration):\n(runMultipleIterations):\n(_finalize):\n* MotionMark1.2/resources/runner/crystal.svg: Added.\n* MotionMark1.2/resources/runner/lines.svg: Added.\n* MotionMark1.2/resources/runner/logo.svg: Added.\n* MotionMark1.2/resources/runner/motionmark.css: Added.\n(html,):\n(body):\n(body.showing-intro,):\n(body.showing-test-container):\n(body.images-loaded):\n(@media screen and (min-width: 667px) body):\n(@media screen and (min-width: 667px) body.showing-intro,):\n(@media screen and (min-width: 1025px) body.showing-intro,):\n(::selection):\n(.hidden):\n(section):\n(section.selected):\n(.logo):\n(.logo svg):\n(.logo div):\n(body.images-loaded .logo svg):\n(@media screen and (min-width: 667px) .logo svg):\n(@media screen and (min-width: 667px) .logo div):\n(section .body):\n(section .body p):\n(@media screen and (min-width: 667px) section .body):\n(@media screen and (min-width: 667px) section button):\n(button):\n(body.images-loaded button):\n(button:hover):\n(button:active):\n(button:disabled):\n(@media print button):\n(.portrait-orientation-check):\n(@media screen and (max-device-width: 1025px) and (orientation: portrait) .portrait-orientation-check):\n(@media screen and (max-device-width: 1025px) and (orientation: portrait) .landscape-orientation-check):\n(@keyframes background-fade):\n(@keyframes background-color):\n(12%, 20%):\n(22%, 30%):\n(32%, 40%):\n(42%, 50%):\n(52%, 60%):\n(62%, 70%):\n(72%, 80%):\n(82%, 90%):\n(92%, 100%):\n(@keyframes foreground-color):\n(#intro, #about):\n(#intro):\n(body.images-loaded #intro):\n(#about .body):\n(#about li):\n(#about button):\n(#about h3):\n(#about #log):\n(#about #log li):\n(@media screen and (min-width: 667px) #about .body):\n(@media screen and (min-width: 667px) #about ol, #about ul):\n(#intro a, #about a,):\n(.frame-container):\n(.frame-container \u003e iframe):\n(body.small .frame-container):\n(body.medium .frame-container):\n(body.large .frame-container):\n(#results):\n(#results .body):\n(#results .score-container):\n(#results .table-container):\n(#results .table-container \u003e div):\n(#results .score):\n(#results .confidence):\n(#results table):\n(#results table td,):\n(#results table td.suites-separator):\n(#results table tr:nth-child(even)):\n(#results #results-header):\n(#results #results-score):\n(#results #results-data span):\n(#results #results-header td,):\n(#results #results-score td,):\n(#results #results-score td):\n(@media screen and (min-width: 667px) #results .score,):\n(.detail span):\n(body.small .detail .small,):\n(#overlay):\n(@supports (-webkit-backdrop-filter: blur(10px))):\n(#overlay \u003e div):\n(#overlay \u003e div div):\n* MotionMark1.2/resources/runner/motionmark.js: Added.\n(ResultsDashboard.Utilities.createClass):\n(this._processData.push):\n(this._processData._processData):\n(this._processData.findRegression):\n(this._processData.):\n(this._processData.calculateScore):\n(this._processData.get data):\n(this._processData.get results):\n(this._processData.get options):\n(this._processData.get version):\n(this._processData._getResultsProperty):\n(this._processData.get score):\n(this._processData.get scoreLowerBound):\n(this._processData.get scoreUpperBound):\n(this._processData):\n(ResultsTable.Utilities.createClass):\n(this.clear.clear):\n(this.clear._addHeader):\n(this.clear._addBody):\n(this.clear._addEmptyRow):\n(this.clear):\n(this.clear._addIteration):\n(this.clear.showIterations):\n(window.benchmarkRunnerClient.initialize):\n(window.benchmarkRunnerClient.willStartFirstIteration):\n(window.benchmarkRunnerClient.didRunSuites):\n(window.benchmarkRunnerClient.didRunTest):\n(window.benchmarkRunnerClient.didFinishLastIteration):\n(window.sectionsManager.showSection):\n(window.sectionsManager.setSectionVersion):\n(window.sectionsManager.setSectionScore):\n(window.sectionsManager.populateTable):\n(window.benchmarkController.initialize):\n(window.benchmarkController.determineCanvasSize):\n(window.benchmarkController.addOrientationListenerIfNecessary):\n(window.benchmarkController._orientationChanged):\n(window.benchmarkController.updateStartButtonState):\n(window.benchmarkController._startBenchmark):\n(window.benchmarkController.startBenchmark):\n(window.benchmarkController.showResults):\n(window.benchmarkController.handleKeyPress):\n(window.benchmarkController.hideDebugInfo):\n(window.benchmarkController.data.onclick):\n(window.benchmarkController.button.onclick):\n(window.benchmarkController.showDebugInfo):\n(window.benchmarkController.selectResults):\n* MotionMark1.2/resources/runner/tests.js: Added.\n(Headers.details.text):\n(Suite):\n(suiteFromName):\n* MotionMark1.2/resources/statistics.js: Added.\n(Pseudo.resetRandomSeed):\n(Pseudo.random):\n(Statistics.sampleMean):\n(Statistics.unbiasedSampleStandardDeviation):\n(Statistics.geometricMean):\n(Statistics.cdf):\n(Statistics.erf):\n(Statistics.largestDeviationPercentage):\n(Experiment.Utilities.createClass):\n(this.reset.reset):\n(this.reset.get sampleCount):\n(this.reset.sample):\n(this.reset.mean):\n(this.reset.standardDeviation):\n(this.reset.cdf):\n(this.reset.percentage):\n(this.reset.concern):\n(this.reset.score):\n(this.reset):\n(Regression.Utilities.createClass):\n(valueAt):\n(setBest):\n(_calculateRegression):\n(bootstrap):\n* MotionMark1.2/resources/strings.js: Added.\n* MotionMark1.2/tests/3d/resources/webgl.js: Added.\n(Stage.call.initialize):\n(Stage.call._getFunctionSource):\n(Stage.call._resetIfNecessary):\n(Stage.call.tune):\n(Stage.call.animate):\n(Stage.call.complexity):\n(Stage.call):\n* MotionMark1.2/tests/3d/resources/webgpu.js: Added.\n(constant.float.uniforms.register):\n(Stage.call.initialize):\n(Stage.call._getFunctionSource):\n(Stage.call._resetIfNecessary):\n(Stage.call.tune):\n(Stage.call.animate):\n(Stage.call.complexity):\n(Stage.call):\n(new.WebGLStage.waitUntilReady):\n(new.WebGLStage):\n* MotionMark1.2/tests/3d/triangles-webgl.html: Added.\n* MotionMark1.2/tests/3d/triangles-webgpu.html: Added.\n* MotionMark1.2/tests/bouncing-particles/bouncing-canvas-images.html: Added.\n* MotionMark1.2/tests/bouncing-particles/bouncing-canvas-shapes.html: Added.\n* MotionMark1.2/tests/bouncing-particles/bouncing-css-images.html: Added.\n* MotionMark1.2/tests/bouncing-particles/bouncing-css-shapes.html: Added.\n* MotionMark1.2/tests/bouncing-particles/bouncing-svg-images.html: Added.\n* MotionMark1.2/tests/bouncing-particles/bouncing-svg-shapes.html: Added.\n* MotionMark1.2/tests/bouncing-particles/bouncing-tagged-images.html: Added.\n* MotionMark1.2/tests/bouncing-particles/resources/bouncing-canvas-images.js: Added.\n(_draw):\n(BouncingCanvasParticlesStage.call.initialize):\n(BouncingCanvasParticlesStage.call.createParticle):\n(BouncingCanvasParticlesStage.call):\n* MotionMark1.2/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Added.\n(applyRotation):\n(applyClipping):\n(_draw):\n(animate):\n(BouncingParticlesStage.call.initialize):\n(BouncingParticlesStage.call.animate):\n(BouncingParticlesStage.call):\n* MotionMark1.2/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Added.\n(this._color1.Stage.randomColor._applyFill):\n(this._color1.Stage.randomColor._drawShape):\n(this._color1.Stage.randomColor._draw):\n(this._color1.Stage.randomColor):\n(BouncingCanvasParticlesStage.call.initialize):\n(BouncingCanvasParticlesStage.call.createParticle):\n(BouncingCanvasParticlesStage.call):\n* MotionMark1.2/tests/bouncing-particles/resources/bouncing-css-images.js: Added.\n(this._move._move):\n(this._move.animate):\n(this._move):\n(BouncingParticlesStage.call.initialize):\n(BouncingParticlesStage.call.createParticle):\n(BouncingParticlesStage.call.particleWillBeRemoved):\n(BouncingParticlesStage.call):\n* MotionMark1.2/tests/bouncing-particles/resources/bouncing-css-shapes.js: Added.\n(switch):\n(this._move._createSpan):\n(this._move._move):\n(this._move.animate):\n(this._move):\n(BouncingParticlesStage.call.initialize):\n(BouncingParticlesStage.call.createParticle):\n(BouncingParticlesStage.call.particleWillBeRemoved):\n(BouncingParticlesStage.call):\n* MotionMark1.2/tests/bouncing-particles/resources/bouncing-particles.js: Added.\n(BouncingParticle):\n(BouncingParticle.prototype.get center):\n(BouncingParticle.prototype.animate):\n(initialize):\n(parseShapeParameters):\n(animate):\n(tune):\n(complexity):\n* MotionMark1.2/tests/bouncing-particles/resources/bouncing-svg-images.js: Added.\n(BouncingSvgParticlesStage.call.initialize):\n(BouncingSvgParticlesStage.call.createParticle):\n(BouncingSvgParticlesStage.call):\n* MotionMark1.2/tests/bouncing-particles/resources/bouncing-svg-particles.js: Added.\n(_applyClipping):\n(_move):\n(animate):\n(BouncingParticlesStage.call._createDefs):\n(BouncingParticlesStage.call._ensureDefsIsCreated):\n(BouncingParticlesStage.call._createClipStar):\n(BouncingParticlesStage.call.ensureClipStarIsCreated):\n(BouncingParticlesStage.call.particleWillBeRemoved):\n(BouncingParticlesStage.call):\n* MotionMark1.2/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Added.\n(this._move._createShape):\n(this._move._applyFill):\n(this._move):\n(BouncingSvgParticlesStage.call.initialize):\n(BouncingSvgParticlesStage.call.createGradient):\n(BouncingSvgParticlesStage.call.createParticle):\n(BouncingSvgParticlesStage.call.particleWillBeRemoved):\n(BouncingSvgParticlesStage.call):\n* MotionMark1.2/tests/bouncing-particles/resources/bouncing-tagged-images.js: Added.\n(this._move._move):\n(this._move.animate):\n(this._move):\n(BouncingParticlesStage.call.):\n(BouncingParticlesStage.call.initialize):\n(BouncingParticlesStage.call.img.onload):\n(BouncingParticlesStage.call._loadImage):\n(BouncingParticlesStage.call.createParticle):\n(BouncingParticlesStage.call.particleWillBeRemoved):\n(BouncingParticlesStage.call):\n(new.BouncingTaggedImagesStage.waitUntilReady):\n(new.BouncingTaggedImagesStage):\n* MotionMark1.2/tests/bouncing-particles/resources/image1.jpg: Added.\n* MotionMark1.2/tests/bouncing-particles/resources/image2.jpg: Added.\n* MotionMark1.2/tests/bouncing-particles/resources/image3.jpg: Added.\n* MotionMark1.2/tests/bouncing-particles/resources/image4.jpg: Added.\n* MotionMark1.2/tests/bouncing-particles/resources/image5.jpg: Added.\n* MotionMark1.2/tests/dom/compositing-transforms.html: Added.\n* MotionMark1.2/tests/dom/focus.html: Added.\n* MotionMark1.2/tests/dom/leaves.html: Added.\n* MotionMark1.2/tests/dom/multiply.html: Added.\n* MotionMark1.2/tests/dom/particles.html: Added.\n* MotionMark1.2/tests/dom/resources/compositing-transforms.js: Added.\n(this._move._move):\n(this._move.animate):\n(this._move):\n(BouncingParticlesStage.call.initialize):\n(BouncingParticlesStage.call.createParticle):\n(BouncingParticlesStage.call.particleWillBeRemoved):\n(BouncingParticlesStage.call):\n* MotionMark1.2/tests/dom/resources/dom-particles.js: Added.\n(Particle.call.reset):\n(Particle.call.move):\n(Particle.call):\n(ParticlesStage.call.initialize):\n(ParticlesStage.call.createParticle):\n(ParticlesStage.call.willRemoveParticle):\n(ParticlesStage.call):\n* MotionMark1.2/tests/dom/resources/focus.js: Added.\n(FocusElement.Utilities.createClass):\n(hide):\n(show):\n(animate):\n(Stage.call.initialize):\n(Stage.call.complexity):\n(Stage.call.tune):\n(Stage.call.animate):\n(Stage.call.getBlurValue):\n(Stage.call.getOpacityValue):\n(Stage.call):\n* MotionMark1.2/tests/dom/resources/leaves.js: Added.\n(SuperLeaf.call.move):\n(SuperLeaf.call):\n(switch):\n* MotionMark1.2/tests/dom/resources/multiply.js: Added.\n(switch):\n* MotionMark1.2/tests/master/canvas-stage.html: Added.\n* MotionMark1.2/tests/master/design.html: Added.\n* MotionMark1.2/tests/master/focus.html: Added.\n* MotionMark1.2/tests/master/image-data.html: Added.\n* MotionMark1.2/tests/master/leaves.html: Added.\n* MotionMark1.2/tests/master/multiply.html: Added.\n* MotionMark1.2/tests/master/resources/canvas-stage.js: Added.\n(initialize):\n(tune):\n(animate):\n(complexity):\n* MotionMark1.2/tests/master/resources/canvas-tests.js: Added.\n(CanvasLineSegment.Utilities.createClass):\n(draw):\n(CanvasArc.Utilities.createClass):\n(CanvasLinePoint.Utilities.createClass):\n(randomPoint):\n(SimpleCanvasStage.call.initialize):\n(SimpleCanvasStage.call.animate):\n(SimpleCanvasStage.call):\n(switch):\n* MotionMark1.2/tests/master/resources/compass.svg: Added.\n* MotionMark1.2/tests/master/resources/compass100.png: Added.\n* MotionMark1.2/tests/master/resources/console.svg: Added.\n* MotionMark1.2/tests/master/resources/console100.png: Added.\n* MotionMark1.2/tests/master/resources/contribute.svg: Added.\n* MotionMark1.2/tests/master/resources/contribute100.png: Added.\n* MotionMark1.2/tests/master/resources/debugger.svg: Added.\n* MotionMark1.2/tests/master/resources/debugger100.png: Added.\n* MotionMark1.2/tests/master/resources/design.js: Added.\n(initialize):\n(tune):\n(animate):\n(complexity):\n* MotionMark1.2/tests/master/resources/focus.js: Added.\n(FocusElement.Utilities.createClass):\n(this.animate.hide):\n(this.animate.show):\n(this.animate.animate):\n(this.animate):\n(Stage.call.initialize):\n(Stage.call.complexity):\n(Stage.call.tune):\n(Stage.call.animate):\n(Stage.call):\n* MotionMark1.2/tests/master/resources/image-data.js: Added.\n(initialize):\n(_loadImage):\n(tune):\n(_createTestElement):\n(_refreshElement):\n(animate):\n(_getRandomNeighboringPixelIndex):\n(complexity):\n(new.ImageDataStage.waitUntilReady):\n(new.ImageDataStage):\n* MotionMark1.2/tests/master/resources/inspector.svg: Added.\n* MotionMark1.2/tests/master/resources/inspector100.png: Added.\n* MotionMark1.2/tests/master/resources/layout.svg: Added.\n* MotionMark1.2/tests/master/resources/layout100.png: Added.\n* MotionMark1.2/tests/master/resources/leaves.js: Added.\n(Particle.call.reset):\n(Particle.call.animate):\n(Particle.call.move):\n(Particle.call):\n(initialize):\n(img.onload):\n(_loadImage):\n(animate):\n(createParticle):\n(willRemoveParticle):\n(new.ParticlesStage.waitUntilReady):\n(new.ParticlesStage):\n* MotionMark1.2/tests/master/resources/multiply.js: Added.\n(initialize):\n(_addTile):\n(complexity):\n(tune):\n(animate):\n* MotionMark1.2/tests/master/resources/particles.js: Added.\n(Particle):\n(Particle.prototype.reset):\n(Particle.prototype.animate):\n(Particle.prototype.move):\n(animate):\n(tune):\n(complexity):\n* MotionMark1.2/tests/master/resources/performance.svg: Added.\n* MotionMark1.2/tests/master/resources/performance100.png: Added.\n* MotionMark1.2/tests/master/resources/script.svg: Added.\n* MotionMark1.2/tests/master/resources/script100.png: Added.\n* MotionMark1.2/tests/master/resources/shortcuts.svg: Added.\n* MotionMark1.2/tests/master/resources/shortcuts100.png: Added.\n* MotionMark1.2/tests/master/resources/standards.svg: Added.\n* MotionMark1.2/tests/master/resources/standards100.png: Added.\n* MotionMark1.2/tests/master/resources/storage.svg: Added.\n* MotionMark1.2/tests/master/resources/storage100.png: Added.\n* MotionMark1.2/tests/master/resources/styles.svg: Added.\n* MotionMark1.2/tests/master/resources/styles100.png: Added.\n* MotionMark1.2/tests/master/resources/suits.js: Added.\n(this.initialize.initialize):\n(this.initialize.reset):\n(this.initialize.move):\n(this.initialize):\n(ParticlesStage.call.initialize):\n(ParticlesStage.call.createParticle):\n(ParticlesStage.call.willRemoveParticle):\n(ParticlesStage.call):\n* MotionMark1.2/tests/master/resources/timeline.svg: Added.\n* MotionMark1.2/tests/master/resources/timeline100.png: Added.\n* MotionMark1.2/tests/master/suits.html: Added.\n* MotionMark1.2/tests/resources/main.js: Added.\n(Sampler.Utilities.createClass):\n(record):\n(processSamples):\n(Controller.Utilities.createClass):\n(set isFrameLengthEstimatorEnabled):\n(start):\n(recordFirstSample):\n(mark):\n(containsMark):\n(filterOutOutliers):\n(_measureAndResetInterval):\n(update):\n(registerFrameTime):\n(intervalHasConcluded):\n(didFinishInterval):\n(tune):\n(shouldStop):\n(results):\n(_processComplexitySamples):\n(_processMarks):\n(_processControllerSamples):\n(_getComplexity):\n(_getFrameLength):\n(Stage.Utilities.createClass):\n(Stage.Utilities.createClass.initialize):\n(Stage.Utilities.createClass.get element):\n(Stage.Utilities.createClass.get size):\n(Stage.Utilities.createClass.complexity):\n(Stage.Utilities.createClass.tune):\n(Stage.Utilities.createClass.animate):\n(Stage.Utilities.createClass.clear):\n(random):\n(randomBool):\n(randomSign):\n(randomInt):\n(randomPosition):\n(randomSquareSize):\n(randomVelocity):\n(randomAngle):\n(randomColor):\n(randomStyleMixBlendMode):\n(randomStyleFilter):\n(randomElementInArray):\n(rotatingColor):\n(dateFractionalValue):\n(dateCounterValue):\n(randomRotater):\n(Rotater.Utilities.createClass):\n(get interval):\n(next):\n(degree):\n(rotateZ):\n(rotate):\n(Benchmark.Utilities.createClass):\n(get stage):\n(get timestamp):\n(backgroundColor):\n(run):\n(waitUntilReady):\n(_animateLoop):\n* MotionMark1.2/tests/resources/math.js: Added.\n(this._gain.error.sample):\n(this._gain.error.reset):\n(this._gain.error):\n(PIDController.Utilities.createClass):\n(_yPosition):\n(_distanceUltimate):\n(_distance):\n(_gainIncrement):\n(_updateStage):\n(_tuneP):\n(_tunePID):\n(_tune):\n(_saturate):\n(tune):\n* MotionMark1.2/tests/resources/stage.css: Added.\n(html):\n(body):\n(#stage):\n(#center-text):\n* MotionMark1.2/tests/resources/star.svg: Added.\n* MotionMark1.2/tests/resources/yin-yang.png: Added.\n* MotionMark1.2/tests/resources/yin-yang.svg: Added.\n* MotionMark1.2/tests/simple/resources/simple-canvas-paths.js: Added.\n(CanvasLineSegment.Utilities.createClass):\n(this._lineWidth.Stage.randomInt.draw):\n(this._lineWidth.Stage.randomInt):\n(CanvasLinePoint.Utilities.createClass):\n(draw):\n(CanvasQuadraticSegment.Utilities.createClass):\n(CanvasQuadraticPoint.Utilities.createClass):\n(CanvasBezierSegment.Utilities.createClass):\n(CanvasBezierPoint.Utilities.createClass):\n(CanvasArcToSegment.Utilities.createClass):\n(CanvasArcToSegmentFill.Utilities.createClass):\n(CanvasArcToSegment.call.draw):\n(CanvasArcToSegment.call):\n(CanvasArcSegment.Utilities.createClass):\n(CanvasArcSegmentFill.Utilities.createClass):\n(CanvasArcSegment.call.draw):\n(CanvasArcSegment.call):\n(CanvasRect.Utilities.createClass):\n(CanvasRectFill.Utilities.createClass):\n(CanvasRect.call.draw):\n(CanvasRect.call):\n(CanvasEllipse.Utilities.createClass):\n(CanvasEllipseFill.Utilities.createClass):\n(CanvasEllipse.call.draw):\n(CanvasEllipse.call):\n(CanvasStroke.Utilities.createClass):\n(this._object.new.draw):\n(this._object.new):\n(CanvasFill.Utilities.createClass):\n(SimpleCanvasStage.call.animate):\n(SimpleCanvasStage.call):\n(SimpleCanvasStage.call.initialize):\n(SimpleCanvasPathStrokeStage.call.initialize):\n(SimpleCanvasPathStrokeStage.call):\n(initialize):\n(animate):\n(switch):\n* MotionMark1.2/tests/simple/resources/simple-canvas.js: Added.\n(tune):\n(animate):\n(complexity):\n* MotionMark1.2/tests/simple/resources/tiled-canvas-image.js: Added.\n(CanvasImageTile.Utilities.createClass):\n(getImageData):\n(putImageData):\n(Stage.call.initialize):\n(Stage.call._setupTiles):\n(Stage.call._nextTilePosition):\n(Stage.call.tune):\n(Stage.call._drawBackground):\n(Stage.call.animate):\n(Stage.call.complexity):\n(Stage.call):\n* MotionMark1.2/tests/simple/simple-canvas-paths.html: Added.\n* MotionMark1.2/tests/simple/tiled-canvas-image.html: Added.\n* MotionMark1.2/tests/svg/suits.html: Added.\n* MotionMark1.2/tests/svg/suits.js: Added.\n(this.initialize.move):\n(this.initialize):\n(this.initialize.reset):\n(switch):\n* MotionMark1.2/tests/template/resources/template-canvas.js: Added.\n(TemplateCanvasObject):\n(TemplateCanvasObject.prototype._draw):\n(TemplateCanvasObject.prototype.animate):\n(Stage.call.initialize):\n(Stage.call.tune):\n(Stage.call.animate):\n(Stage.call):\n(new.TemplateCanvasStage.waitUntilReady):\n(new.TemplateCanvasStage):\n* MotionMark1.2/tests/template/resources/template-css.js: Added.\n(Stage.call.initialize):\n(Stage.call.tune):\n(Stage.call.animate):\n(Stage.call):\n* MotionMark1.2/tests/template/resources/template-svg.js: Added.\n(Stage.call.initialize):\n(Stage.call.tune):\n(Stage.call.animate):\n(Stage.call):\n* MotionMark1.2/tests/template/template-canvas.html: Added.\n* MotionMark1.2/tests/template/template-css.html: Added.\n* MotionMark1.2/tests/template/template-svg.html: Added.\n* MotionMark1.2/tests/text/design-6.html: Added.\n* MotionMark1.2/tests/text/design-6.js: Added.\n(switch):\n(dataset.forEach):\n* MotionMark1.2/tests/text/design.html: Added.\n* MotionMark1.2/tests/text/design.js: Added.\n(switch):\n(dataset.forEach):\n\nCanonical link: https://commits.webkit.org/237235@main\ngit-svn-id: https://svn.webkit.org/repository/webkit/trunk@276889 268f45cc-cd09-0410-ab3c-d52691b4dbfc\n"
    },
    {
      "commit": "dbcfbd84e89181bca193ecb2bd46dc4c559b9355",
      "tree": "4c7de8f4aaab07724485f63de674adaaaecdd425",
      "parents": [
        "23f932e5e7db5668768ed69483553c02c29ccef4"
      ],
      "author": {
        "name": "Myles C. Maxfield",
        "email": "mmaxfield@apple.com",
        "time": "Wed Sep 18 14:31:12 2019"
      },
      "committer": {
        "name": "Myles C. Maxfield",
        "email": "mmaxfield@apple.com",
        "time": "Wed Sep 18 14:31:12 2019"
      },
      "message": "[WebGPU] Update demos to work on STP 92\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d201872\n\nReviewed by Dean Jackson.\n\nWebsites/browserbench.org:\n\nGPUShaderStageBit \u003d\u003e GPUShaderStage\n\n* MotionMark1.1/tests/3d/resources/webgpu.js:\n(Stage.call.initialize):\n\nWebsites/webkit.org:\n\nUpdating for new WSL buffer layouts.\nUpdating for new WSL compiler struct validation rules.\nGPUShaderStageBit \u003d\u003e GPUShaderStage\nGPUColorWriteBits \u003d\u003e GPUColorWrite\nGPUBufferUsage.TRANSFER_DST \u003d\u003e GPUBufferUsage.COPY_DST\nGPUBufferUsage.TRANSFER_SRC \u003d\u003e GPUBufferUsage.COPY_SRC\n\n* demos/webgpu/babylon/babylonWebGpu.max.js:\n* demos/webgpu/babylon/oneHelmetWebGPUWSLShaders.js:\n(sampler.bumpSamplerSampler.register):\n(sampler.reflectionSamplerSampler.register):\n(float2.uv.attribute): Deleted.\n(float3.normal.attribute): Deleted.\n* demos/webgpu/compute-boids.html:\n* demos/webgpu/hello-cube.html:\n* demos/webgpu/scripts/compute-blur.js:\n(setUpCompute):\n(createShaderCode):\n* demos/webgpu/scripts/compute-boids-compile.js:\n* demos/webgpu/scripts/hello-triangle.js:\n(async.helloTriangle):\n* demos/webgpu/textured-cube.html:\n\n\nCanonical link: https://commits.webkit.org/215557@main\ngit-svn-id: https://svn.webkit.org/repository/webkit/trunk@250032 268f45cc-cd09-0410-ab3c-d52691b4dbfc\n"
    },
    {
      "commit": "23f932e5e7db5668768ed69483553c02c29ccef4",
      "tree": "dff4389e2efb454a8a4e6a005fd58fc9e0165268",
      "parents": [
        "1e1931505bd764a8268b65d913b566145a9a3388"
      ],
      "author": {
        "name": "Jon Lee",
        "email": "jonlee@apple.com",
        "time": "Mon Sep 09 19:30:50 2019"
      },
      "committer": {
        "name": "Jon Lee",
        "email": "jonlee@apple.com",
        "time": "Mon Sep 09 19:30:50 2019"
      },
      "message": "Upload triangles tests for 3D suite in MotionMark\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d201606\n\nReviewed by Simon Fraser.\n\nPerformanceTests:\n\n* MotionMark/resources/debug-runner/motionmark.css:\n* MotionMark/resources/debug-runner/tests.js:\n* MotionMark/tests/3d/resources/webgl.js:\n* MotionMark/tests/3d/resources/webgpu.js: Added.\n* MotionMark/tests/3d/triangles-webgl.html: Renamed from Websites/browserbench.org/MotionMark1.1/tests/3d/webgl.html.\n* MotionMark/tests/3d/triangles-webgpu.html: Copied from PerformanceTests/MotionMark/tests/3d/webgl.html.\n\nWebsites/browserbench.org:\n\n* MotionMark1.1/resources/debug-runner/tests.js:\n* MotionMark1.1/tests/3d/resources/webgl.js:\n* MotionMark1.1/tests/3d/resources/webgpu.js: Added.\n* MotionMark1.1/tests/3d/triangles-webgl.html: Copied from PerformanceTests/MotionMark/tests/3d/webgl.html.\n* MotionMark1.1/tests/3d/triangles-webgpu.html: Renamed from PerformanceTests/MotionMark/tests/3d/webgl.html.\n\n\nCanonical link: https://commits.webkit.org/215249@main\ngit-svn-id: https://svn.webkit.org/repository/webkit/trunk@249657 268f45cc-cd09-0410-ab3c-d52691b4dbfc\n"
    },
    {
      "commit": "1e1931505bd764a8268b65d913b566145a9a3388",
      "tree": "2ad0bcc1a6cb96c0b83acd6572c8b809a701d4d3",
      "parents": [
        "9b8f2b5a6aeea449f645e059de287fddb2131394"
      ],
      "author": {
        "name": "Jon Lee",
        "email": "jonlee@apple.com",
        "time": "Tue Apr 16 20:52:20 2019"
      },
      "committer": {
        "name": "Jon Lee",
        "email": "jonlee@apple.com",
        "time": "Tue Apr 16 20:52:20 2019"
      },
      "message": "[MotionMark] The text \"kkkj\" is causing Firefox console warning: `unreachable code after return statement`\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d196814\n\nReviewed by Wenson Hsieh.\n\n* MotionMark/resources/extensions.js:\n(subtract.subtract.sampleY):\nWebsites/browserbench.org:\n\n* MotionMark1.1/resources/extensions.js:\n(subtract.subtract.sampleY):\n\n\nCanonical link: https://commits.webkit.org/211244@main\ngit-svn-id: https://svn.webkit.org/repository/webkit/trunk@244357 268f45cc-cd09-0410-ab3c-d52691b4dbfc\n"
    },
    {
      "commit": "9b8f2b5a6aeea449f645e059de287fddb2131394",
      "tree": "8b0e0ddea1cc56114db3eb90d5c6f45b69f0430e",
      "parents": [
        "16e3d4e5ca0b2b2fe408c86fd1707f2a902a5b15"
      ],
      "author": {
        "name": "Jon Lee",
        "email": "jonlee@apple.com",
        "time": "Tue Aug 14 23:26:06 2018"
      },
      "committer": {
        "name": "Ryosuke Niwa",
        "email": "rniwa@webkit.org",
        "time": "Tue Aug 14 23:26:06 2018"
      },
      "message": "Add MotionMark 1.1 to browserbench\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d188585\n\u003crdar://problem/43308076\u003e\n\nPatch by Jon Lee \u003cjonlee@apple.com\u003e on 2018-08-14\nRubber-stamped by Ryosuke Niwa.\n\n* MotionMark1.1/: Added.\n\n\nCanonical link: https://commits.webkit.org/203661@main\ngit-svn-id: https://svn.webkit.org/repository/webkit/trunk@234866 268f45cc-cd09-0410-ab3c-d52691b4dbfc\n"
    },
    {
      "commit": "16e3d4e5ca0b2b2fe408c86fd1707f2a902a5b15",
      "tree": "9cde3c98853e3da32dabf3335f0f85b9bf98318b",
      "parents": [
        "e6896ffd9b1a4b6deae32a0098a870ef68f8bddf"
      ],
      "author": {
        "name": "Ryosuke Niwa",
        "email": "rniwa@webkit.org",
        "time": "Sat May 13 02:02:02 2017"
      },
      "committer": {
        "name": "Ryosuke Niwa",
        "email": "rniwa@webkit.org",
        "time": "Sat May 13 02:02:02 2017"
      },
      "message": "Add Websites/browserbench.org\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d172049\n\nRubber-stamped by Geoffrey Garen.\n\nAdded the current contents of browserbench.org.\n\n* ARES-6/ARES-6.svg: Added.\n* ARES-6/Air/README.md: Added.\n* ARES-6/Air/airjs-tests.yaml: Added.\n* ARES-6/Air/all.js: Added.\n* ARES-6/Air/allocate_stack.js: Added.\n* ARES-6/Air/arg.js: Added.\n* ARES-6/Air/basic_block.js: Added.\n* ARES-6/Air/benchmark.js: Added.\n* ARES-6/Air/code.js: Added.\n* ARES-6/Air/custom.js: Added.\n* ARES-6/Air/frequented_block.js: Added.\n* ARES-6/Air/insertion_set.js: Added.\n* ARES-6/Air/inst.js: Added.\n* ARES-6/Air/liveness.js: Added.\n* ARES-6/Air/make_dist.sh: Added.\n* ARES-6/Air/opcode.js: Added.\n* ARES-6/Air/payload-airjs-ACLj8C.js: Added.\n* ARES-6/Air/payload-gbemu-executeIteration.js: Added.\n* ARES-6/Air/payload-imaging-gaussian-blur-gaussianBlur.js: Added.\n* ARES-6/Air/payload-typescript-scanIdentifier.js: Added.\n* ARES-6/Air/reg.js: Added.\n* ARES-6/Air/stack_slot.js: Added.\n* ARES-6/Air/stress-test.js: Added.\n* ARES-6/Air/strip-hash.rb: Added.\n* ARES-6/Air/symbols.js: Added.\n* ARES-6/Air/test.html: Added.\n* ARES-6/Air/test.js: Added.\n* ARES-6/Air/tmp.js: Added.\n* ARES-6/Air/tmp_base.js: Added.\n* ARES-6/Air/util.js: Added.\n* ARES-6/Babylon/AUTHORS: Added.\n* ARES-6/Babylon/air-blob.js: Added.\n* ARES-6/Babylon/babylon-blob.js: Added.\n* ARES-6/Babylon/basic-blob.js: Added.\n* ARES-6/Babylon/benchmark.js: Added.\n* ARES-6/Babylon/index.js: Added.\n* ARES-6/Babylon/inspector-blob.js: Added.\n* ARES-6/Basic/ast.js: Added.\n* ARES-6/Basic/basic-tests.yaml: Added.\n* ARES-6/Basic/basic.js: Added.\n* ARES-6/Basic/benchmark.js: Added.\n* ARES-6/Basic/caseless_map.js: Added.\n* ARES-6/Basic/lexer.js: Added.\n* ARES-6/Basic/number.js: Added.\n* ARES-6/Basic/parser.js: Added.\n* ARES-6/Basic/random.js: Added.\n* ARES-6/Basic/state.js: Added.\n* ARES-6/Basic/stress-test.js: Added.\n* ARES-6/Basic/test.html: Added.\n* ARES-6/Basic/test.js: Added.\n* ARES-6/Basic/util.js: Added.\n* ARES-6/about.html: Added.\n* ARES-6/air_benchmark.js: Added.\n* ARES-6/babylon_benchmark.js: Added.\n* ARES-6/basic_benchmark.js: Added.\n* ARES-6/cli.js: Added.\n* ARES-6/driver.js: Added.\n* ARES-6/glue.js: Added.\n* ARES-6/index.html: Added.\n* ARES-6/ml/benchmark.js: Added.\n* ARES-6/ml/index.js: Added.\n* ARES-6/ml_benchmark.js: Added.\n* ARES-6/results.js: Added.\n* ARES-6/stats.js: Added.\n* ARES-6/styles.css: Added.\n* ARES-6/swoop.svg: Added.\n* JetStream/CDjsSetup.js: Added.\n* JetStream/JetStream-Logo.png: Added.\n* JetStream/JetStream-Logo@2x.png: Added.\n* JetStream/JetStream.css: Added.\n* JetStream/JetStreamDriver.js: Added.\n* JetStream/LLVM-test-suite-LICENSE.txt: Added.\n* JetStream/Octane/base.js: Added.\n* JetStream/Octane/code-load.js: Added.\n* JetStream/Octane2/base.js: Added.\n* JetStream/Octane2/box2d.js: Added.\n* JetStream/Octane2/code-load.js: Added.\n* JetStream/Octane2/crypto.js: Added.\n* JetStream/Octane2/deltablue.js: Added.\n* JetStream/Octane2/earley-boyer.js: Added.\n* JetStream/Octane2/gbemu-part1.js: Added.\n* JetStream/Octane2/gbemu-part2.js: Added.\n* JetStream/Octane2/mandreel.js: Added.\n* JetStream/Octane2/navier-stokes.js: Added.\n* JetStream/Octane2/pdfjs.js: Added.\n* JetStream/Octane2/raytrace.js: Added.\n* JetStream/Octane2/regexp.js: Added.\n* JetStream/Octane2/richards.js: Added.\n* JetStream/Octane2/run.js: Added.\n* JetStream/Octane2/splay.js: Added.\n* JetStream/Octane2/typescript-compiler.js: Added.\n* JetStream/Octane2/typescript-input.js: Added.\n* JetStream/Octane2/typescript.js: Added.\n* JetStream/Octane2/zlib-data.js: Added.\n* JetStream/Octane2/zlib.js: Added.\n* JetStream/Octane2Setup.js: Added.\n* JetStream/OctaneSetup.js: Added.\n* JetStream/Reference.js: Added.\n* JetStream/SimplePayload.js: Added.\n* JetStream/SimpleSetup.js: Added.\n* JetStream/SunSpiderPayload.js: Added.\n* JetStream/SunSpiderSetup.js: Added.\n* JetStream/Swoosh.png: Added.\n* JetStream/Swoosh@2x.png: Added.\n* JetStream/TestingSetup.js: Added.\n* JetStream/cdjs/benchmark.js: Added.\n* JetStream/cdjs/call_sign.js: Added.\n* JetStream/cdjs/collision.js: Added.\n* JetStream/cdjs/collision_detector.js: Added.\n* JetStream/cdjs/constants.js: Added.\n* JetStream/cdjs/motion.js: Added.\n* JetStream/cdjs/red_black_tree.js: Added.\n* JetStream/cdjs/reduce_collision_set.js: Added.\n* JetStream/cdjs/simulator.js: Added.\n* JetStream/cdjs/util.js: Added.\n* JetStream/cdjs/vector_2d.js: Added.\n* JetStream/cdjs/vector_3d.js: Added.\n* JetStream/in-depth.html: Added.\n* JetStream/index.html: Added.\n* JetStream/simple/bigfib.cpp: Added.\n* JetStream/simple/bigfib.cpp.js: Added.\n* JetStream/simple/container.cpp: Added.\n* JetStream/simple/container.cpp.js: Added.\n* JetStream/simple/dry.c: Added.\n* JetStream/simple/dry.c.js: Added.\n* JetStream/simple/float-mm.c: Added.\n* JetStream/simple/float-mm.c.js: Added.\n* JetStream/simple/gcc-loops.cpp: Added.\n* JetStream/simple/gcc-loops.cpp.js: Added.\n* JetStream/simple/hash-map.js: Added.\n* JetStream/simple/n-body.c: Added.\n* JetStream/simple/n-body.c.js: Added.\n* JetStream/simple/quicksort.c: Added.\n* JetStream/simple/quicksort.c.js: Added.\n* JetStream/simple/towers.c: Added.\n* JetStream/simple/towers.c.js: Added.\n* JetStream/sources/3d-cube.js: Added.\n* JetStream/sources/3d-raytrace.js: Added.\n* JetStream/sources/base64.js: Added.\n* JetStream/sources/bigfib.cpp: Added.\n* JetStream/sources/bigfib.cpp.js: Added.\n* JetStream/sources/box2d.js: Added.\n* JetStream/sources/cdjs-benchmark.js: Added.\n* JetStream/sources/cdjs-call_sign.js: Added.\n* JetStream/sources/cdjs-collision.js: Added.\n* JetStream/sources/cdjs-collision_detector.js: Added.\n* JetStream/sources/cdjs-constants.js: Added.\n* JetStream/sources/cdjs-motion.js: Added.\n* JetStream/sources/cdjs-red_black_tree.js: Added.\n* JetStream/sources/cdjs-reduce_collision_set.js: Added.\n* JetStream/sources/cdjs-simulator.js: Added.\n* JetStream/sources/cdjs-util.js: Added.\n* JetStream/sources/cdjs-vector_2d.js: Added.\n* JetStream/sources/cdjs-vector_3d.js: Added.\n* JetStream/sources/code-first-load-code-load.js: Added.\n* JetStream/sources/code-multi-load-code-load.js: Added.\n* JetStream/sources/container.cpp: Added.\n* JetStream/sources/container.cpp.js: Added.\n* JetStream/sources/crypto-aes.js: Added.\n* JetStream/sources/crypto-md5.js: Added.\n* JetStream/sources/crypto-sha1.js: Added.\n* JetStream/sources/crypto.js: Added.\n* JetStream/sources/date-format-tofte.js: Added.\n* JetStream/sources/date-format-xparb.js: Added.\n* JetStream/sources/deltablue.js: Added.\n* JetStream/sources/dry.c: Added.\n* JetStream/sources/dry.c.js: Added.\n* JetStream/sources/earley-boyer.js: Added.\n* JetStream/sources/float-mm.c: Added.\n* JetStream/sources/float-mm.c.js: Added.\n* JetStream/sources/gbemu-part1.js: Added.\n* JetStream/sources/gbemu-part2.js: Added.\n* JetStream/sources/gcc-loops.cpp: Added.\n* JetStream/sources/gcc-loops.cpp.js: Added.\n* JetStream/sources/hash-map.js: Added.\n* JetStream/sources/mandreel.js: Added.\n* JetStream/sources/n-body.c: Added.\n* JetStream/sources/n-body.c.js: Added.\n* JetStream/sources/n-body.js: Added.\n* JetStream/sources/navier-stokes.js: Added.\n* JetStream/sources/pdfjs.js: Added.\n* JetStream/sources/quicksort.c: Added.\n* JetStream/sources/quicksort.c.js: Added.\n* JetStream/sources/raytrace.js: Added.\n* JetStream/sources/regex-dna.js: Added.\n* JetStream/sources/regexp.js: Added.\n* JetStream/sources/richards.js: Added.\n* JetStream/sources/splay.js: Added.\n* JetStream/sources/tagcloud.js: Added.\n* JetStream/sources/towers.c: Added.\n* JetStream/sources/towers.c.js: Added.\n* JetStream/sources/typescript-compiler.js: Added.\n* JetStream/sources/typescript-input.js: Added.\n* JetStream/sources/typescript.js: Added.\n* JetStream/sources/zlib-data.js: Added.\n* JetStream/sources/zlib.js: Added.\n* JetStream/sunspider/3d-cube.js: Added.\n* JetStream/sunspider/3d-raytrace.js: Added.\n* JetStream/sunspider/base64.js: Added.\n* JetStream/sunspider/crypto-aes.js: Added.\n* JetStream/sunspider/crypto-md5.js: Added.\n* JetStream/sunspider/crypto-sha1.js: Added.\n* JetStream/sunspider/date-format-tofte.js: Added.\n* JetStream/sunspider/date-format-xparb.js: Added.\n* JetStream/sunspider/n-body.js: Added.\n* JetStream/sunspider/regex-dna.js: Added.\n* JetStream/sunspider/tagcloud.js: Added.\n* MotionMark/about.html: Added.\n* MotionMark/developer.html: Added.\n* MotionMark/index.html: Added.\n* MotionMark/resources/debug-runner/animometer.css: Added.\n* MotionMark/resources/debug-runner/animometer.js: Added.\n* MotionMark/resources/debug-runner/d3.min.js: Added.\n* MotionMark/resources/debug-runner/graph.js: Added.\n* MotionMark/resources/debug-runner/tests.js: Added.\n* MotionMark/resources/extensions.js: Added.\n* MotionMark/resources/runner/animometer.css: Added.\n* MotionMark/resources/runner/animometer.js: Added.\n* MotionMark/resources/runner/benchmark-runner.js: Added.\n* MotionMark/resources/runner/crystal.svg: Added.\n* MotionMark/resources/runner/lines.svg: Added.\n* MotionMark/resources/runner/logo.svg: Added.\n* MotionMark/resources/runner/tests.js: Added.\n* MotionMark/resources/statistics.js: Added.\n* MotionMark/resources/strings.js: Added.\n* MotionMark/tests/3d/resources/webgl.js: Added.\n* MotionMark/tests/3d/webgl.html: Added.\n* MotionMark/tests/bouncing-particles/bouncing-canvas-images.html: Added.\n* MotionMark/tests/bouncing-particles/bouncing-canvas-shapes.html: Added.\n* MotionMark/tests/bouncing-particles/bouncing-css-images.html: Added.\n* MotionMark/tests/bouncing-particles/bouncing-css-shapes.html: Added.\n* MotionMark/tests/bouncing-particles/bouncing-svg-images.html: Added.\n* MotionMark/tests/bouncing-particles/bouncing-svg-shapes.html: Added.\n* MotionMark/tests/bouncing-particles/bouncing-tagged-images.html: Added.\n* MotionMark/tests/bouncing-particles/resources/bouncing-canvas-images.js: Added.\n* MotionMark/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Added.\n* MotionMark/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Added.\n* MotionMark/tests/bouncing-particles/resources/bouncing-css-images.js: Added.\n* MotionMark/tests/bouncing-particles/resources/bouncing-css-shapes.js: Added.\n* MotionMark/tests/bouncing-particles/resources/bouncing-particles.js: Added.\n* MotionMark/tests/bouncing-particles/resources/bouncing-svg-images.js: Added.\n* MotionMark/tests/bouncing-particles/resources/bouncing-svg-particles.js: Added.\n* MotionMark/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Added.\n* MotionMark/tests/bouncing-particles/resources/bouncing-tagged-images.js: Added.\n* MotionMark/tests/bouncing-particles/resources/image1.jpg: Added.\n* MotionMark/tests/bouncing-particles/resources/image2.jpg: Added.\n* MotionMark/tests/bouncing-particles/resources/image3.jpg: Added.\n* MotionMark/tests/bouncing-particles/resources/image4.jpg: Added.\n* MotionMark/tests/bouncing-particles/resources/image5.jpg: Added.\n* MotionMark/tests/dom/compositing-transforms.html: Added.\n* MotionMark/tests/dom/focus.html: Added.\n* MotionMark/tests/dom/leaves.html: Added.\n* MotionMark/tests/dom/particles.html: Added.\n* MotionMark/tests/dom/resources/compositing-transforms.js: Added.\n* MotionMark/tests/dom/resources/dom-particles.js: Added.\n* MotionMark/tests/dom/resources/focus.js: Added.\n* MotionMark/tests/dom/resources/leaves.js: Added.\n* MotionMark/tests/master/canvas-stage.html: Added.\n* MotionMark/tests/master/focus.html: Added.\n* MotionMark/tests/master/image-data.html: Added.\n* MotionMark/tests/master/leaves.html: Added.\n* MotionMark/tests/master/multiply.html: Added.\n* MotionMark/tests/master/resources/canvas-stage.js: Added.\n* MotionMark/tests/master/resources/canvas-tests.js: Added.\n* MotionMark/tests/master/resources/compass.svg: Added.\n* MotionMark/tests/master/resources/compass100.png: Added.\n* MotionMark/tests/master/resources/console.svg: Added.\n* MotionMark/tests/master/resources/console100.png: Added.\n* MotionMark/tests/master/resources/contribute.svg: Added.\n* MotionMark/tests/master/resources/contribute100.png: Added.\n* MotionMark/tests/master/resources/debugger.svg: Added.\n* MotionMark/tests/master/resources/debugger100.png: Added.\n* MotionMark/tests/master/resources/focus.js: Added.\n* MotionMark/tests/master/resources/image-data.js: Added.\n* MotionMark/tests/master/resources/inspector.svg: Added.\n* MotionMark/tests/master/resources/inspector100.png: Added.\n* MotionMark/tests/master/resources/layout.svg: Added.\n* MotionMark/tests/master/resources/layout100.png: Added.\n* MotionMark/tests/master/resources/leaves.js: Added.\n* MotionMark/tests/master/resources/multiply.js: Added.\n* MotionMark/tests/master/resources/particles.js: Added.\n* MotionMark/tests/master/resources/performance.svg: Added.\n* MotionMark/tests/master/resources/performance100.png: Added.\n* MotionMark/tests/master/resources/script.svg: Added.\n* MotionMark/tests/master/resources/script100.png: Added.\n* MotionMark/tests/master/resources/shortcuts.svg: Added.\n* MotionMark/tests/master/resources/shortcuts100.png: Added.\n* MotionMark/tests/master/resources/standards.svg: Added.\n* MotionMark/tests/master/resources/standards100.png: Added.\n* MotionMark/tests/master/resources/storage.svg: Added.\n* MotionMark/tests/master/resources/storage100.png: Added.\n* MotionMark/tests/master/resources/styles.svg: Added.\n* MotionMark/tests/master/resources/styles100.png: Added.\n* MotionMark/tests/master/resources/svg-particles.js: Added.\n* MotionMark/tests/master/resources/text.js: Added.\n* MotionMark/tests/master/resources/timeline.svg: Added.\n* MotionMark/tests/master/resources/timeline100.png: Added.\n* MotionMark/tests/master/svg-particles.html: Added.\n* MotionMark/tests/master/text.html: Added.\n* MotionMark/tests/resources/main.js: Added.\n* MotionMark/tests/resources/math.js: Added.\n* MotionMark/tests/resources/stage.css: Added.\n* MotionMark/tests/resources/star.svg: Added.\n* MotionMark/tests/resources/yin-yang.png: Added.\n* MotionMark/tests/resources/yin-yang.svg: Added.\n* MotionMark/tests/simple/resources/simple-canvas-paths.js: Added.\n* MotionMark/tests/simple/resources/simple-canvas.js: Added.\n* MotionMark/tests/simple/resources/tiled-canvas-image.js: Added.\n* MotionMark/tests/simple/simple-canvas-paths.html: Added.\n* MotionMark/tests/simple/tiled-canvas-image.html: Added.\n* MotionMark/tests/template/resources/template-canvas.js: Added.\n* MotionMark/tests/template/resources/template-css.js: Added.\n* MotionMark/tests/template/resources/template-svg.js: Added.\n* MotionMark/tests/template/template-canvas.html: Added.\n* MotionMark/tests/template/template-css.html: Added.\n* MotionMark/tests/template/template-svg.html: Added.\n* MotionMark/version: Added.\n* Speedometer/Full.html: Added.\n* Speedometer/InteractiveRunner.html: Added.\n* Speedometer/resources/benchmark-report.js: Added.\n* Speedometer/resources/benchmark-runner.js: Added.\n* Speedometer/resources/flightjs-example-app/LICENSE.md: Added.\n* Speedometer/resources/flightjs-example-app/README.md: Added.\n* Speedometer/resources/flightjs-example-app/app/boot/page.js: Added.\n* Speedometer/resources/flightjs-example-app/app/component_data/compose_box.js: Added.\n* Speedometer/resources/flightjs-example-app/app/component_data/mail_items.js: Added.\n* Speedometer/resources/flightjs-example-app/app/component_data/move_to.js: Added.\n* Speedometer/resources/flightjs-example-app/app/component_ui/compose_box.js: Added.\n* Speedometer/resources/flightjs-example-app/app/component_ui/folders.js: Added.\n* Speedometer/resources/flightjs-example-app/app/component_ui/mail_controls.js: Added.\n* Speedometer/resources/flightjs-example-app/app/component_ui/mail_items.js: Added.\n* Speedometer/resources/flightjs-example-app/app/component_ui/move_to_selector.js: Added.\n* Speedometer/resources/flightjs-example-app/app/component_ui/with_select.js: Added.\n* Speedometer/resources/flightjs-example-app/app/css/custom.css: Added.\n* Speedometer/resources/flightjs-example-app/app/data.js: Added.\n* Speedometer/resources/flightjs-example-app/app/templates.js: Added.\n* Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.css: Added.\n* Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.min.css: Added.\n* Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap.css: Added.\n* Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap.min.css: Added.\n* Speedometer/resources/flightjs-example-app/components/bootstrap/img/glyphicons-halflings-white.png: Added.\n* Speedometer/resources/flightjs-example-app/components/bootstrap/img/glyphicons-halflings.png: Added.\n* Speedometer/resources/flightjs-example-app/components/bootstrap/js/bootstrap.js: Added.\n* Speedometer/resources/flightjs-example-app/components/bootstrap/js/bootstrap.min.js: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/.gitignore: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/CHANGES: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/CONTRIBUTORS.md: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/LICENSE: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/README.md: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/component.json: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/es5-sham.js: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/es5-sham.min.js: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/es5-shim.js: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/es5-shim.min.js: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/package.json: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-matchers.js: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h.js: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/index.html: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine-html.js: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine.css: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine.js: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine_favicon.png: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/json2.js: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-array.js: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-date.js: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-function.js: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-object.js: Added.\n* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-string.js: Added.\n* Speedometer/resources/flightjs-example-app/components/flight/.travis.yml: Added.\n* Speedometer/resources/flightjs-example-app/components/flight/lib/advice.js: Added.\n* Speedometer/resources/flightjs-example-app/components/flight/lib/component.js: Added.\n* Speedometer/resources/flightjs-example-app/components/flight/lib/compose.js: Added.\n* Speedometer/resources/flightjs-example-app/components/flight/lib/index.js: Added.\n* Speedometer/resources/flightjs-example-app/components/flight/lib/logger.js: Added.\n* Speedometer/resources/flightjs-example-app/components/flight/lib/registry.js: Added.\n* Speedometer/resources/flightjs-example-app/components/flight/lib/utils.js: Added.\n* Speedometer/resources/flightjs-example-app/components/flight/tools/debug/debug.js: Added.\n* Speedometer/resources/flightjs-example-app/components/jasmine-flight/LICENSE.md: Added.\n* Speedometer/resources/flightjs-example-app/components/jasmine-flight/README.md: Added.\n* Speedometer/resources/flightjs-example-app/components/jasmine-flight/bower.json: Added.\n* Speedometer/resources/flightjs-example-app/components/jasmine-flight/lib/jasmine-flight.js: Added.\n* Speedometer/resources/flightjs-example-app/components/jasmine-jquery/lib/jasmine-jquery.js: Added.\n* Speedometer/resources/flightjs-example-app/components/jquery/component.json: Added.\n* Speedometer/resources/flightjs-example-app/components/jquery/composer.json: Added.\n* Speedometer/resources/flightjs-example-app/components/jquery/jquery.js: Added.\n* Speedometer/resources/flightjs-example-app/components/jquery/jquery.min.js: Added.\n* Speedometer/resources/flightjs-example-app/components/mustache/mustache.js: Added.\n* Speedometer/resources/flightjs-example-app/components/requirejs/require.js: Added.\n* Speedometer/resources/flightjs-example-app/index.html: Added.\n* Speedometer/resources/flightjs-example-app/karma.conf.js: Added.\n* Speedometer/resources/flightjs-example-app/package.json: Added.\n* Speedometer/resources/flightjs-example-app/requireMain.js: Added.\n* Speedometer/resources/gauge.png: Added.\n* Speedometer/resources/gauge@2x.png: Added.\n* Speedometer/resources/logo.png: Added.\n* Speedometer/resources/logo@2x.png: Added.\n* Speedometer/resources/main.css: Added.\n* Speedometer/resources/main.js: Added.\n* Speedometer/resources/statistics.js: Added.\n* Speedometer/resources/tests.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/bower.json: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/index.html: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/js/app.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/test/package.json: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/test/readme.md: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/bower.json: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/index.html: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/js/app.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/js/collections/todos.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/js/models/todo.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/js/routers/router.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/js/views/app-view.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/js/views/todo-view.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/backbone/readme.md: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/bower.json: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-data/ember-data.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/index.html: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/js/app.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/js/helpers/pluralize.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/js/models/todo.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/js/router.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/todos_view.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/readme.md: Added.\n* Speedometer/resources/todomvc/architecture-examples/emberjs/test.html: Added.\n* Speedometer/resources/todomvc/architecture-examples/jquery/bower.json: Added.\n* Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Added.\n* Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Added.\n* Speedometer/resources/todomvc/architecture-examples/jquery/css/app.css: Added.\n* Speedometer/resources/todomvc/architecture-examples/jquery/index.html: Added.\n* Speedometer/resources/todomvc/architecture-examples/jquery/js/app.js: Added.\n* Speedometer/resources/todomvc/architecture-examples/jquery/readme.md: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/.gitignore: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/.jshintrc: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/app/js/app.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/app/js/data/stats.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/app/js/data/todos.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/app/js/main.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/app/js/store.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/main_selector.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/new_item.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/stats.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/todo_list.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/toggle_all.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/with_filters.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/app/js/utils.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/app/templates/stats.html: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/app/templates/todo.html: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower.json: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/depot/depot.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-sham.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/advice.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/base.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/component.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/debug.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/registry.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/utils.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text/text.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/requirejs/require.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/index.html: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/karma.conf.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/package.json: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/readme.md: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/test/.jshintrc: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Added.\n* Speedometer/resources/todomvc/dependency-examples/flight/test/test-main.js: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/bower.json: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/director/README.md: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/bower.json: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/react.js: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/bg.png: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/index.html: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/js/app.jsx: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/js/footer.jsx: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/js/todoItem.jsx: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/js/utils.jsx: Added.\n* Speedometer/resources/todomvc/labs/architecture-examples/react/readme.md: Added.\n* Speedometer/resources/todomvc/learn.json: Added.\n* Speedometer/resources/todomvc/license.md: Added.\n* Speedometer/resources/todomvc/readme.md: Added.\n* Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower.json: Added.\n* Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Added.\n* Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Added.\n* Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Added.\n* Speedometer/resources/todomvc/vanilla-examples/vanillajs/index.html: Added.\n* Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/app.js: Added.\n* Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/controller.js: Added.\n* Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/helpers.js: Added.\n* Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/model.js: Added.\n* Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js: Added.\n* Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/view.js: Added.\n* Speedometer/resources/todomvc/vanilla-examples/vanillajs/readme.md: Added.\n* index.html: Added.\n* resources/ARES-6-Logo.png: Added.\n* resources/ARES-6-Logo@2x.png: Added.\n* resources/JetStream-Logo.png: Added.\n* resources/JetStream-Logo@2x.png: Added.\n* resources/MotionMark-Logo.png: Added.\n* resources/MotionMark-Logo@2x.png: Added.\n* resources/Speedometer-Logo.png: Added.\n* resources/Speedometer-Logo@2x.png: Added.\n* resources/main.css: Added.\n\n\n\nCanonical link: https://commits.webkit.org/189005@main\ngit-svn-id: https://svn.webkit.org/repository/webkit/trunk@216811 268f45cc-cd09-0410-ab3c-d52691b4dbfc\n"
    },
    {
      "commit": "e6896ffd9b1a4b6deae32a0098a870ef68f8bddf",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [],
      "author": {
        "name": "Unknown",
        "email": "None",
        "time": "Fri Aug 24 14:11:42 2001"
      },
      "committer": {
        "name": "Unknown",
        "email": "null",
        "time": "Fri Aug 24 14:11:42 2001"
      },
      "message": "New repository initialized by cvs2svn.\n\nCanonical link: https://commits.webkit.org/1@main\ngit-svn-id: https://svn.webkit.org/repository/webkit/trunk@1 268f45cc-cd09-0410-ab3c-d52691b4dbfc\n"
    }
  ]
}
