 			};
 			operators[FUNCTION] = function(..._):*{};
 			operators['=>'] = function(..._):*{};
+			operators[':'] = function(key:String, value:*):* { this[key] = value; };
 			// property access should not be optimized to constants
 			operators["."] = function(object:*, ...chain):* {
 				var iHost:int = chain.length - 2;

								if (method === Object)
								{
									var params:Array = call.evaluatedParams;
									result = {}
									for (i = 0; i < params.length - 1; i += 2)
										result[params[i]] = params[i + 1];
								}

		 * @param useThisScope If this is set to true, properties of 'this' can be accessed as if they were local variables.
		 * @param paramNames This specifies local variable names to be associated with the arguments passed in as parameters to the compiled function.
		 * @param paramDefaults This specifies default values corresponding to the parameter names.  This must be the same length as the paramNames array.
		 * @param flattenFunctionDefinition If set to true and the compiledObject represents a function definition, that function definition will be evaluated and returned.
		 * @return A Function that takes any number of parameters and returns the result of evaluating the ICompiledObject.
		 */
		public function compileObjectToFunction(compiledObject:ICompiledObject, symbolTable:Object, errorHandler:Function, useThisScope:Boolean, paramNames:Array = null, paramDefaults:Array = null, flattenFunctionDefinition:Boolean = true):Function
		{
			if (compiledObject == null)
				return null;
