docs: function extendClass(parent, constructor)
  	{
  		var anonymous = function() {};
  		anonymous.prototype = parent.prototype;
  		constructor.prototype = new anonymous();
  		constructor.constructor = constructor;
  
  		defineProperties.apply(null, [constructor.prototype, { configurable: false }].concat(Array.prototype.slice.call(arguments, 2)));
  
  		defineProperties(constructor, { configurable: false }, {
  			extend: partial(extendClass, constructor)
  		});
  
  		return constructor;
  	}