Emit a better error message when something strange is sent to OutgoingMessage#write
authorisaacs <i@izs.me>
Wed, 5 May 2010 01:28:49 +0000 (18:28 -0700)
committerRyan Dahl <ry@tinyclouds.org>
Wed, 5 May 2010 01:37:00 +0000 (18:37 -0700)
lib/http.js

index 3cfe75b..3737b9c 100644 (file)
@@ -10,6 +10,7 @@ function debug (x) {
 var sys = require('sys');
 var net = require('net');
 var events = require('events');
+var Buffer = require('buffer').Buffer;
 
 var FreeList = require('freelist').FreeList;
 var HTTPParser = process.binding('http_parser').HTTPParser;
@@ -345,6 +346,12 @@ OutgoingMessage.prototype.write = function (chunk, encoding) {
     throw new Error("This type of response MUST NOT have a body.");
   }
 
+  if (typeof chunk !== "string"
+      && !(chunk instanceof Buffer)
+      && !Array.isArray(chunk)) {
+    throw new TypeError("first argument must be a string, Array, or Buffer");
+  }
+
   encoding = encoding || "ascii";
   if (this.chunkedEncoding) {
     if (typeof chunk == 'string') {