Speedometer 2.0: Vanilla JS test doesn't mark all todo items as completed
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 19 May 2017 09:19:01 +0000 (09:19 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 19 May 2017 09:19:01 +0000 (09:19 +0000)
https://bugs.webkit.org/show_bug.cgi?id=172348

Reviewed by Antti Koivisto.

The bug was caused by the in-memory store class using the milisecond precision timestamp as an ID.
Because we inserts 50 items all at once, this can result in multiple data items sharing a single ID.

Fixed the bug by using a mononotically increasing ID instead.

* Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js:
(Store.prototype.save):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@217107 268f45cc-cd09-0410-ab3c-d52691b4dbfc

PerformanceTests/ChangeLog
PerformanceTests/Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js

index 9874522..95ad555 100644 (file)
@@ -1,3 +1,18 @@
+2017-05-19  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Speedometer 2.0: Vanilla JS test doesn't mark all todo items as completed
+        https://bugs.webkit.org/show_bug.cgi?id=172348
+
+        Reviewed by Antti Koivisto.
+
+        The bug was caused by the in-memory store class using the milisecond precision timestamp as an ID.
+        Because we inserts 50 items all at once, this can result in multiple data items sharing a single ID.
+
+        Fixed the bug by using a mononotically increasing ID instead.
+
+        * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js:
+        (Store.prototype.save):
+
 2017-05-18  Ryosuke Niwa  <rniwa@webkit.org>
 
         REGRESSION (r216694 - 216712): Performance test Speedometer/Full.html is failing
index fe682c8..b520514 100644 (file)
@@ -3,6 +3,8 @@
     'use strict';
 
     var MemoryStorage = {};
+    var id = 1;
+
     /**
      * Creates a new client side storage object and will create an empty
      * collection if no collection already exists.
@@ -96,7 +98,7 @@
             callback.call(this, todos);
         } else {
             // Generate an ID
-            updateData.id = new Date().getTime();
+            updateData.id = id++;
 
             todos.push(updateData);
             MemoryStorage[this._dbName] = JSON.stringify(data);