#ghostPrintString is implemented in CompiledMethod but not in CompiledBlock, which breaks everything.
When a message is intercepted, the message ghostPrintString
is sent to all context methods on the stack. However, the context method is not necessarily a method: it can be a block, and the message #ghostPrintString
is only implemented in CompiledMethod
and not CompiledBlock
, which breaks everything if there is a block context on the stack:
The message #ghostPrintString
should thus be implemented in CompiledBlock
too