 			operators["&&"] = function(x:*, y:*):* { return x && y; };
 			operators["||"] = function(x:*, y:*):* { return x || y; };
 			// branching
-			operators["?:"] = constants['iif'];
+			operators["?:"] = function(c:*, t:*, f:*):* { return c ? t : f; };
 			// multiple commands - equivalent functionality but must be remembered as different operators
 			operators[','] = function(...args):* { return args[args.length - 1]; };
 			operators[';'] = function(...args):* { return args[args.length - 1]; };

				if (stmt == ST_IF)
				{
					params.splice(2, 1); // works whether or not else is present
					tokens[startIndex] = compileFunctionCall(new CompiledConstant(ST_IF_ELSE, operators['?:']), params);
				}
				else
				{

					default: throw new Error("Too many constructor parameters (maximum 10)");
				}
			};
			
			// global symbols
			for each (var _const:* in [null, true, false, undefined, NaN, Infinity])
