From f32a44ac1a1586fc969c2b97b5b13d6ee86e1677 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Thu, 27 Sep 2018 01:22:13 +0300 Subject: [PATCH] ... Signed-off-by: Alex A. Naanou --- diff.js | 2 +- format.js | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/diff.js b/diff.js index afc8539..3b94972 100644 --- a/diff.js +++ b/diff.js @@ -62,7 +62,7 @@ var MIN_TEXT_LENGTH = 100 // -> Set([key, ..]) // // This is different to Object.keys(..) in that it gets both enumerable -// and non-enumerable keys as well as keys defined in prototypes... +// and non-enumerable keys in the whole prototype chain... var getAllKeys = function(obj){ var res = new Set() while(obj.__proto__ || obj === obj.__proto__){ diff --git a/format.js b/format.js index ca8e09b..1118c7c 100644 --- a/format.js +++ b/format.js @@ -96,7 +96,7 @@ module.OBJECT_CHANGE = AND( AT('type', 'Object'), AT('items', L(OBJECT_ITEM)), // XXX - AT('item_order', undefined)) + OPT('item_order')) // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -108,15 +108,13 @@ module.ARRAY_ITEM = OR( var ARRAY_ITEMS = module.ARRAY_ITEMS = AND( - AT('length', OR( - [N, N], - undefined)), AT('items', L(OR( ARRAY_ITEM, OBJECT_ITEM))), + OPT('length', [N, N]), // XXX - AT('item_order', undefined)) + OPT('item_order')) var ARRAY_CHANGE = module.ARRAY_CHANGE = AND(