1 |
|
2 | var modifyObjectInPlace;
|
3 |
|
4 | module.exports = modifyObjectInPlace = function(oldObject, newObject, cachedObject) {
|
5 | var key, localChange, localChanges, _i, _j, _len, _len1, _ref, _ref1;
|
6 | _ref = Object.keys(oldObject);
|
7 | for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
8 | key = _ref[_i];
|
9 | if (!(key[0] !== '$')) {
|
10 | continue;
|
11 | }
|
12 | localChange = cachedObject && (cachedObject[key] == null);
|
13 | if (!((newObject[key] != null) || localChange)) {
|
14 | delete oldObject[key];
|
15 | }
|
16 | }
|
17 | _ref1 = Object.keys(newObject);
|
18 | for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
|
19 | key = _ref1[_j];
|
20 | if (key[0] !== '$') {
|
21 | if (angular.isObject(oldObject[key]) && angular.isObject(newObject[key])) {
|
22 | modifyObjectInPlace(oldObject[key], newObject[key], cachedObject != null ? cachedObject[key] : void 0);
|
23 | } else {
|
24 | localChanges = cachedObject && !angular.equals(oldObject[key], cachedObject[key]);
|
25 | if (!(angular.equals(oldObject[key], newObject[key]) || localChanges)) {
|
26 | oldObject[key] = newObject[key];
|
27 | }
|
28 | }
|
29 | }
|
30 | }
|
31 | if (newObject.length != null) {
|
32 | return oldObject.length = newObject.length;
|
33 | }
|
34 | };
|