patch 7.4.1278
Problem: When jsonencode() fails it still returns something.
Solution: Return an empty string on failure.
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index 94ad81c..2a56c0d 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -118,10 +118,15 @@
sleep 10m
call assert_equal([-2, 'ERROR'], ch_sendexpr(handle, 'eval-result'))
+ " Send an eval request that works but can't be encoded.
+ call assert_equal('ok', ch_sendexpr(handle, 'eval-error'))
+ sleep 10m
+ call assert_equal([-3, 'ERROR'], ch_sendexpr(handle, 'eval-result'))
+
" Send a bad eval request. There will be no response.
call assert_equal('ok', ch_sendexpr(handle, 'eval-bad'))
sleep 10m
- call assert_equal([-2, 'ERROR'], ch_sendexpr(handle, 'eval-result'))
+ call assert_equal([-3, 'ERROR'], ch_sendexpr(handle, 'eval-result'))
" Send an expr request
call assert_equal('ok', ch_sendexpr(handle, 'an expr'))