 					
 					if (op.charAt(0) == '#')
 						return result + op.substr(1);
+					if (op == 'delete')
+						return op + ' ' + result;
 					if (op == '--' || op == '++')
 						return op + result;
 					

			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]; };
			// special cases: -- and ++ unary operators ignore last parameter
			assignmentOperators['--']  = function(o:*, ...a):* { for (var i:int = 0; i < a.length - 2; i++) o = o[a[i]]; return --o[a[i]]; };
			assignmentOperators['++']  = function(o:*, ...a):* { for (var i:int = 0; i < a.length - 2; i++) o = o[a[i]]; return ++o[a[i]]; };
			assignmentOperators['#--']  = function(o:*, ...a):* { for (var i:int = 0; i < a.length - 2; i++) o = o[a[i]]; return o[a[i]]--; };
			assignmentOperators['#++']  = function(o:*, ...a):* { for (var i:int = 0; i < a.length - 2; i++) o = o[a[i]]; return o[a[i]]++; };
			for (var aop:String in assignmentOperators)
				operators[aop] = assignmentOperators[aop];
			

					return '(' + params.join(', ') + ')';
				
				if (call.compiledParams.length == 1) // unary op
				{
					var c:String = op.charAt(0);
					if (operators.hasOwnProperty(c) && c != (params[0] as String).charAt(0))
						return op + params[0];
					return op + ' ' + params[0];
				}
				if (call.compiledParams.length == 2) // infix op
					return StringUtil.substitute("({0} {1} {2})", params[0], op, params[1]);
				if (call.compiledParams.length == 3 && op == '?:') // ternary op
