Safe constructor: net.Server, net.Stream
authorRyan Dahl <ry@tinyclouds.org>
Fri, 27 Aug 2010 22:38:46 +0000 (15:38 -0700)
committerRyan Dahl <ry@tinyclouds.org>
Fri, 27 Aug 2010 22:38:46 +0000 (15:38 -0700)
lib/net.js
test/simple/test-net-binary.js

index 2349bc1..cc12e9e 100644 (file)
@@ -513,6 +513,7 @@ function initStream (self) {
 }
 
 function Stream (fd, type) {
+  if (!(this instanceof Stream)) return new Stream(fd, type);
   events.EventEmitter.call(this);
 
   this.fd = null;
@@ -1032,6 +1033,7 @@ Stream.prototype.end = function (data, encoding) {
 
 
 function Server (listener) {
+  if (!(this instanceof Server)) return new Server(listener);
   events.EventEmitter.call(this);
   var self = this;
 
index 233118c..6274ad8 100644 (file)
@@ -1,6 +1,6 @@
 common = require("../common");
 assert = common.assert
-tcp = require("tcp");
+net = require("net");
 
 binaryString = "";
 for (var i = 255; i >= 0; i--) {
@@ -19,7 +19,8 @@ for (var i = 255; i >= 0; i--) {
   binaryString += S;
 }
 
-var echoServer = tcp.createServer(function (connection) {
+// safe constructor
+var echoServer = net.Server(function (connection) {
   connection.setEncoding("binary");
   connection.addListener("data", function (chunk) {
     common.error("recved: " + JSON.stringify(chunk));
@@ -35,7 +36,7 @@ var recv = "";
 
 echoServer.addListener("listening", function() {
   var j = 0;
-  var c = tcp.createConnection(common.PORT);
+  var c = net.createConnection(common.PORT);
 
   c.setEncoding("binary");
   c.addListener("data", function (chunk) {