764 self assert:(aCompiledMethod isKindOf:CompiledMethod). |
764 self assert:(aCompiledMethod isKindOf:CompiledMethod). |
765 self assert:((aCompiledMethod valueWithReceiver:1 arguments:#()) = 22). |
765 self assert:((aCompiledMethod valueWithReceiver:1 arguments:#()) = 22). |
766 |
766 |
767 "Created: / 30-03-2009 / 14:26:18 / Jan Vrany <vranyj1@fel.cvut.cz>" |
767 "Created: / 30-03-2009 / 14:26:18 / Jan Vrany <vranyj1@fel.cvut.cz>" |
768 "Modified: / 30-03-2009 / 19:16:25 / Jan Vrany <vranyj1@fel.cvut.cz>" |
768 "Modified: / 30-03-2009 / 19:16:25 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
769 ! |
|
770 |
|
771 testBlock_blockTempVar |
|
772 |aCompiledMethod irBuilder| |
|
773 |
|
774 irBuilder := (IRBuilder new) |
|
775 numRargs:1; |
|
776 addTemps:#( #self ); |
|
777 pushBlockUsingBuilder:[:builder | |
|
778 builder |
|
779 numRargs:0; |
|
780 addTemps:#( #bvar1 ); |
|
781 pushLiteral: 22; |
|
782 storeTemp:#bvar1; |
|
783 pushTemp: #bvar1; |
|
784 returnTop |
|
785 ]; |
|
786 send:#value; |
|
787 returnTop; |
|
788 ir. |
|
789 " |
|
790 irBuilder ir |
|
791 " |
|
792 |
|
793 aCompiledMethod := irBuilder compiledCode. |
|
794 self assert:(aCompiledMethod isKindOf:CompiledMethod). |
|
795 self assert:((aCompiledMethod valueWithReceiver:1 arguments:#()) = 22). |
|
796 |
|
797 "Created: / 30-03-2009 / 23:03:48 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
798 ! |
|
799 |
|
800 testBlock_methodTempVar |
|
801 |aCompiledMethod irBuilder| |
|
802 |
|
803 irBuilder := (IRBuilder new) |
|
804 numRargs:1; |
|
805 addTemps:#( #self #a); |
|
806 pushLiteral: 22; |
|
807 storeTemp: #a; |
|
808 pushBlockUsingBuilder:[:builder | |
|
809 builder |
|
810 numRargs:0; |
|
811 pushTemp: #a; |
|
812 returnTop |
|
813 ]; |
|
814 send:#value; |
|
815 returnTop; |
|
816 ir. |
|
817 " |
|
818 irBuilder ir |
|
819 " |
|
820 |
|
821 aCompiledMethod := irBuilder compiledCode. |
|
822 self assert:(aCompiledMethod isKindOf:CompiledMethod). |
|
823 self assert:((aCompiledMethod valueWithReceiver:1 arguments:#()) = 22). |
|
824 |
|
825 "Created: / 30-03-2009 / 23:05:00 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
826 "Modified: / 01-04-2009 / 19:43:52 / Jan Vrany <vranyj1@fel.cvut.cz>" |
769 ! ! |
827 ! ! |
770 |
828 |
771 !IRBuilderTest class methodsFor:'documentation'! |
829 !IRBuilderTest class methodsFor:'documentation'! |
772 |
830 |
773 version |
831 version |