--- a/IRBuilderTest.st Tue Apr 28 15:03:39 2009 +0000
+++ b/IRBuilderTest.st Mon May 11 20:20:05 2009 +0000
@@ -797,7 +797,7 @@
"Created: / 30-03-2009 / 23:03:48 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
-testBlock_exteptionHandler
+testBlock_exceptionHandler
|aCompiledMethod irBuilder|
irBuilder := (IRBuilder new)
@@ -830,11 +830,10 @@
self assert:(aCompiledMethod isKindOf:CompiledMethod).
self assert:((aCompiledMethod valueWithReceiver:1 arguments:#()) = true).
- "Modified: / 01-04-2009 / 19:43:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
- "Created: / 28-04-2009 / 13:10:13 / karpij1 <karpij1@fel.cvut.cz>"
+ "Created: / 11-05-2009 / 21:53:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
-testBlock_exteptionHandler_noRemoteReturn
+testBlock_exceptionHandler_noRemoteReturn
|aCompiledMethod irBuilder|
irBuilder := (IRBuilder new)
@@ -866,8 +865,37 @@
self assert:(aCompiledMethod isKindOf:CompiledMethod).
self assert:((aCompiledMethod valueWithReceiver:1 arguments:#()) = true).
- "Modified: / 01-04-2009 / 19:43:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
- "Created: / 28-04-2009 / 13:39:01 / karpij1 <karpij1@fel.cvut.cz>"
+ "Created: / 11-05-2009 / 21:53:25 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+testBlock_invalid_instruction_ordering_bug_1
+ |aCompiledMethod irBuilder|
+
+ irBuilder := (IRBuilder new)
+ numRargs: 1;
+ addTemps: #(self i);
+ pushTemp: #i;
+ pushLiteral: 3;
+ pushReceiver;
+
+ pushBlockUsingBuilder: [ :builder |
+ builder
+ numRargs: 0;
+ addTemps: #();
+ pushTemp: #i;
+ returnTop.
+ ];
+ returnTop;
+ ir.
+ "
+ irBuilder ir
+ "
+
+ aCompiledMethod := irBuilder compiledCode.
+ self assert:(aCompiledMethod isKindOf:CompiledMethod).
+ self assert:((aCompiledMethod valueWithReceiver:1 arguments:#()) isKindOf: Block).
+
+ "Created: / 11-05-2009 / 21:55:30 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
testBlock_methodTempVar