IRBuilderTest.st
changeset 11 0a50d475c1ff
parent 10 0fd549e0c784
child 14 9369d251b3ed
equal deleted inserted replaced
10:0fd549e0c784 11:0a50d475c1ff
   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