Class new title: StackPane subclassof: ListPane fields: 'contextVarPane instanceVarPane codePane variables proceed' declare: 'stackmenu ' classInit [stackmenu _ Menu new string: 'stack spawn proceed restart'] close [NoteTaker  [super close] Top enable: proceed  3. super close. list  [(list  1) releaseFully]] code | t1 t2 [t1 _ (list  selection) mclass. t2 _ self selector. (t1 canunderstand: t2) and (t1 code: t2)] comment: t1 [] compile: t1 | t2 t3 t4 t5 [t2 _ list  (selection max: 1). t5 _ t2 mclass. t3 _ codePane compile: t1 in: t5 under: 'As yet unclassified'. proceed  2 _ t3  [codePane reflects: selection  [t4 _ t5 md methodorfalse: t3. t4  [self releaseAboveSelection. t2 restartWith: t4. proceed  1 _ true. self of: list  (selection to: list length) copy. self select: 1]]]] contents context: t1 at: t2 instance: t3 code: t4 [contextVarPane _ t1. instanceVarPane _ t3. codePane _ t4. variables _ (Vector new: 16) asStream. proceed  nil  [proceed _ false , nil , t2]] context: t1 instance: t2 code: t3 [contextVarPane _ t1. instanceVarPane _ t2. codePane _ t3. variables _ (Vector new: 16) asStream. proceed  nil  [proceed _ false , nil , Top currentPriority]] continue: t1 | t2 [[selection = 0  [selection _ 1]]. t2 _ list  selection. self releaseAboveSelection. [t1  [t2 restart] proceed  1 and: selection = 1  [] t2 push: proceed  2]. list _ false. user topWindow vanish. list _ nil. Top run: t2 at: proceed  3. Top enable: proceed  3. Top wakeup: proceed  3. Top resetCurrent] declaration: t1 name: t2 asArg: t3 [variables next_ t2] deselected [contextVarPane  false  [] codePane showing: ''. contextVarPane names: (Vector new: 0) values: (nil ) wrt: false. instanceVarPane names: (Vector new: 0) values: (nil ) wrt: false] dirty [codePane and codePane dirty] execute: t1 for: t2 [codePane _ t2. proceed  2 _ codePane execute: t1 in: [selection = 0  [false] list  selection] to: nil] identifier: t1 [variables next_ t1] interrupt: t1 [proceed  1 _ t1] locked [contextVarPane and (selection > 0 and self dirty)] notify: t1 [] releaseAboveSelection [[selection > 1  [list  (selection - 1) sender_ nil. (list  1) release]]. (list  (selection max: 1)) verifyFrames] selected | t1 t2 t3 t4 [contextVarPane  false  [] t1 _ list  selection. t2 _ t1 receiver. Decompiler new findPC: t1 pc. t3 _ self code. codePane showing: [t3  [t3] '']. codePane selectRange: Decompiler new highlight. variables reset. t1 variableNamesInto: self with: nil. [t3  [contextVarPane names: ((thisContext ) concat: variables contents) values: t1 , t1 tempframe wrt: t1. t1 tempframe  nil  [user notify: 'NIL TEMPFRAME']] contextVarPane names: (thisContext ) values: t1 inVector wrt: t1]. variables reset. t2 class fieldNamesInto: self. t4 _ Vector new: 2. t4 all_ t2. instanceVarPane names: ((self ) concat: variables contents) values: t4 wrt: t1. contextVarPane select: 1] selector | t1 [t1 _ list  (selection max: 1). [t1 sender  nil  [false] t1 sender thisop]] separator: t1 [] spawn | t1 t2 t3 t4 [t1 _ (list  (selection max: 1)) mclass. t2 _ self selector. t3 _ [codePane  [codePane contents] t1 canunderstand: t2  [t1 code: t2] '']. t4 _ codePane and codePane oldContents. self compselection. self select: 0. t1 edit: t2 para: t3 formerly: t4] terminate trailer: t1 [] yellowbug | t1 [scrollBar hidewhile [t1 _ stackmenu bug. [t1 = 1  [self revise: (list  1) stack with: [selection = 0  [nil] list  selection]] t1 = 2  [self spawn] t1 = 3  [self continue: false] t1 = 4  [self continue: true] nil]]]