'use strict';

// changeable contants
var C = 'constructor', // name of the constructor method
	X = 'extend'; // name of extend method

function Class() {}

Class[X] = function(subclass) {
	var self      = this,
		prototype = Object.create(self.prototype);

	subclass.call(prototype, self.prototype);


	var Extended = prototype.hasOwnProperty(C) ?
		prototype[C] :
		function() { prototype[C].apply(this, arguments); };

	Extended.prototype = prototype;
	Extended[X] = self[X];

	return Extended;
};
@@ -191,28 +191,8 @@
 var 
-self      = this,%0A%09%09
 prot
@@ -213,20 +213,20 @@
 .create(
-self
+this
 .prototy
@@ -257,20 +257,20 @@
 totype, 
-self
+this
 .prototy
@@ -447,12 +447,12 @@
 %5D = 
-self
+this
 %5BX%5D;
@@ -473,8 +473,9 @@
 nded;%0A%7D;
+%0A

Remove unused 'self' variable