in modules/core/src/lifecycle/props.js [134:154]
function comparePropValues(newProp, oldProp, propType) {
// If prop type has an equal function, invoke it
let equal = propType && propType.equal;
if (equal && !equal(newProp, oldProp, propType)) {
return 'changed deeply';
}
if (!equal) {
// If object has an equals function, invoke it
equal = newProp && oldProp && newProp.equals;
if (equal && !equal.call(newProp, oldProp)) {
return 'changed deeply';
}
}
if (!equal && oldProp !== newProp) {
return 'changed shallowly';
}
return null;
}