Tests: added js tests for raw headers API.
diff --git a/js_headers.t b/js_headers.t
index 3f447f8..62ebfed 100644
--- a/js_headers.t
+++ b/js_headers.t
@@ -100,10 +100,18 @@
             js_content hdr_in;
         }
 
+        location /raw_hdr_in {
+            js_content raw_hdr_in;
+        }
+
         location /hdr_out {
             js_content hdr_out;
         }
 
+        location /raw_hdr_out {
+            js_content raw_hdr_out;
+        }
+
         location /hdr_out_array {
             js_content hdr_out_array;
         }
@@ -216,6 +224,12 @@
         r.return(200, s);
     }
 
+    function raw_hdr_in(r) {
+        var filtered = r.rawHeadersIn
+                       .filter(v=>v[0].toLowerCase() == r.args.filter);
+        r.return(200, 'raw:' + filtered.map(v=>v[1]).join('|'));
+    }
+
     function hdr_sorted_keys(r) {
         var s = '';
         var hdr = r.args.in ? r.headersIn : r.headersOut;
@@ -256,6 +270,15 @@
         r.finish();
     }
 
+    function raw_hdr_out(r) {
+        r.headersOut.a = ['foo', 'bar'];
+        r.headersOut.b = 'b';
+
+        var filtered = r.rawHeadersOut
+                       .filter(v=>v[0].toLowerCase() == r.args.filter);
+        r.return(200, 'raw:' + filtered.map(v=>v[1]).join('|'));
+    }
+
     function hdr_out_array(r) {
         if (!r.args.hidden) {
             r.headersOut['Foo'] = [r.args.fOO];
@@ -303,7 +326,7 @@
 
 EOF
 
-$t->try_run('no njs')->plan(37);
+$t->try_run('no njs')->plan(39);
 
 ###############################################################################
 
@@ -414,6 +437,15 @@
 	. 'Host: localhost' . CRLF . CRLF
 ), qr/foo: bar1,bar2/, 'r.headersIn duplicate generic');
 
+like(http(
+	'GET /raw_hdr_in?filter=foo HTTP/1.0' . CRLF
+	. 'foo: bar1' . CRLF
+	. 'Foo: bar2' . CRLF
+	. 'Host: localhost' . CRLF . CRLF
+), qr/raw: bar1|bar2/, 'r.rawHeadersIn');
+
+like(http_get('/raw_hdr_out?filter=a'), qr/raw: foo|bar/, 'r.rawHeadersOut');
+
 }
 
 like(http(