 		{
 			if (_triggerCount != triggerCounter)
 			{
+				// if this LinkableFunction is in the macros list, errors should be caught and reported.
+				if (macros.getName(this))
+					_catchErrors = true;
+				
 				_triggerCount = triggerCounter;
 				// in case compile fails, prevent re-compiling erroneous code
 				_compiledMethod = RETURN_UNDEFINED;

			
			if (_ignoreRuntimeErrors || debug)
				return true;
			throw e;
		}
		

		}
		
		/**
		 * This function evaluates a macro specified in the macros hash map,
		 * catching and reporting any errors that are thrown.
		 * @param macroName The name of the macro to evaluate.
		 * @param params The parameters to pass to the macro.
		 * @return The result of evaluating the macro.
		 */
		public static function evaluateMacro(macroName:String, params:Array = null):*
		{
			// error catching/reporting is handled automatically for LinkableFunctions in the macros list.
			var lf:LinkableFunction = macros.getObject(macroName) as LinkableFunction;
			return lf ? lf.apply(null, params) : undefined;
		}
