in pytheas-core/src/main/resources/js/jsondiffpatch.js [394:440]
var reverse = jdp.reverse = function(d){
var prop, rd;
if (typeof d == 'undefined')
{
return;
} else if (d === null){
return null;
} else if (typeof d == 'object' && !isDate(d)) {
if (isArray(d)){
if (d.length < 3) {
if (d.length == 1) {
// add => delete
return [d[0], 0, 0];
} else {
// modify => reverse modify
return [d[1], d[0]];
}
}
else {
if (d[2] == 0) {
// undefined, delete value => add value
return [d[0]];
}
else
if (d[2] == 2) {
return [textDiffReverse(d[0]), 0, 2];
}
else {
throw new Error("invalid diff type");
}
}
}else {
rd = {};
for (prop in d) {
if (d.hasOwnProperty(prop)) {
rd[prop] = reverse(d[prop]);
}
}
return rd;
}
} else if (typeof d === 'string' && d.slice(0,2) === '@@'){
return textDiffReverse(d);
}
return d;
}