 			
 			var method:Object = call.evaluatedMethod;
 			
+			if (method == operators[':'])
+				throw new Error("Invalid object literal syntax");
+			
 			// remove var declarations from their current locations
 			if (method == operators[ST_VAR])
 			{

				tokens.splice(left - 1, end - left + 1, compileOperator('?:', [condition, trueBranch, falseBranch]));
			}
			// stop if any branch operators remain
			if (Math.max(tokens.indexOf('?'), tokens.indexOf(':')) >= 0)
				throw new Error('Invalid conditional branch');
			
			// next step: inline functions, right to left

			};
			
			// if the compiled object is a function definition, return that function definition instead of the wrapper.
			if (flattenFunctionDefinition && compiledObjectIsFunctionDefinition(compiledObject))
			{
				cascadeThisScope = useThisScope;
				return wrapperFunction() as Function;
			}
			
			return wrapperFunction;
		}
		
		/**
		 * Tests if a token is a variable lookup.
		 */
		private function isVariableLookup(token:Object):Boolean
		{
			var cfc:CompiledFunctionCall = token as CompiledFunctionCall;
			return cfc && !cfc.compiledParams;
		}
		
		/**
