diff --git a/src/jsonata.js b/src/jsonata.js index 8b037270..d23cfe43 100644 --- a/src/jsonata.js +++ b/src/jsonata.js @@ -1317,7 +1317,9 @@ var jsonata = (function() { }; } for (var jj = 0; jj < deletions.length; jj++) { - delete match[deletions[jj]]; + if(typeof match === 'object' && match !== null) { + delete match[deletions[jj]]; + } } } } diff --git a/test/test-suite/groups/transforms/case013.json b/test/test-suite/groups/transforms/case013.json new file mode 100644 index 00000000..cedd37e8 --- /dev/null +++ b/test/test-suite/groups/transforms/case013.json @@ -0,0 +1,12 @@ +{ + "expr": "$ ~> | ** ['hi'] | {'hello': hi}, ['hi'] |", + "data": { + "hi": "world", + "bye": null + }, + "bindings": {}, + "result": { + "hello": "world", + "bye": null + } +} diff --git a/test/test-suite/groups/transforms/case014.json b/test/test-suite/groups/transforms/case014.json new file mode 100644 index 00000000..053814fb --- /dev/null +++ b/test/test-suite/groups/transforms/case014.json @@ -0,0 +1,12 @@ +{ + "expr": "$ ~> | ** [hi] | {'hello': hi}, ['hi'] |", + "data": { + "hi": "world", + "bye": null + }, + "bindings": {}, + "result": { + "bye": null, + "hello": "world" + } +}