| 
					
				 | 
			
			
				@@ -2,6 +2,24 @@ Smalltalk current createPackage: 'Kernel-Methods' properties: #{}! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Object subclass: #CompiledMethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	category: 'Kernel-Methods'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!CompiledMethod commentStamp! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+CompiledMethod hold the source and compiled code of a class method. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+You can get a CompiledMethod using `Behavior>>methodAt:` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	String methodAt: 'lines' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+and read the source code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(String methodAt: 'lines') source 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+See referenced classes: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(String methodAt: 'lines') referencedClasses 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+or messages sent from this method: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(String methodAt: 'lines')  messageSends! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !CompiledMethod methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -60,7 +78,7 @@ Object subclass: #BlockClosure 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 A BlockClosure is a lexical closure. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 The JavaScript representation is a function. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-A BlockClosure is evaluated with the #value* methods in the 'evaluating' protocol.! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+A BlockClosure is evaluated with the `#value*` methods in the 'evaluating' protocol.! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !BlockClosure methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -187,9 +205,9 @@ Object subclass: #MethodContext 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	category: 'Kernel-Methods'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !MethodContext commentStamp! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-MethodContext hold all the dynamic state associated with the execution of either a method activation resulting from a message send. That is used to build the call stack while debugging. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+MethodContext holds all the dynamic state associated with the execution of either a method activation resulting from a message send. That is used to build the call stack while debugging. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-MethodContext instances are JavaScript SmalltalkMethodContext objects defined in boot.js  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+MethodContext instances are JavaScript `SmalltalkMethodContext` objects defined in boot.js  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Current limitation: MethodContext instances are not created on Block evaluation. That means it's actually impossible to debug inside a Block.! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -225,9 +243,9 @@ Object subclass: #Message 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !Message commentStamp! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Generally, the system does not use instances of Message for efficiency reasons. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 However, when a message is not understood by its receiver, the interpreter will make up an instance of it in order to capture the information involved in an actual message transmission.  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-This instance is sent it as an argument with the message doesNotUnderstand: to the receiver. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+This instance is sent it as an argument with the message `doesNotUnderstand:` to the receiver. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-See boot.js, messageNotUnderstood  and its counterpart Object>>doesNotUnderstand:! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+See boot.js, `messageNotUnderstood`  and its counterpart `Object>>doesNotUnderstand:`! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !Message methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |