From 89d2aa151cdb0a22dcab9b93db13db0d39680a9b Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Sun, 14 Jun 2020 17:54:01 +0300 Subject: [PATCH] still broken, thinking... Signed-off-by: Alex A. Naanou --- object.js | 3 ++- package.json | 2 +- test.js | 21 +++++++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/object.js b/object.js index 0ac7036..077fca1 100755 --- a/object.js +++ b/object.js @@ -118,9 +118,10 @@ var deepKeys = module.deepKeys = function(obj, stop){ var res = [] - while(obj!= null){ + while(obj != null){ res.push(Object.keys(obj)) obj = obj.__proto__ + // XXX need to stop but include the stop object... if(obj === stop){ break }} return [...(new Set(res.flat()))] } diff --git a/package.json b/package.json index 3955a8a..2a70c2d 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ig-object", - "version": "5.0.11", + "version": "5.0.12", "description": "", "main": "object.js", "scripts": { diff --git a/test.js b/test.js index 50ce329..2a0805c 100755 --- a/test.js +++ b/test.js @@ -589,6 +589,27 @@ module.cases = { assert.error('.parent(..) of anonymous function', function(){ object.parent(function(){}, {}) }) }, + 'deepKeys': function(assert){ + var a = { + a: true + } + var b = { + __proto__: a, + b: true, + } + var c = { + __proto__: b, + c: true, + } + + assert(arrayCmp(object.deepKeys(c), ['a', 'b', 'c']), 'full') + assert(arrayCmp(object.deepKeys(c, a), ['a', 'b', 'c']), 'full 2') + + // XXX these are wrong... + console.log('>>>>', object.deepKeys(c, a)) // -/-> ['a', 'b', 'c'] + console.log('>>>>', object.deepKeys(c, b)) // -/-> ['b', 'c'] + console.log('>>>>', object.deepKeys(c, c)) // -/-> ['c'] + } }