diff --git a/dist/S.js b/dist/S.js index eee3b91..e657dbc 100644 --- a/dist/S.js +++ b/dist/S.js @@ -198,6 +198,7 @@ } else { this.value = value; + RootClock.time++; } } return value; diff --git a/dist/es/S.js b/dist/es/S.js index ab9e4cc..f1ac14d 100644 --- a/dist/es/S.js +++ b/dist/es/S.js @@ -195,6 +195,7 @@ var DataNode = /** @class */ (function () { } else { this.value = value; + RootClock.time++; } } return value; diff --git a/dist/es/withsubclocks.js b/dist/es/withsubclocks.js index 90d590c..30998e9 100644 --- a/dist/es/withsubclocks.js +++ b/dist/es/withsubclocks.js @@ -162,6 +162,7 @@ S.data = function data(value) { } else { node.value = value; + RootClock.subtime++; } } return value; diff --git a/dist/withsubclocks.js b/dist/withsubclocks.js index 8ac59ea..ae0e1ae 100644 --- a/dist/withsubclocks.js +++ b/dist/withsubclocks.js @@ -167,6 +167,7 @@ } else { node.value = value; + RootClock.subtime++; } } return value; diff --git a/spec/S.value.spec.js b/spec/S.value.spec.js index a63da96..a41d1b3 100644 --- a/spec/S.value.spec.js +++ b/spec/S.value.spec.js @@ -53,4 +53,15 @@ describe("S.value", function () { expect(f()).toBe(2); }); }); + + it("tolerates consecutive updates when not batching", function () { + // Verify fix for https://github.com/adamhaile/S/issues/25 + S.root(function () { + var d = S.value(1); + d(2); + expect(d()).toBe(2); + d(3); + expect(d()).toBe(3); + }); + }); }); diff --git a/src/S.ts b/src/S.ts index c131107..922190c 100644 --- a/src/S.ts +++ b/src/S.ts @@ -270,6 +270,7 @@ class DataNode { event(); } else { this.value = value; + RootClock.time++; } } return value!; diff --git a/src/withsubclocks.ts b/src/withsubclocks.ts index b4d2751..1f4a8e2 100644 --- a/src/withsubclocks.ts +++ b/src/withsubclocks.ts @@ -209,6 +209,7 @@ S.data = function data(value : T) : (value? : T) => T { event(); } else { node.value = value; + RootClock.subtime++; } } return value!;