/// <summary> /// Used to set the value of an argument. /// </summary> /// <param name="scriptEngine"> 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.scope.SetValue(this.callee.ArgumentNames[argumentIndex], value); } return Undefined.Value; }
/// <summary> /// Used to retrieve the value of an argument. /// </summary> /// <param name="scriptEngine"> 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.scope.GetValue(this.callee.ArgumentNames[argumentIndex]); }