 			}
 			
 			// next step: compile unary '#' operators
-			if (operators['#'])
+			if (operators.hasOwnProperty('#'))
 				compileUnaryOperators(tokens, ['#']);
 			
 			// next step: compile statements
-			compileStatements(tokens);
+			//compileStatements(tokens);
+			
+			compilePostfixOperators(tokens, ['--', '++']);
 			
 			// next step: compile infix '**' operators
 			compileInfixOperators(tokens, ['**']);

			assignmentOperators['&=']   = function(o:*, ...a):* { for (var i:int = 0; i < a.length - 2; i++) o = o[a[i]]; return o[a[i]] &=   a[i + 1]; };
			assignmentOperators['|=']   = function(o:*, ...a):* { for (var i:int = 0; i < a.length - 2; i++) o = o[a[i]]; return o[a[i]] |=   a[i + 1]; };
			assignmentOperators['^=']   = function(o:*, ...a):* { for (var i:int = 0; i < a.length - 2; i++) o = o[a[i]]; return o[a[i]] ^=   a[i + 1]; };
			for (var aop:String in assignmentOperators)
				operators[aop] = assignmentOperators[aop];
			

				if (WHITESPACE.indexOf(c) >= 0)
					break;
				// operator terminates a token
				if (operators.hasOwnProperty(c))
					break;
			}
			return expression.substring(index, endIndex);
