From d3f04933f151b233ccd1972a933d0e9873d78ca5 Mon Sep 17 00:00:00 2001 From: Dmitry Baranovskiy Date: Mon, 28 Jun 2010 11:05:22 +1000 Subject: [PATCH] sys.inherts to shadow constructor property from enumerability thanks to ES5 features in V8 it is quite easily possible. --- lib/sys.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/sys.js b/lib/sys.js index f877dad..ac8b023 100644 --- a/lib/sys.js +++ b/lib/sys.js @@ -315,9 +315,11 @@ exports.pump = function (readStream, writeStream, callback) { * @param {function} superCtor Constructor function to inherit prototype from */ exports.inherits = function (ctor, superCtor) { - var tempCtor = function(){}; - tempCtor.prototype = superCtor.prototype; - ctor.super_ = superCtor; - ctor.prototype = new tempCtor(); - ctor.prototype.constructor = ctor; + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false + } + }); }; -- 2.7.4