notifySubscribers and equalityComparer are not used outside KnockoutJS

This commit is contained in:
djmaze 2021-12-31 17:10:40 +01:00
parent 679d7356e0
commit 30e9b89d9b
9 changed files with 113 additions and 114 deletions

View file

@ -149,7 +149,7 @@ function evaluateImmediate_CallReadThenEndDependencyDetection(state, dependencyD
}
var computedFn = {
"equalityComparer": valuesArePrimitiveAndEqual,
equalityComparer: valuesArePrimitiveAndEqual,
getDependenciesCount: function () {
return this[computedState].dependenciesCount;
},
@ -303,17 +303,17 @@ var computedFn = {
if (changed) {
if (!state.isSleeping) {
computedObservable["notifySubscribers"](state.latestValue, "beforeChange");
computedObservable.notifySubscribers(state.latestValue, "beforeChange");
} else {
computedObservable.updateVersion();
}
state.latestValue = newValue;
computedObservable["notifySubscribers"](state.latestValue, "spectate");
computedObservable.notifySubscribers(state.latestValue, "spectate");
if (!state.isSleeping && notifyChange) {
computedObservable["notifySubscribers"](state.latestValue);
computedObservable.notifySubscribers(state.latestValue);
}
if (computedObservable._recordUpdate) {
computedObservable._recordUpdate();
@ -321,7 +321,7 @@ var computedFn = {
}
if (isInitial) {
computedObservable["notifySubscribers"](state.latestValue, "awake");
computedObservable.notifySubscribers(state.latestValue, "awake");
}
return changed;
@ -420,7 +420,7 @@ var pureComputedOverrides = {
}
if (!state.isDisposed) { // test since evaluating could trigger disposal
computedObservable["notifySubscribers"](state.latestValue, "awake");
computedObservable.notifySubscribers(state.latestValue, "awake");
}
}
},
@ -438,7 +438,7 @@ var pureComputedOverrides = {
}
});
state.isSleeping = true;
this["notifySubscribers"](undefined, "asleep");
this.notifySubscribers(undefined, "asleep");
}
},
getVersion: function () {

View file

@ -16,7 +16,7 @@ ko.extenders = {
},
'notify': (target, notifyWhen) => {
target["equalityComparer"] = notifyWhen == "always" ?
target.equalityComparer = notifyWhen == "always" ?
null : // null equalityComparer means to always notify
valuesArePrimitiveAndEqual;
}

View file

@ -42,13 +42,13 @@ var observableFn = {
let value = this[observableLatestValue];
return value && value.toJSON ? value.toJSON() : value;
},
'equalityComparer': valuesArePrimitiveAndEqual,
equalityComparer: valuesArePrimitiveAndEqual,
peek: function() { return this[observableLatestValue]; },
valueHasMutated: function () {
this['notifySubscribers'](this[observableLatestValue], 'spectate');
this['notifySubscribers'](this[observableLatestValue]);
this.notifySubscribers(this[observableLatestValue], 'spectate');
this.notifySubscribers(this[observableLatestValue]);
},
valueWillMutate: function () { this['notifySubscribers'](this[observableLatestValue], 'beforeChange'); }
valueWillMutate: function () { this.notifySubscribers(this[observableLatestValue], 'beforeChange'); }
};
// Note that for browsers that don't support proto assignment, the

View file

@ -82,7 +82,7 @@ ko.extenders['trackArrayChanges'] = (target, options) => {
pendingChanges = 0;
if (changes && changes.length) {
target['notifySubscribers'](changes, arrayChangeEventName);
target.notifySubscribers(changes, arrayChangeEventName);
}
}
}

View file

@ -67,7 +67,7 @@ var ko_subscribable_fn = {
return subscription;
},
"notifySubscribers": function (valueToNotify, event) {
notifySubscribers: function (valueToNotify, event) {
event = event || defaultEvent;
if (event === defaultEvent) {
this.updateVersion();
@ -105,9 +105,9 @@ var ko_subscribable_fn = {
beforeChange = 'beforeChange';
if (!self._origNotifySubscribers) {
self._origNotifySubscribers = self["notifySubscribers"];
self._origNotifySubscribers = self.notifySubscribers;
// Moved out of "limit" to avoid the extra closure
self["notifySubscribers"] = function(value, event) {
self.notifySubscribers = function(value, event) {
if (!event || event === defaultEvent) {
this._limitChange(value);
} else if (event === 'beforeChange') {
@ -165,7 +165,7 @@ var ko_subscribable_fn = {
},
isDifferent: function(oldValue, newValue) {
return !this['equalityComparer'] || !this['equalityComparer'](oldValue, newValue);
return !this.equalityComparer || !this.equalityComparer(oldValue, newValue);
},
toString: () => '[object Object]',
@ -197,4 +197,4 @@ ko.subscribable['fn'] = ko_subscribable_fn;
ko.isSubscribable = instance =>
instance != null && typeof instance.subscribe == "function" && typeof instance["notifySubscribers"] == "function";
instance != null && typeof instance.subscribe == "function" && typeof instance.notifySubscribers == "function";