My instances represent executing Smalltalk blocks, which are portions of
executeable code that have access to the environment that they were declared
in, take parameters, and result from BlockClosure objects created to be
executed by methods outside the current class. Block contexts are
created by messages sent to compute a closure's value. They contain a stack
and also provide some methods that can be used in inspection or debugging.
Answer the MethodContext to which the receiver refers, or
nil if it has been optimized away
isBlock
Answer whether the receiver is a block context
isDisabled
Answers false, because contexts that are skipped when doing a return
are always MethodContexts. BlockContexts are removed from the chain
whenever a non-local return is done, while MethodContexts need to
stay there in case there is a non-local return from the #ensure:
block.
isEnvironment
To create a valid execution environment for the interpreter even before
it starts, GST creates a fake context whose selector is nil and which
can be used as a marker for the current execution environment. Answer
whether the receiver is that kind of context (always false, since
those contexts are always MethodContexts).
isUnwind
Answers whether the context must continue execution even after a
non-local return (a return from the enclosing method of a block, or
a call to the #continue: method of ContextPart). Such contexts are
created only by #ensure: and are always MethodContexts.
nthOuterContext: n
Answer the n-th outer block/method context for the receiver
outerContext
Answer the outer block/method context for the receiver
1.11.2 BlockContext: debugging
isInternalExceptionHandlingContext
Answer whether the receiver is a context that should be hidden to the user
when presenting a backtrace. Such contexts are never blocks, but check
the rest of the chain.
1.11.3 BlockContext: printing
printOn: aStream
Print a representation for the receiver on aStream
This document was generated
on April, 16 2013
using texi2html