/// <summary>
        /// Used to set the value of an argument.
        /// </summary>
        /// <param name="engine"> The associated script engine. </param>
        /// <param name="scope"> The scope (global or eval context) or the parent scope (function
        /// context). </param>
        /// <param name="thisObject"> The value of the <c>this</c> keyword. </param>
        /// <param name="functionObject"> The function object. </param>
        /// <param name="argumentValues"> The arguments that were passed to the function. </param>
        /// <returns> The result of calling the method. </returns>
        private object ArgumentSetter(ScriptEngine engine, Compiler.Scope scope, object thisObject, Library.FunctionInstance functionObject, object[] argumentValues)
        {
            int argumentIndex = TypeConverter.ToInteger(functionObject.GetPropertyValue("argumentIndex"));

            if (argumentValues != null && argumentValues.Length >= 1)
            {
                object value = argumentValues[0];
                this.m_scope.SetValue(this.m_callee.ArgumentNames[argumentIndex], value);
            }
            return(Undefined.Value);
        }
        /// <summary>
        /// Used to retrieve the value of an argument.
        /// </summary>
        /// <param name="engine"> The associated script engine. </param>
        /// <param name="scope"> The scope (global or eval context) or the parent scope (function
        /// context). </param>
        /// <param name="thisObject"> The value of the <c>this</c> keyword. </param>
        /// <param name="functionObject"> The function object. </param>
        /// <param name="argumentValues"> The arguments that were passed to the function. </param>
        /// <returns> The result of calling the method. </returns>
        private object ArgumentGetter(ScriptEngine engine, Compiler.Scope scope, object thisObject, Library.FunctionInstance functionObject, object[] argumentValues)
        {
            int argumentIndex = TypeConverter.ToInteger(functionObject.GetPropertyValue("argumentIndex"));

            return(this.m_scope.GetValue(this.m_callee.ArgumentNames[argumentIndex]));
        }