diff -r 0fd549e0c784 -r 0a50d475c1ff IRBuilderTest.st --- a/IRBuilderTest.st Mon Mar 30 17:49:01 2009 +0000 +++ b/IRBuilderTest.st Wed Apr 01 21:13:00 2009 +0000 @@ -766,6 +766,64 @@ "Created: / 30-03-2009 / 14:26:18 / Jan Vrany " "Modified: / 30-03-2009 / 19:16:25 / Jan Vrany " +! + +testBlock_blockTempVar + |aCompiledMethod irBuilder| + + irBuilder := (IRBuilder new) + numRargs:1; + addTemps:#( #self ); + pushBlockUsingBuilder:[:builder | + builder + numRargs:0; + addTemps:#( #bvar1 ); + pushLiteral: 22; + storeTemp:#bvar1; + pushTemp: #bvar1; + returnTop + ]; + send:#value; + returnTop; + ir. + " + irBuilder ir + " + + aCompiledMethod := irBuilder compiledCode. + self assert:(aCompiledMethod isKindOf:CompiledMethod). + self assert:((aCompiledMethod valueWithReceiver:1 arguments:#()) = 22). + + "Created: / 30-03-2009 / 23:03:48 / Jan Vrany " +! + +testBlock_methodTempVar + |aCompiledMethod irBuilder| + + irBuilder := (IRBuilder new) + numRargs:1; + addTemps:#( #self #a); + pushLiteral: 22; + storeTemp: #a; + pushBlockUsingBuilder:[:builder | + builder + numRargs:0; + pushTemp: #a; + returnTop + ]; + send:#value; + returnTop; + ir. + " + irBuilder ir + " + + aCompiledMethod := irBuilder compiledCode. + self assert:(aCompiledMethod isKindOf:CompiledMethod). + self assert:((aCompiledMethod valueWithReceiver:1 arguments:#()) = 22). + + "Created: / 30-03-2009 / 23:05:00 / Jan Vrany " + "Modified: / 01-04-2009 / 19:43:52 / Jan Vrany " ! ! !IRBuilderTest class methodsFor:'documentation'!