Hi Phillipe,

On Mon, Sep 12, 2011 at 11:06 AM, Philippe Marschall <[email protected]> wrote:

> Hi
>
> While trying to debug the debugger in Seaside (hi Mike) I stumbled on
> something funny. Seaside the following code to work:
>
> Semaphore forMutualExclusion critical: [
>        | sender |
>        sender := thisContext sender.
>        sender tempAt: sender tempScopedNames size ]
>

This just won't work with the Closure compiler.  This approach only worked
with old blue-book blocks Squeak.   Instead you need to look at
DebuggerMethodMap, tempNamesForContext:, namedTempAt: et al.


> But it doesn't, you get a SubscriptOutOfBounds. #tempScopedNames answers
> #('mutuallyExcludedBlock' 'blockValue' 'caught'). The method arguments
> (mutuallyExcludedBlock) can be found in
> self tempAt: 1
> the temps can be found in
> self tempAt: 2
>
> Which means that
> sender tempNamed: 'blockValue'
> will answer #(nil true) instead of the real value (nil). This is very
> confusing.
>
> This is with the latest Pharo 1.3 and Cog .r2489
>
> Cheers
> Philippe
>
>
>


-- 
best,
Eliot

Reply via email to