pax_global_header00006660000000000000000000000064121451702360014513gustar00rootroot0000000000000052 comment=e8fd3e37699351ac55b89eecae9b048d49b9f7dc inherits-e8fd3e37699351ac55b89eecae9b048d49b9f7dc/000077500000000000000000000000001214517023600206265ustar00rootroot00000000000000inherits-e8fd3e37699351ac55b89eecae9b048d49b9f7dc/LICENSE000066400000000000000000000007441214517023600216400ustar00rootroot00000000000000 DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 Copyright (C) 2004 Sam Hocevar Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. You just DO WHAT THE FUCK YOU WANT TO. inherits-e8fd3e37699351ac55b89eecae9b048d49b9f7dc/README.md000066400000000000000000000031311214517023600221030ustar00rootroot00000000000000Browser-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-e8fd3e37699351ac55b89eecae9b048d49b9f7dc/inherits.js000066400000000000000000000000521214517023600230060ustar00rootroot00000000000000module.exports = require('util').inherits inherits-e8fd3e37699351ac55b89eecae9b048d49b9f7dc/inherits_browser.js000066400000000000000000000012401214517023600245510ustar00rootroot00000000000000if (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-e8fd3e37699351ac55b89eecae9b048d49b9f7dc/package.json000066400000000000000000000010651214517023600231160ustar00rootroot00000000000000{ "name": "inherits", "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", "version": "2.0.0", "keywords": [ "inheritance", "class", "klass", "oop", "object-oriented", "inherits", "browser", "browserify" ], "main": "./inherits.js", "browser": "./inherits_browser.js", "repository": "https://github.com/isaacs/inherits", "license": { "type": "WTFPL2" }, "author": "Isaac Z. Schlueter (http://blog.izs.me/)", "scripts": { "test": "node test" } } inherits-e8fd3e37699351ac55b89eecae9b048d49b9f7dc/test.js000066400000000000000000000007761214517023600221550ustar00rootroot00000000000000var 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')