The first one fails when trying to evaluate a test condition involving a function (like abs, random, and such). The fix is trivial, but I might be missing something:
CompoundTileMorph>>evaluateTestPart
| condition |
condition := testPart tiles at: 1 ifAbsent: [^ true].
self halt.
^ Compiler evaluate: condition codeString
for: (condition associatedPlayer
ifNil: [condition topEditor playerScripted])
logged: false
The second one is worst because it hangs the image. To reproduce just try to step on a script with an empty test tile. The fix is simple as well:
EtoysDebugger>>evaluateTest: test
| tile |
test testPart tiles isEmpty
ifTrue: [next := test yesPart tiles at: 1 ifAbsent: [test nextTile].
next = test
ifTrue: [^ self]
ifFalse: [^ self evaluateNextTile]].
self highlight: test testPart.
tile := test evaluateTestPart
ifTrue: [test yesPart]
ifFalse: [test noPart].
next := tile tiles at: 1 ifAbsent: [test nextTile]
I should have found these bugs earlier, I'm terribly sorry. Now I don't know how to proceed. I will open a ticket of course, but should I attach a change set there or can I commit the fix to etoys? I think this needs to be fixed in 5.0.
Again, I'm very very sorry for this inconvenience.
Richo
On 27.03.2012, at 08:59, karl ramberg wrote:
> Etoys 5 release candidate 2
> More fixes went into this new release candidate, but if there are some show stoppers we would like to know asap !
Actually it would be good to hear if anyone tested this, and it worked.
- Bert -