From 05c148ab9f58bf2e56334c5fd71cfe804647a7a8 Mon Sep 17 00:00:00 2001 From: andrew-coleman Date: Thu, 10 Jan 2019 11:50:49 +0000 Subject: [PATCH] $each should not result in undefined values in the result object --- src/functions.js | 5 ++++- test/test-suite/groups/function-each/case002.json | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 test/test-suite/groups/function-each/case002.json diff --git a/src/functions.js b/src/functions.js index 697aefed..c62f41cc 100644 --- a/src/functions.js +++ b/src/functions.js @@ -1630,7 +1630,10 @@ const functions = (() => { for (var key in obj) { var func_args = hofFuncArgs(func, obj[key], key, obj); // invoke func - result.push(yield* func.apply(this, func_args)); + var val = yield* func.apply(this, func_args); + if(typeof val !== 'undefined') { + result.push(val); + } } return result; diff --git a/test/test-suite/groups/function-each/case002.json b/test/test-suite/groups/function-each/case002.json new file mode 100644 index 00000000..f49801cb --- /dev/null +++ b/test/test-suite/groups/function-each/case002.json @@ -0,0 +1,7 @@ +{ + "expr": "$each(function($v, $k) {$k[$v>2]})", + "data": { "a": 1, "b": 2, "c": 3, "d": 4 }, + "bindings": {}, + "result": ["c", "d"], + "unordered": true +}