mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-01 09:47:56 +08:00
R=jacktfranklin@chromium.org Bug: 1213034 Change-Id: I5da8225f60b53870a1c67d6b5d02a464c08f4eb2 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2917088 Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org> Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
35 lines
729 B
JavaScript
35 lines
729 B
JavaScript
function override(source1, source2) {
|
|
var target = {};
|
|
var key1;
|
|
var key2;
|
|
var item;
|
|
|
|
for (key1 in source1) {
|
|
item = source1[key1];
|
|
|
|
if (Array.isArray(item)) {
|
|
target[key1] = item.slice(0);
|
|
} else if (typeof item == 'object' && item !== null) {
|
|
target[key1] = override(item, {});
|
|
} else {
|
|
target[key1] = item;
|
|
}
|
|
}
|
|
|
|
for (key2 in source2) {
|
|
item = source2[key2];
|
|
|
|
if (key2 in target && Array.isArray(item)) {
|
|
target[key2] = item.slice(0);
|
|
} else if (key2 in target && typeof item == 'object' && item !== null) {
|
|
target[key2] = override(target[key2], item);
|
|
} else {
|
|
target[key2] = item;
|
|
}
|
|
}
|
|
|
|
return target;
|
|
}
|
|
|
|
module.exports = override;
|