'From Croquet1.0beta of 11 April 2006 [latest update: #1] on 12 November 2008 at 2:55:21 pm'! !Boolean methodsFor: 'printing' stamp: 'apb 4/21/2006 09:22'! isLiteral ^ true! ! !CompiledMethod methodsFor: 'accessing' stamp: 'eem 5/24/2008 13:42'! methodClass "answer the class that I am installed in" | who | self hasNewPropertyFormat ifFalse: [^(who := self who first) == #unknown ifFalse: [who]]. "there are some activated old methods" ^(self literalAt: self numLiterals) value.! ! !Debugger methodsFor: 'context stack (message list)' stamp: 'eem 6/5/2008 11:27'! selectedMessage "Answer the source code of the currently selected context." debuggerMap isNil ifTrue: [debuggerMap := self selectedContext debuggerMap]. ^contents := debuggerMap sourceText asText makeSelectorBold! ! !Debugger methodsFor: 'context stack menu' stamp: 'eem 5/21/2008 10:39'! implement: aMessage inClass: aClass aClass compile: aMessage createStubMethod classified: (self askForCategoryIn: aClass default: 'as yet unclassified'). self setContentsToForceRefetch. self selectedContext privRefreshWith: (aClass lookupSelector: aMessage selector). self selectedContext method numArgs > 0 ifTrue: [(self selectedContext tempAt: 1) arguments withIndexDo: [:arg :index| self selectedContext tempAt: index put: arg]]. self resetContext: self selectedContext. self debug. ! ! !Debugger methodsFor: 'private' stamp: 'eem 6/5/2008 16:31'! contextStackIndex: anInteger oldContextWas: oldContext "Change the context stack index to anInteger, perhaps in response to user selection." | isNewMethod selectedContextSlotName index | contextStackIndex := anInteger. anInteger = 0 ifTrue: [currentCompiledMethod := debuggerMap := contents := nil. self changed: #contextStackIndex. self decorateButtons. self contentsChanged. contextVariablesInspector object: nil. receiverInspector object: self receiver. ^self]. selectedContextSlotName := contextVariablesInspector selectedSlotName. isNewMethod := oldContext == nil or: [oldContext method ~~ (currentCompiledMethod := self selectedContext method)]. isNewMethod ifTrue: [debuggerMap := nil. contents := self selectedMessage. self contentsChanged. self pcRange]. self changed: #contextStackIndex. self decorateButtons. contextVariablesInspector object: self selectedContext. ((index := contextVariablesInspector fieldList indexOf: selectedContextSlotName) ~= 0 and: [index ~= contextVariablesInspector selectionIndex]) ifTrue: [contextVariablesInspector toggleIndex: index]. receiverInspector object: self receiver. isNewMethod ifFalse: [self changed: #contentsSelection]! ! !Inspector methodsFor: 'selecting' stamp: 'eem 5/21/2008 11:46'! selectedSlotName ^ self fieldList at: self selectionIndex ifAbsent: []! !