diff --git a/js.t b/js.t
index 996543c..27aea6e 100644
--- a/js.t
+++ b/js.t
@@ -44,6 +44,7 @@
     js_set $test_iarg    test_iarg;
     js_set $test_var     test_var;
     js_set $test_log     test_log;
+    js_set $test_except  test_except;
 
     js_include test.js;
 
@@ -91,6 +92,10 @@
             return 200 $test_log;
         }
 
+        location /req_except {
+            return 200 $test_except;
+        }
+
         location /res_status {
             js_content status;
         }
@@ -114,6 +119,10 @@
         location /res_ihdr {
             js_content ihdr;
         }
+
+        location /res_except {
+            js_content content_except;
+        }
     }
 }
 
@@ -172,6 +181,11 @@
         req.log("SEE-THIS");
     }
 
+    function test_except(req, res) {
+        var fs = require('fs');
+        fs.readFileSync();
+    }
+
     function status(req, res) {
         res.status = 204;
         if (res.status != 204)
@@ -240,9 +254,14 @@
         res.send(s);
         res.finish();
     }
+
+    function content_except(req, res) {
+        JSON.parse({}.a.a);
+    }
+
 EOF
 
-$t->try_run('no njs available')->plan(20);
+$t->try_run('no njs available')->plan(22);
 
 ###############################################################################
 
@@ -269,6 +288,9 @@
 like(http_get('/res_hdr?bar=empty'), qr/Bar: \x0d/, 'res.headers empty');
 like(http_get('/res_ihdr?a=12&b=34'), qr/^1234$/m, 'res.headers iteration');
 
+http_get('/req_except');
+http_get('/res_except');
+
 TODO: {
 local $TODO = 'zero size buf in writer';
 
@@ -281,6 +303,10 @@
 $t->stop();
 
 ok(index($t->read_file('error.log'), 'SEE-THIS') > 0, 'log js');
+ok(index($t->read_file('error.log'), 'at fs.readFileSync') > 0,
+   'js_set backtrace');
+ok(index($t->read_file('error.log'), 'at JSON.parse') > 0,
+   'js_content backtrace');
 
 ###############################################################################
 
diff --git a/stream_js.t b/stream_js.t
index 2a21643..20df449 100644
--- a/stream_js.t
+++ b/stream_js.t
@@ -103,6 +103,12 @@
         js_filter   js_filter_step;
         proxy_pass  127.0.0.1:8090;
     }
+
+    server {
+        listen      127.0.0.1:8092;
+        js_filter   js_filter_except;
+        proxy_pass  127.0.0.1:8090;
+    }
 }
 
 EOF
@@ -174,10 +180,15 @@
         }
         res += '3';
     }
+
+    function js_filter_except(sess) {
+        sess.a.a;
+    }
+
 EOF
 
 $t->run_daemon(\&stream_daemon, port(8090));
-$t->try_run('no stream njs available')->plan(12);
+$t->try_run('no stream njs available')->plan(13);
 $t->waitforsocket('127.0.0.1:' . port(8090));
 
 ###############################################################################
@@ -196,10 +207,13 @@
 is(stream('127.0.0.1:' . port(8088))->io('xyz'), 'xyz', 'js_preread');
 is(stream('127.0.0.1:' . port(8089))->io('x'), 'z', 'js_filter');
 is(stream('127.0.0.1:' . port(8091))->io('0'), '01233', 'handlers order');
+stream('127.0.0.1:' . port(8092))->io('x');
 
 $t->stop();
 
 ok(index($t->read_file('error.log'), 'SEE-THIS') > 0, 'stream js log');
+ok(index($t->read_file('error.log'), 'at js_filter_except') > 0,
+   'stream js_filter backtrace');
 
 ###############################################################################
 
