public static SObject CharAt(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { var str = ((SString)instance).Value; if (str == "") { return(processor.CreateString("")); } if (TypeContract.Ensure(parameters, typeof(SNumber))) { var index = (int)((SNumber)parameters[0]).Value; if (index < 0 || index >= str.Length) { return(processor.CreateString("")); } return(processor.CreateString(str[index].ToString())); } else { return(processor.CreateString(str[0].ToString())); } }
public static SObject PadEnd(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { var str = ((SString)instance).Value; int totalLength = 0; var padStr = " "; if (TypeContract.Ensure(parameters, new[] { typeof(SNumber), typeof(SString) })) { totalLength = (int)((SNumber)parameters[0]).Value; padStr = ((SString)parameters[1]).Value; } if (TypeContract.Ensure(parameters, typeof(SNumber))) { totalLength = (int)((SNumber)parameters[0]).Value; } if (padStr == "" || totalLength <= str.Length) { return(processor.CreateString(str)); } while (str.Length < totalLength) { str += padStr; } if (str.Length > totalLength) { str = str.Remove(totalLength); } return(processor.CreateString(str)); }
public static SObject Slice(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (TypeContract.Ensure(parameters, new[] { typeof(SNumber), typeof(SNumber) })) { var str = ((SString)instance).Value; var sliceBegin = (int)((SNumber)parameters[0]).Value; var sliceEnd = (int)((SNumber)parameters[1]).Value; if (sliceBegin < 0) { sliceBegin += str.Length; } if (sliceBegin < 0) { sliceBegin = 0; } if (sliceBegin > str.Length) { return(processor.CreateString("")); } if (sliceEnd < 0) { sliceEnd += str.Length; } if (sliceEnd < 0) { sliceEnd = 0; } if (sliceEnd > str.Length) { sliceEnd = str.Length; } return(processor.CreateString(str.Substring(sliceBegin, sliceEnd - sliceBegin))); } if (TypeContract.Ensure(parameters, typeof(SNumber))) { var str = ((SString)instance).Value; var sliceBegin = (int)((SNumber)parameters[0]).Value; if (sliceBegin < 0) { sliceBegin += str.Length; } if (sliceBegin < 0) { sliceBegin = 0; } if (sliceBegin > str.Length) { return(processor.CreateString("")); } return(processor.CreateString(str.Substring(sliceBegin))); } return(processor.Undefined); }
public static SObject TrimEnd(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { string str = ((SString)instance).Value; string[] trimChars = { " " }; if (TypeContract.Ensure(parameters, typeof(SArray))) { trimChars = ((SArray)parameters[0]).ArrayMembers.Select(m => m.ToString(processor).Value).ToArray(); } else if (TypeContract.Ensure(parameters, typeof(SString))) { trimChars = new[] { ((SString)parameters[0]).Value }; } foreach (var trimChar in trimChars) { while (str.EndsWith(trimChar)) { str = str.Remove(str.Length - trimChar.Length); } } return(processor.CreateString(str)); }
public static SObject Remove(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (TypeContract.Ensure(parameters, new[] { typeof(SNumber), typeof(SNumber) })) { var str = ((SString)instance).Value; var start = (int)((SNumber)parameters[0]).Value; var length = (int)((SNumber)parameters[1]).Value; if (start < 0) { start = 0; } if (start > str.Length) { return(processor.CreateString(str)); } if (length <= 0) { return(processor.CreateString(str)); } if (length + start > str.Length) { length = str.Length - start; } return(processor.CreateString(str.Remove(start, length))); } if (TypeContract.Ensure(parameters, typeof(SNumber))) { var str = ((SString)instance).Value; var start = (int)((SNumber)parameters[0]).Value; if (start < 0) { start = 0; } if (start > str.Length) { return(processor.CreateString(str)); } return(processor.CreateString(str.Remove(start))); } return(processor.Undefined); }
public static SObject Repeat(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (TypeContract.Ensure(parameters, typeof(SNumber))) { var repeatStr = ((SString)instance).Value; var times = (int)((SNumber)parameters[0]).Value; var str = ""; for (int i = 0; i < times; i++) { str += repeatStr; } return(processor.CreateString(str)); } return(processor.CreateString(((SString)instance).Value)); }
public static SObject Replace(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (TypeContract.Ensure(parameters, new[] { typeof(SString), typeof(SString) })) { var str = (instance as SString).Value; var replace = (parameters[0] as SString).Value; var with = (parameters[1] as SString).Value; if (string.IsNullOrWhiteSpace(replace)) { return(processor.CreateString(str)); } return(processor.CreateString(str.Replace(replace, with))); } return(processor.Undefined); }
public static SObject Concat(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (parameters.Length > 0) { var str = (SString)instance; string result = str.Value; foreach (var param in parameters) { string concatStr = param.ToString(processor).Value; result += concatStr; } return(processor.CreateString(result)); } return(processor.CreateString(((SString)instance).Value)); }
public static SObject Split(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { int limit = -1; string[] split; string[] delimiters; string str = (instance as SString).Value; if (TypeContract.Ensure(parameters, new[] { typeof(SArray), typeof(SNumber) })) { delimiters = (parameters[0] as SArray).ArrayMembers.Select(m => m.ToString(processor).Value).ToArray(); limit = (int)(parameters[1] as SNumber).Value; } else if (TypeContract.Ensure(parameters, typeof(SArray))) { delimiters = (parameters[0] as SArray).ArrayMembers.Select(m => m.ToString(processor).Value).ToArray(); } else if (TypeContract.Ensure(parameters, new[] { typeof(SString), typeof(SNumber) })) { delimiters = new[] { (parameters[0] as SString).Value }; limit = (int)(parameters[1] as SNumber).Value; } else if (TypeContract.Ensure(parameters, typeof(SString))) { delimiters = new[] { (parameters[0] as SString).Value }; } else { return(processor.CreateArray(new[] { processor.CreateString(str) })); } split = str.Split(delimiters, StringSplitOptions.None); if (limit >= 0 && split.Length > limit) { var result = new string[limit]; Array.Copy(split, result, limit); split = result; } return(processor.CreateArray(split.Select(m => processor.CreateString(m)).ToArray())); }
public static SObject CharAt(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { var str = (instance as SString).Value; if (str == "") return processor.CreateString(""); if (TypeContract.Ensure(parameters, typeof(SNumber))) { var index = (int)(parameters[0] as SNumber).Value; if (index < 0 || index >= str.Length) return processor.CreateString(""); return processor.CreateString(str[index].ToString()); } else { return processor.CreateString(str[0].ToString()); } }
private static SObject constructor(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { var obj = (SError)instance; if (parameters.Length > 0) { SString message; if (parameters[0] is SString) message = (SString)parameters[0]; else message = parameters[0].ToString(processor); obj.Members[MEMBER_NAME_MESSAGE].Data = message; } if (parameters.Length > 1) { SString errorType; if (parameters[1] is SString) errorType = (SString)parameters[1]; else errorType = parameters[1].ToString(processor); obj.Members[MEMBER_NAME_TYPE].Data = errorType; } else { obj.Members[MEMBER_NAME_TYPE].Data = processor.CreateString("UserError"); } if (parameters.Length > 2) { SNumber errorLine; if (parameters[2] is SNumber) errorLine = (SNumber)parameters[2]; else errorLine = parameters[2].ToNumber(processor); obj.Members[MEMBER_NAME_LINE].Data = errorLine; } else { obj.Members[MEMBER_NAME_LINE].Data = processor.CreateNumber(-1); } return obj; }
public static SObject PadStart(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { var str = (instance as SString).Value; int totalLength = 0; var padStr = " "; string newPadded = ""; if (TypeContract.Ensure(parameters, new[] { typeof(SNumber), typeof(SString) })) { totalLength = (int)(parameters[0] as SNumber).Value; padStr = (parameters[1] as SString).Value; } if (TypeContract.Ensure(parameters, typeof(SNumber))) { totalLength = (int)(parameters[0] as SNumber).Value; } if (padStr == "" || totalLength <= str.Length) { return(processor.CreateString(str)); } while (newPadded.Length + str.Length < totalLength) { newPadded += padStr; } if (newPadded.Length + str.Length > totalLength) { newPadded = newPadded.Remove(totalLength - str.Length); } str = newPadded + str; return(processor.CreateString(str)); }
public static SObject Concat(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (parameters.Length > 0) { var str = instance as SString; string result = str.Value; foreach (var param in parameters) { string concatStr = param.ToString(processor).Value; result += concatStr; } return processor.CreateString(result); } return processor.CreateString((instance as SString).Value); }
private static SObject ConstructorImpl(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { var obj = (SError)instance; if (parameters.Length > 0) { var stringParameter = parameters[0] as SString; var message = stringParameter ?? parameters[0].ToString(processor); obj.Members[MemberNameMessage].Data = message; } if (parameters.Length > 1) { var stringParameter = parameters[1] as SString; var errorType = stringParameter ?? parameters[1].ToString(processor); obj.Members[MemberNameType].Data = errorType; } else { obj.Members[MemberNameType].Data = processor.CreateString("UserError"); } if (parameters.Length > 2) { var line = parameters[2] as SNumber; var errorLine = line ?? parameters[2].ToNumber(processor); obj.Members[MemberNameLine].Data = errorLine; } else { obj.Members[MemberNameLine].Data = processor.CreateNumber(-1); } return(obj); }
private static SObject TranslateString(ScriptProcessor processor, string strIn) { return processor.CreateString(strIn); }
public static SObject ToUpper(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { string str = (instance as SString).Value; return processor.CreateString(str.ToUpper()); }
internal override SString ToString(ScriptProcessor processor) { return processor.CreateString(ToScriptSource()); }
internal override SString ToString(ScriptProcessor processor) { return(processor.CreateString(LITERAL_OBJECT_STR)); }
internal override SString ToString(ScriptProcessor processor) { return(processor.CreateString(LiteralNull)); }
/// <summary> /// Returns the string representation of this object. /// </summary> internal virtual SString ToString(ScriptProcessor processor) { return(processor.CreateString(LiteralUndefined)); }
internal override SString ToString(ScriptProcessor processor) { return processor.CreateString(Value, Escaped, false); }
internal override SString ToString(ScriptProcessor processor) { return(processor.CreateString(ConvertToScriptString(Value))); }
/// <summary> /// Returns the string representation of this object. /// </summary> internal virtual SString ToString(ScriptProcessor processor) { return processor.CreateString(LITERAL_UNDEFINED); }
public static SObject Slice(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (TypeContract.Ensure(parameters, new[] { typeof(SNumber), typeof(SNumber) })) { var str = (instance as SString).Value; var sliceBegin = (int)(parameters[0] as SNumber).Value; var sliceEnd = (int)(parameters[1] as SNumber).Value; if (sliceBegin < 0) sliceBegin += str.Length; if (sliceBegin < 0) sliceBegin = 0; if (sliceBegin > str.Length) return processor.CreateString(""); if (sliceEnd < 0) sliceEnd += str.Length; if (sliceEnd < 0) sliceEnd = 0; if (sliceEnd > str.Length) sliceEnd = str.Length; return processor.CreateString(str.Substring(sliceBegin, sliceEnd - sliceBegin)); } if (TypeContract.Ensure(parameters, typeof(SNumber))) { var str = (instance as SString).Value; var sliceBegin = (int)(parameters[0] as SNumber).Value; if (sliceBegin < 0) sliceBegin += str.Length; if (sliceBegin < 0) sliceBegin = 0; if (sliceBegin > str.Length) return processor.CreateString(""); return processor.CreateString(str.Substring(sliceBegin)); } return processor.Undefined; }
internal override SString ToString(ScriptProcessor processor) { return(processor.CreateString(ToScriptSource())); }
public static SObject Remove(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (TypeContract.Ensure(parameters, new[] { typeof(SNumber), typeof(SNumber) })) { var str = (instance as SString).Value; var start = (int)(parameters[0] as SNumber).Value; var length = (int)(parameters[1] as SNumber).Value; if (start < 0) start = 0; if (start > str.Length) return processor.CreateString(str); if (length <= 0) return processor.CreateString(str); if (length + start > str.Length) length = str.Length - start; return processor.CreateString(str.Remove(start, length)); } if (TypeContract.Ensure(parameters, typeof(SNumber))) { var str = (instance as SString).Value; var start = (int)(parameters[0] as SNumber).Value; if (start < 0) start = 0; if (start > str.Length) return processor.CreateString(str); return processor.CreateString(str.Remove(start)); } return processor.Undefined; }
public static SObject TrimEnd(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { string str = (instance as SString).Value; string[] trimChars = { " " }; if (TypeContract.Ensure(parameters, typeof(SArray))) { trimChars = (parameters[0] as SArray).ArrayMembers.Select(m => m.ToString(processor).Value).ToArray(); } else if (TypeContract.Ensure(parameters, typeof(SString))) { trimChars = new[] { (parameters[0] as SString).Value }; } foreach (var trimChar in trimChars) { while (str.EndsWith(trimChar)) str = str.Remove(str.Length - trimChar.Length); } return processor.CreateString(str); }
public static SObject Empty(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { return processor.CreateString(""); }
private static SObject constructor(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { var obj = (SError)instance; if (parameters.Length > 0) { SString message; if (parameters[0] is SString) { message = (SString)parameters[0]; } else { message = parameters[0].ToString(processor); } obj.Members[MEMBER_NAME_MESSAGE].Data = message; } if (parameters.Length > 1) { SString errorType; if (parameters[1] is SString) { errorType = (SString)parameters[1]; } else { errorType = parameters[1].ToString(processor); } obj.Members[MEMBER_NAME_TYPE].Data = errorType; } else { obj.Members[MEMBER_NAME_TYPE].Data = processor.CreateString("UserError"); } if (parameters.Length > 2) { SNumber errorLine; if (parameters[2] is SNumber) { errorLine = (SNumber)parameters[2]; } else { errorLine = parameters[2].ToNumber(processor); } obj.Members[MEMBER_NAME_LINE].Data = errorLine; } else { obj.Members[MEMBER_NAME_LINE].Data = processor.CreateNumber(-1); } return(obj); }
public static SObject Replace(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (TypeContract.Ensure(parameters, new[] { typeof(SString), typeof(SString) })) { var str = (instance as SString).Value; var replace = (parameters[0] as SString).Value; var with = (parameters[1] as SString).Value; if (string.IsNullOrWhiteSpace(replace)) return processor.CreateString(str); return processor.CreateString(str.Replace(replace, with)); } return processor.Undefined; }
// ReSharper disable InconsistentNaming public static SObject toString(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) // ReSharper restore InconsistentNaming { return(processor.CreateString(LiteralObjectStr)); }
public static SObject Repeat(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (TypeContract.Ensure(parameters, typeof(SNumber))) { var repeatStr = (instance as SString).Value; var times = (int)(parameters[0] as SNumber).Value; var str = ""; for (int i = 0; i < times; i++) str += repeatStr; return processor.CreateString(str); } return processor.CreateString((instance as SString).Value); }
internal override SString ToString(ScriptProcessor processor) { return processor.CreateString(LITERAL_OBJECT_STR); }
public static SObject PadStart(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { var str = (instance as SString).Value; int totalLength = 0; var padStr = " "; string newPadded = ""; if (TypeContract.Ensure(parameters, new[] { typeof(SNumber), typeof(SString) })) { totalLength = (int)(parameters[0] as SNumber).Value; padStr = (parameters[1] as SString).Value; } if (TypeContract.Ensure(parameters, typeof(SNumber))) { totalLength = (int)(parameters[0] as SNumber).Value; } if (padStr == "" || totalLength <= str.Length) return processor.CreateString(str); while (newPadded.Length + str.Length < totalLength) newPadded += padStr; if (newPadded.Length + str.Length > totalLength) newPadded = newPadded.Remove(totalLength - str.Length); str = newPadded + str; return processor.CreateString(str); }
public static SObject toString(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { return processor.CreateString(LITERAL_OBJECT_STR); }
public static SObject ToUpper(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { string str = ((SString)instance).Value; return(processor.CreateString(str.ToUpper())); }
internal override SString ToString(ScriptProcessor processor) { return processor.CreateString(ConvertToScriptString(Value)); }
public static SObject Empty(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { return(processor.CreateString("")); }
/// <summary> /// Returns the string representation of this object. /// </summary> internal virtual SString ToString(ScriptProcessor processor) { return(processor.CreateString(LITERAL_UNDEFINED)); }
public static SObject Split(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { int limit = -1; string[] split; string[] delimiters; string str = (instance as SString).Value; if (TypeContract.Ensure(parameters, new[] { typeof(SArray), typeof(SNumber) })) { delimiters = (parameters[0] as SArray).ArrayMembers.Select(m => m.ToString(processor).Value).ToArray(); limit = (int)(parameters[1] as SNumber).Value; } else if (TypeContract.Ensure(parameters, typeof(SArray))) { delimiters = (parameters[0] as SArray).ArrayMembers.Select(m => m.ToString(processor).Value).ToArray(); } else if (TypeContract.Ensure(parameters, new[] { typeof(SString), typeof(SNumber) })) { delimiters = new[] { (parameters[0] as SString).Value }; limit = (int)(parameters[1] as SNumber).Value; } else if (TypeContract.Ensure(parameters, typeof(SString))) { delimiters = new[] { (parameters[0] as SString).Value }; } else { return processor.CreateArray(new[] { processor.CreateString(str) }); } split = str.Split(delimiters, StringSplitOptions.None); if (limit >= 0 && split.Length > limit) { var result = new string[limit]; Array.Copy(split, result, limit); split = result; } return processor.CreateArray(split.Select(m => processor.CreateString(m)).ToArray()); }
internal override SString ToString(ScriptProcessor processor) { return(processor.CreateString(Value, Escaped, false)); }
/// <summary> /// Sets a member of the original script object. /// </summary> public void SetMember(string identifier, object value) { SObject data = ScriptInAdapter.Translate(_processor, value); _objReference.SetMember(_processor, _processor.CreateString(identifier), false, data); }
private static SObject TranslateString(ScriptProcessor processor, string strIn) { return(processor.CreateString(strIn)); }
public static SObject toString(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { return(processor.CreateString(LITERAL_OBJECT_STR)); }