Squeak SmalltalkJoker Squeak Smalltalk : System : prevnext Block Context

These are different things. The optimized blocks in VW still require full 
context activations, they just avoid issues with references to their 
creating context: A clean block is completely independent of its context, 
so VW creates the block at compile time and stores it in the literal frame 
of the method. A copying block needs some values from the context which 
are known not to be changeable after the block has been created (method 
receiver and arguments and variables which are never assigned to after the 
block's creation), so these values can be copied into the newly created 
block, but the block does not need a reference to its creating context, so 
that context does not have to be stabilized when the method returns. A 
full block needs a reference to its context, either because it contains a 
return or because it reads variables which may change after its creation, 
or writes into temporaries outside of its own scope.