trying to fix some goto implementation issues
This commit is contained in:
		@ -108,7 +108,15 @@ start:
 | 
			
		||||
	[goto B02. A01: 10. B02: 1000. ] value class dump.
 | 
			
		||||
self q.
 | 
			
		||||
 | 
			
		||||
[ | a | a := 21. if (a = 21) { goto X02 }. X02: ] value dump. ## this causes a stack depletion problem... TODO:
 | 
			
		||||
[ | a | a := 21. if (a = 21) { goto X02 }. X02: ] value dump. // this causes a stack depletion problem... TODO:
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
this is horrible... the stack won't be cleared when goto is made... 
 | 
			
		||||
System should never be popped out
 | 
			
		||||
	(if (2 > 1) { 20. System log: (if (2 > 1) {goto X2}) }) dump.
 | 
			
		||||
X2:
 | 
			
		||||
	a dump.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
EXCEPTION_TEST:
 | 
			
		||||
Exception signal: 'experiment with exception signalling'.
 | 
			
		||||
 | 
			
		||||
@ -959,7 +959,7 @@ enum moo_bcode_t
 | 
			
		||||
	BCODE_JUMP2_FORWARD_IF_TRUE    = 0xC7, /* 199 ## */
 | 
			
		||||
	BCODE_JUMP_FORWARD_IF_FALSE    = 0xC8, /* 200 ## */
 | 
			
		||||
	BCODE_JUMP2_FORWARD_IF_FALSE   = 0xC9, /* 201 ## */
 | 
			
		||||
	/* JMPOP = JUMP + POP */
 | 
			
		||||
	/* JMPOP = JUMP + POP -> it pops the stack top always but it jumps only if the condition is met */
 | 
			
		||||
	BCODE_JMPOP_FORWARD_IF_TRUE    = 0xCA, /* 202 ## */
 | 
			
		||||
	BCODE_JMPOP2_FORWARD_IF_TRUE   = 0xCB, /* 203 ## */
 | 
			
		||||
	BCODE_JMPOP_FORWARD_IF_FALSE   = 0xCC, /* 204 ## */
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user