1. sometimes the debugger can not inspect a single tempvar (list of all temps is working)2. number of temp vars (in method header) is wrong:
������ | a b c |
������ a := 1.
������ b := 2.
������ c := 3.
������ [[a asString]
������ ������ on: Error
������ ������ do: [:ex | a
������ ������ ������ ������ value: a
������ ������ ������ ������ value: b
������ ������ ������ ������ value: c].
������ c < 0] whileTrue.method header numtemps 1
������ | a b c |
������ a := 1.
������ b := 2.
������ c := 3.
������ c < 0
������ ������ ifTrue: [
������ ������ ������ [ a asString ]
������ ������ ������ ������ on: Error
������ ������ ������ ������ do: [ :ex | a value: a value: b value: c ].
������ ������ ������ c < 0 ].
������ ^ amethod header numtemps 3both methods define a block with a nested block.I think both blocks are optimized, but somehow the
In the first method it is the receiver of #whileTrue:
the second method it is the argument to #ifTrue:block receiving the whileTrue: message makes the computationfor the number of tempvars wronng