pax_global_header00006660000000000000000000000064122045137070014513gustar00rootroot0000000000000052 comment=3af5a10c6b51f9e99d9f90394645d7ea630d5eaa inherits-2.0.1/000077500000000000000000000000001220451370700133405ustar00rootroot00000000000000inherits-2.0.1/LICENSE000066400000000000000000000013551220451370700143510ustar00rootroot00000000000000The ISC License Copyright (c) Isaac Z. Schlueter Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. inherits-2.0.1/README.md000066400000000000000000000031311220451370700146150ustar00rootroot00000000000000Browser-friendly inheritance fully compatible with standard node.js [inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor). This package exports standard `inherits` from node.js `util` module in node environment, but also provides alternative browser-friendly implementation through [browser field](https://gist.github.com/shtylman/4339901). Alternative implementation is a literal copy of standard one located in standalone module to avoid requiring of `util`. It also has a shim for old browsers with no `Object.create` support. While keeping you sure you are using standard `inherits` implementation in node.js environment, it allows bundlers such as [browserify](https://github.com/substack/node-browserify) to not include full `util` package to your client code if all you need is just `inherits` function. It worth, because browser shim for `util` package is large and `inherits` is often the single function you need from it. It's recommended to use this package instead of `require('util').inherits` for any code that has chances to be used not only in node.js but in browser too. ## usage ```js var inherits = require('inherits'); // then use exactly as the standard one ``` ## note on version ~1.0 Version ~1.0 had completely different motivation and is not compatible neither with 2.0 nor with standard node.js `inherits`. If you are using version ~1.0 and planning to switch to ~2.0, be careful: * new version uses `super_` instead of `super` for referencing superclass * new version overwrites current prototype while old one preserves any existing fields on it inherits-2.0.1/inherits.js000066400000000000000000000000521220451370700155200ustar00rootroot00000000000000module.exports = require('util').inherits inherits-2.0.1/inherits_browser.js000066400000000000000000000012401220451370700172630ustar00rootroot00000000000000if (typeof Object.create === 'function') { // implementation from standard node.js 'util' module module.exports = function inherits(ctor, superCtor) { ctor.super_ = superCtor ctor.prototype = Object.create(superCtor.prototype, { constructor: { value: ctor, enumerable: false, writable: true, configurable: true } }); }; } else { // old school shim for old browsers module.exports = function inherits(ctor, superCtor) { ctor.super_ = superCtor var TempCtor = function () {} TempCtor.prototype = superCtor.prototype ctor.prototype = new TempCtor() ctor.prototype.constructor = ctor } } inherits-2.0.1/package.json000066400000000000000000000007331220451370700156310ustar00rootroot00000000000000{ "name": "inherits", "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", "version": "2.0.1", "keywords": [ "inheritance", "class", "klass", "oop", "object-oriented", "inherits", "browser", "browserify" ], "main": "./inherits.js", "browser": "./inherits_browser.js", "repository": "git://github.com/isaacs/inherits", "license": "ISC", "scripts": { "test": "node test" } } inherits-2.0.1/test.js000066400000000000000000000007761220451370700146670ustar00rootroot00000000000000var inherits = require('./inherits.js') var assert = require('assert') function test(c) { assert(c.constructor === Child) assert(c.constructor.super_ === Parent) assert(Object.getPrototypeOf(c) === Child.prototype) assert(Object.getPrototypeOf(Object.getPrototypeOf(c)) === Parent.prototype) assert(c instanceof Child) assert(c instanceof Parent) } function Child() { Parent.call(this) test(this) } function Parent() {} inherits(Child, Parent) var c = new Child test(c) console.log('ok')