diff --git a/lib/http.js b/lib/http.js index 3cfe75b861..3737b9ce9c 100644 --- a/lib/http.js +++ b/lib/http.js @@ -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') {