[View]  [Edit]  [Lock]  [References]  [Attachments]  [History]  [Home]  [Changes]  [Search]  [Help] 

BlockClosure


Important

Instance methods
argumentCount:VSES8Compatible

argumentCountVSES8Compatible

asActionSecuenceVSES8Compatible

ensure:VSES8Compatible

evaluateVSES8Compatible

evaluateFor:VSES8Compatible

evaluateWithArguments:VSES8Compatible

isBlockClosureVSE
    RECOMENDATION: Add this instance method to BlockClosure and Object in S8.
! Object methodsFor: #testing-VSECompat !
isBlockClosure

   ^false! !

! BlockClosure methodsFor: #testing-VSECompat !
isBlockClosure

   ^true! !

numberOfArgumentsVSES8Compatible

numArgsVSE
    RECOMENDATION: Same behavior of #numberOfArguments. Add #numArgs method delegating in #numberOfArguments.
! BlockClosure methodsFor: #testing-VSECompat !
numArgs

   ^self numberOfArguments! !

on:do:VSES8Compatible
    Argument 'exception' in VSE sometimes is an instance of ExceptionSet allowing the following use:

aBlock on: FileError, BindError do: ["something"]

    to overcome this situation it is posible redefine #on:do: in conjunction of VSE ExceptionSet class (for more detailed information see Exception, Error) as follows:

! BlockClosure methodsFor: #error-VSECompat !
on: exception do: aBlock
   " Return the result of evaluating the receiver catching exceptions. "

   ^self try: self catch: [:error |
	(exception handles: error)
		ifTrue: [ aBlock value: error ]
		ifFalse: [ error signal ]
	]! !

valueVSES8Compatible

value:VSES8Compatible

value:value:VSES8Compatible

value:value:value:VSES8Compatible

valueWithArguments:VSE(2)
    RECOMENDATION: This method should be considered private because its proximity to VM. In order to compatibilize it is possible to use #valueWithArguments: as foolowing:
! BlockClosure methodsFor: #evaluating-VSECompat !
valueWithArguments: anArray
   
   ^self valueWithPossibleArguments: anArray ! !

whileFalse:VSES8Compatible

whileFalseVSE
    RECOMENDATION: Add an instance method using #whileFalse: on S8 side.
! BlockClosure methodsFor: #iterating-VSECompat!
whileFalse

   ^[ self value ] whileFalse: [ ]! !

whileTrue:VSES8Compatible

whileTrueVSE
    RECOMENDATION: Add an instance method using #whileTrue: on S8 side.
! BlockClosure methodsFor: #iterating-VSECompat!
whileTrue

   ^[ self value ] whileTrue: [ ]! !


Secondary

Instance Methods
evaluateWithoutInterruptsVSE
forkVSE
forkAt:VSE
hashVSE
ifCurtailed:VSE
methodVSE
method:VSE
methodEnvironmentVSE
methodEnvironment:VSE
partMirrorCopy:VSE
printOn:VSE
receiver:VSE
receiverVSE
repeatVSE

Class Methods
initializeVSE
initStandardTemplatesVSE
isActivationVisibleForInstanceSelector:VSE

Private

Instance Methods
blockNumber, blockNumber:, initFromArray:, invalidArgumentCount:, invisibleEnsure:, return:, returnTo:with:,setUnwind:, validateNumberOfArguments:, valueMarked,
Class Methods
fromArray:, standardTemplates

(2) TODO: Chequear con Ale esto