Call() private method

private Call ( IJintVisitor visitor, string function ) : object
visitor IJintVisitor
function string
return object
        /// <summary>
        /// 15.4.4.5
        /// </summary>
        /// <param name="target"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public JsInstance Join(JsObject target, JsInstance[] parameters)
        {
            string separator = (parameters.Length == 0 || parameters[0] == JsUndefined.Instance)
                ? ","
                : parameters[0].ToString();

            if (target.Length == 0)
            {
                return(Global.StringClass.New());
            }

            JsInstance element0 = target[0.ToString()];

            StringBuilder r;

            if (element0 == JsUndefined.Instance || element0 == JsNull.Instance)
            {
                r = new StringBuilder(string.Empty);
            }
            else
            {
                r = new StringBuilder(element0.Call(Global.Visitor, "toString").ToString());
            }

            var length = target["length"].ToNumber();

            for (int k = 1; k < length; k++)
            {
                r.Append(separator);
                JsInstance element = target[k.ToString()];
                if (element != JsUndefined.Instance && element != JsNull.Instance)
                {
                    r.Append(element.Call(Global.Visitor, "toString").ToString());
                }
            }
            return(Global.StringClass.New(r.ToString()));
        }