|  | @@ -104,26 +104,33 @@ function $OrderedCollection(){return globals.OrderedCollection||(typeof OrderedC
 | 
	
		
			
				|  |  |  function $Smalltalk(){return globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 | 
	
		
			
				|  |  |  function $ExportMethodProtocol(){return globals.ExportMethodProtocol||(typeof ExportMethodProtocol=="undefined"?nil:ExportMethodProtocol)}
 | 
	
		
			
				|  |  |  return smalltalk.withContext(function($ctx1) { 
 | 
	
		
			
				|  |  | -var $1,$2;
 | 
	
		
			
				|  |  | -extensionName="*".__comma(_st(aPackage)._name());
 | 
	
		
			
				|  |  | +var $1,$2,$3,$4;
 | 
	
		
			
				|  |  | +$1=_st(aPackage)._name();
 | 
	
		
			
				|  |  | +$ctx1.sendIdx["name"]=1;
 | 
	
		
			
				|  |  | +extensionName="*".__comma($1);
 | 
	
		
			
				|  |  |  result=_st($OrderedCollection())._new();
 | 
	
		
			
				|  |  | -_st(_st($Smalltalk())._classes())._do_((function(each){
 | 
	
		
			
				|  |  | +_st(_st(_st(_st($Smalltalk())._classes())._asArray())._sorted_((function(a,b){
 | 
	
		
			
				|  |  | +return smalltalk.withContext(function($ctx2) {
 | 
	
		
			
				|  |  | +$2=_st(a)._name();
 | 
	
		
			
				|  |  | +$ctx2.sendIdx["name"]=2;
 | 
	
		
			
				|  |  | +return _st($2).__lt(_st(b)._name());
 | 
	
		
			
				|  |  | +}, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1,1)})})))._do_((function(each){
 | 
	
		
			
				|  |  |  return smalltalk.withContext(function($ctx2) {
 | 
	
		
			
				|  |  |  return _st([each,_st(each)._class()])._do_((function(behavior){
 | 
	
		
			
				|  |  |  return smalltalk.withContext(function($ctx3) {
 | 
	
		
			
				|  |  | -$1=_st(_st(behavior)._protocols())._includes_(extensionName);
 | 
	
		
			
				|  |  | -if(smalltalk.assert($1)){
 | 
	
		
			
				|  |  | +$3=_st(_st(behavior)._protocols())._includes_(extensionName);
 | 
	
		
			
				|  |  | +if(smalltalk.assert($3)){
 | 
	
		
			
				|  |  |  return _st(result)._add_(_st($ExportMethodProtocol())._name_theClass_(extensionName,behavior));
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  | -}, function($ctx3) {$ctx3.fillBlock({behavior:behavior},$ctx2,2)})}));
 | 
	
		
			
				|  |  | -}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)})}));
 | 
	
		
			
				|  |  | +}, function($ctx3) {$ctx3.fillBlock({behavior:behavior},$ctx2,3)})}));
 | 
	
		
			
				|  |  | +}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,2)})}));
 | 
	
		
			
				|  |  |  $ctx1.sendIdx["do:"]=1;
 | 
	
		
			
				|  |  | -$2=result;
 | 
	
		
			
				|  |  | -return $2;
 | 
	
		
			
				|  |  | +$4=result;
 | 
	
		
			
				|  |  | +return $4;
 | 
	
		
			
				|  |  |  }, function($ctx1) {$ctx1.fill(self,"extensionProtocolsOfPackage:",{aPackage:aPackage,extensionName:extensionName,result:result},globals.AbstractExporter)})},
 | 
	
		
			
				|  |  |  args: ["aPackage"],
 | 
	
		
			
				|  |  | -source: "extensionProtocolsOfPackage: aPackage\x0a\x09| extensionName result |\x0a\x09\x0a\x09extensionName := '*', aPackage name.\x0a\x09result := OrderedCollection new.\x0a\x09\x0a\x09\x22The classes must be loaded since it is extensions only.\x0a\x09Therefore sorting (dependency resolution) does not matter here.\x0a\x09Not sorting improves the speed by a number of magnitude.\x22\x0a\x09\x0a\x09Smalltalk classes do: [ :each |\x0a\x09\x09{each. each class} do: [ :behavior |\x0a\x09\x09\x09(behavior protocols includes: extensionName) ifTrue: [\x0a\x09\x09\x09\x09result add: (ExportMethodProtocol name: extensionName theClass: behavior) ] ] ].\x0a\x0a\x09^ result",
 | 
	
		
			
				|  |  | -messageSends: [",", "name", "new", "do:", "classes", "class", "ifTrue:", "includes:", "protocols", "add:", "name:theClass:"],
 | 
	
		
			
				|  |  | +source: "extensionProtocolsOfPackage: aPackage\x0a\x09| extensionName result |\x0a\x09\x0a\x09extensionName := '*', aPackage name.\x0a\x09result := OrderedCollection new.\x0a\x09\x0a\x09\x22The classes must be loaded since it is extensions only.\x0a\x09Therefore topological sorting (dependency resolution) does not matter here.\x0a\x09Not sorting topologically improves the speed by a number of magnitude.\x0a\x09\x0a\x09Not to shuffle diffs, classes are sorted by their name.\x22\x0a\x09\x0a\x09(Smalltalk classes asArray sorted: [ :a :b | a name < b name ]) do: [ :each |\x0a\x09\x09{each. each class} do: [ :behavior |\x0a\x09\x09\x09(behavior protocols includes: extensionName) ifTrue: [\x0a\x09\x09\x09\x09result add: (ExportMethodProtocol name: extensionName theClass: behavior) ] ] ].\x0a\x0a\x09^ result",
 | 
	
		
			
				|  |  | +messageSends: [",", "name", "new", "do:", "sorted:", "asArray", "classes", "<", "class", "ifTrue:", "includes:", "protocols", "add:", "name:theClass:"],
 | 
	
		
			
				|  |  |  referencedClasses: ["OrderedCollection", "Smalltalk", "ExportMethodProtocol"]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  globals.AbstractExporter);
 |