THRIFT-3200 JS and nodejs do not encode JSON protocol binary fields as base64
Client: Javascript
Patch: Nobuaki Sukegawa

This closes #698
diff --git a/lib/js/test/test.js b/lib/js/test/test.js
index 0c7d2cb..2d8ec9b 100755
--- a/lib/js/test/test.js
+++ b/lib/js/test/test.js
@@ -58,7 +58,7 @@
     if (!details.result) {
       console.log('======== FAIL ========');
       console.log('TestName: ' + details.name);
-      details.message && console.log(details.message);
+      if (details.message) console.log(details.message);
       console.log('Expected: ' + details.expected);
       console.log('Actual  : ' + details.actual);
       console.log('======================');
@@ -86,6 +86,24 @@
   test("Void", function() {
     equal(client.testVoid(), undefined);
   });
+  test("Binary (String)", function() {
+    var binary = '';
+    for (var v = 255; v >= 0; --v) {
+      binary += String.fromCharCode(v);
+    }
+    equal(client.testBinary(binary), binary);
+  });
+  test("Binary (Uint8Array)", function() {
+    var binary = '';
+    for (var v = 255; v >= 0; --v) {
+      binary += String.fromCharCode(v);
+    }
+    var arr = new Uint8Array(binary.length);
+    for (var i = 0; i < binary.length; ++i) {
+      arr[i] = binary[i].charCodeAt();
+    }
+    equal(client.testBinary(arr), binary);
+  });
   test("String", function() {
     equal(client.testString(''), '');
     equal(client.testString(stringTest), stringTest);