From 4f2c027e794d5c6de8abcbaefb83bf47a5cc9ed4 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Sun, 22 Jul 2018 02:05:41 +0300 Subject: [PATCH] testing and tweaking patch... Signed-off-by: Alex A. Naanou --- diff.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/diff.js b/diff.js index 47c5be4..a04063c 100644 --- a/diff.js +++ b/diff.js @@ -1087,12 +1087,13 @@ function(diff, obj, options, types){ // XXX would need to let the type handlers handle themselves a-la .handle(..) var _patch = function(diff, obj){ - var NONE = diff.options.placeholders.NONE - var EMPTY = diff.options.placeholders.EMPTY + var NONE = diff.placeholders.NONE + var EMPTY = diff.placeholders.EMPTY + var options = diff.options - Types.walk(diff, function(change){ + Types.walk(diff.diff, function(change){ // replace the object itself... - if(path.length == 0){ + if(change.path.length == 0){ return change.B } @@ -1112,6 +1113,16 @@ var _patch = function(diff, obj){ } else { // XXX also check what is overwritten... + // XXX need to correctly check EMPTY/NONE... + if('A' in change + && !(cmp(change.A, EMPTY) ? + !(key in target) + : cmp(target[key], change.A))){ + // XXX + console.warn('Patch: Mismatching values at:', change.path, + 'expected:', change.A, + 'got:', target[key]) + } target[key] = change.B }