Scorpio.Variable.ScorpioScriptFunction.Call C# (CSharp) Method

Call() public method

public Call ( ScriptContext parentContext, ScriptObject>.Dictionary objs, ScriptObject parameters ) : ScriptObject
parentContext Scorpio.Runtime.ScriptContext
objs ScriptObject>.Dictionary
parameters Scorpio.ScriptObject
return Scorpio.ScriptObject
        public ScriptObject Call(ScriptContext parentContext, Dictionary<String, ScriptObject> objs, ScriptObject[] parameters) {
            int length = parameters.Length;
            if (m_Params) {
                ScriptArray paramsArray = m_Script.CreateArray();
                for (int i = 0; i < m_ParameterCount - 1; ++i) {
                    objs[m_ListParameters[i]] = (parameters != null && length > i) ? parameters[i] : m_Script.Null;
                }
                for (int i = m_ParameterCount - 1; i < length; ++i) {
                    paramsArray.Add(parameters[i]);
                }
                objs[m_ListParameters[m_ParameterCount - 1]] = paramsArray;
            } else {
                for (int i = 0; i < m_ParameterCount; ++i) {
                    objs[m_ListParameters[i]] = (parameters != null && length > i) ? parameters[i] : m_Script.Null;
                }
            }
            ScriptContext context = new ScriptContext(m_Script, m_ScriptExecutable, parentContext, Executable_Block.Function);
            context.Initialize(objs);
            return context.Execute();
        }
    }