Marcel Taeumel uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-mt.425.mcz==================== Summary ====================
Name: EToys-mt.425
Author: mt
Time: 19 February 2021, 9:15:11.952408 am
UUID: 2c3addb0-2333-bd49-ad33-bb885cf5642a
Ancestors: EToys-mt.424
Complements Kernel-eem.1373
=============== Diff against EToys-mt.424 ===============
Item was changed:
----- Method: StandardScriptingSystem>>reportToUser: (in category '*Etoys-utilities') -----
reportToUser: aString
"Make a message accessible to the user. "
| trigger current baseTriggerer topTriggerer mclass sel topSelector |
trigger := Player compiledMethodAt: #triggerScript:.
current := thisContext.
baseTriggerer := nil.
topTriggerer := nil.
[current notNil] whileTrue: [
topTriggerer ifNil: [
current receiver class isUniClass ifTrue: [
"Look for the top-most uniclass script in the call chain."
+ sel := current receiver class selectorAtMethod: current homeMethod setClass: [:c | mclass := c].
- sel := current receiver class selectorAtMethod: current method "aCompiledBlock" method setClass: [:c | mclass := c].
mclass = current receiver class ifTrue: [
topTriggerer := current.
topSelector := sel.
].
].
].
(current method = trigger and: [current isExecutingBlock not]) ifTrue: [
"Look for the bottom-most #triggerScript: and its selector."
baseTriggerer := current
].
current := current sender.
].
baseTriggerer ifNotNil: [
(baseTriggerer receiver scriptInstantiationForSelector: (baseTriggerer at: 1)) resetTo: #paused ifCurrently: #ticking.
].
(topTriggerer notNil and: [topSelector notNil]) ifTrue: [
^ self eToysError: aString, '\', topTriggerer receiver knownName, '\', topSelector.
].
self error: aString!