/// <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())); }