lib/polymorphic.js
function isExtendOf(name, variable) {
		var offset = typeof variable === 'object' && variable ? Object.getPrototypeOf(variable) : null,
			pattern = offset ? new RegExp('^' + name + '$') : null;

		//  It is not quite feasible to compare the inheritance using `instanceof` (all constructors would have to
		//  be registered somehow then) we simply compare the constructor function names.
		//  As a side effect, this enables polymorphic to compare against the exact type (unless a developer has
		//  altered the constructor name, which is not protected from overwriting)
		while (offset && offset.constructor) {
			if (pattern.test(offset.constructor.name)) {
				return true;
			}

			offset = Object.getPrototypeOf(offset);
		}

		return false;
	}
function isExtendOf(name, variable) {
		var offset = typeof variable === 'object' && variable ? Object.getPrototypeOf(variable) : null,
			pattern = offset ? new RegExp('^' + name + '$') : null;

		//  It is not quite feasible to compare the inheritance using `instanceof` (all constructors would have to
		//  be registered somehow then) we simply compare the constructor function names.
		//  As a side effect, this enables polymorphic to compare against the exact type (unless a developer has
		//  altered the constructor name, which is not protected from overwriting)
		while (offset && offset.constructor) {
			if (pattern.test(offset.constructor.name)) {
				return true;
			}

			offset = Object.getPrototypeOf(offset);
		}

		return false;
	}
function isExtendOf ( name , variable ) { var offset = typeof variable === 'object' && variable ? Object . getPrototypeOf ( variable ) : null , pattern = offset ? new RegExp ( '^' + name + '$' ) : null ; //  It is not quite feasible to compare the inheritance using `instanceof` (all constructors would have to //  be registered somehow then) we simply compare the constructor function names. //  As a side effect, this enables polymorphic to compare against the exact type (unless a developer has //  altered the constructor name, which is not protected from overwriting) while ( offset && offset . constructor ) { if ( pattern . test ( offset . constructor . name ) ) { return true ; } offset = Object . getPrototypeOf ( offset ) ; } return false ; }
Determine if somewhere in the prototype chains the variable extends an Object with given name
@name    isExtendOf
@access  internal
@param   string  name
@param   object  variable
@return  bool    extends
Determine if somewhere in the prototype chains the variable extends an Object with given name