The part of source code is:
getAllKeys(spec).forEach(function(key) {
if (hasOwnProperty.call(commands, key)) {
var objectWasNextObject = object === nextObject;
nextObject = commands[key](spec[key], nextObject, spec, object);
if (objectWasNextObject && update.isEquals(nextObject, object)) {
nextObject = object;
}
} else {
// ...
}
})
and the update.isEquals
code is
update.isEquals = function(a, b) { return a === b; };
Why is nextObject = object;
needed?
When isEquals
returns true
, nextObject
equals object
already.