| 
					
				 | 
			
			
				@@ -274,17 +274,6 @@ ownMethodsOfMetaClass: aClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	^ self ownMethodsOfClass: aClass theMetaClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!Exporter methodsFor: 'convenience'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-jsClassNameFor: aClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^ aClass isMetaclass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		ifTrue: [ (self jsClassNameFor: aClass instanceClass), '.klass' ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		ifFalse: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			aClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				ifNil: [ 'null' ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				ifNotNil: [ '$globals.', aClass name ] ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !Exporter methodsFor: 'output'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 exportBehavior: aBehavior on: aStream 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -297,22 +286,20 @@ exportDefinitionOf: aClass on: aStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	aStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nextPutAll: '$core.addClass('; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		nextPutAll: '''', (self classNameFor: aClass), ''', '; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		nextPutAll: (self jsClassNameFor: aClass superclass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		nextPutAll: ', ['. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	aClass instanceVariableNames 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		do: [ :each | aStream nextPutAll: '''', each, '''' ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		separatedBy: [ aStream nextPutAll: ', ' ]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	aStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		nextPutAll: '], '''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		nextPutAll: aClass category, ''''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: (self classNameFor: aClass) asJavascript; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: ', '; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: (aClass superclass ifNil: [ 'null' ] ifNotNil: [ :superclass | superclass asJavascript ]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: ', '; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: aClass instanceVariableNames asJavascript; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: ', '; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: aClass category asJavascript; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nextPutAll: ');'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	aClass comment ifNotEmpty: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		aStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			nextPutAll: '//>>excludeStart("ide", pragmas.excludeIdeData);'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			nextPutAll: (self jsClassNameFor: aClass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			nextPutAll: aClass asJavascript; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			nextPutAll: '.comment='; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			nextPutAll: aClass comment crlfSanitized asJavascript; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			nextPutAll: ';'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -325,12 +312,11 @@ exportMetaDefinitionOf: aClass on: aStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	aStream lf. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	aClass theMetaClass instanceVariableNames ifNotEmpty: [ :classIvars | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		aStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		nextPutAll: (self jsClassNameFor: aClass theMetaClass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		nextPutAll: '.iVarNames = ['. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		classIvars 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		do: [ :each | aStream nextPutAll: '''', each, '''' ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		separatedBy: [ aStream nextPutAll: ',' ]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		aStream nextPutAll: '];', String lf ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: aClass theMetaClass asJavascript; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: '.iVarNames = '; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: classIvars asJavascript; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: ';'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		lf ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 exportMethod: aMethod on: aStream 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -338,7 +324,7 @@ exportMethod: aMethod on: aStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nextPutAll: '$core.addMethod(';lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nextPutAll: '$core.method({';lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nextPutAll: 'selector: ', aMethod selector asJavascript, ',';lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		nextPutAll: 'protocol: ''', aMethod protocol, ''',';lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: 'protocol: ', aMethod protocol asJavascript, ',';lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nextPutAll: 'fn: ', aMethod fn compiledSource, ',';lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nextPutAll: '//>>excludeStart("ide", pragmas.excludeIdeData);';lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nextPutAll: 'args: ', aMethod arguments asJavascript, ','; lf; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -347,7 +333,7 @@ exportMethod: aMethod on: aStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nextPutAll: '//>>excludeEnd("ide");';lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nextPutAll: 'messageSends: ', aMethod messageSends asJavascript;lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nextPutAll: '}),';lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		nextPutAll: (self jsClassNameFor: aMethod methodClass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: aMethod methodClass asJavascript; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nextPutAll: ');';lf;lf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -393,7 +379,8 @@ exportPackageContextOf: aPackage on: aStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 exportPackageDefinitionOf: aPackage on: aStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	aStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nextPutAll: '$core.addPackage('; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		nextPutAll: '''', aPackage name, ''');'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: aPackage name asJavascript; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: ');'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		lf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -430,15 +417,16 @@ exportTraitDefinitionOf: aClass on: aStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	aStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nextPutAll: '$core.addTrait('; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		nextPutAll: '''', (self classNameFor: aClass), ''', '''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		nextPutAll: aClass category, ''''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: (self classNameFor: aClass) asJavascript; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: ', '; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nextPutAll: aClass category asJavascript; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		nextPutAll: ');'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	aClass comment ifNotEmpty: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		aStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			nextPutAll: '//>>excludeStart("ide", pragmas.excludeIdeData);'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			lf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			nextPutAll: (self jsClassNameFor: aClass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			nextPutAll: aClass asJavascript; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			nextPutAll: '.comment='; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			nextPutAll: aClass comment crlfSanitized asJavascript; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			nextPutAll: ';'; 
			 |