internal override SNumber ToNumber(ScriptProcessor processor) { if (Value) return processor.CreateNumber(1); else return processor.CreateNumber(0); }
internal override SNumber ToNumber(ScriptProcessor processor) { if (Value.Trim() == "") { return(processor.CreateNumber(0)); } double dblResult; return(processor.CreateNumber(double.TryParse(Value, out dblResult) ? dblResult : double.NaN)); }
internal override SNumber ToNumber(ScriptProcessor processor) { if (Value) { return(processor.CreateNumber(1)); } else { return(processor.CreateNumber(0)); } }
/// <summary> /// Multiplies an object with -1. /// </summary> internal static SObject NegateNumber(ScriptProcessor processor, SObject obj) { var sNumber = obj as SNumber; var number = sNumber?.Value ?? obj.ToNumber(processor).Value; return(processor.CreateNumber(number * -1)); }
public static SObject LastIndexOf(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (TypeContract.Ensure(parameters, typeof(SString))) { var str = (SString)instance; var search = (SString)parameters[0]; if (!str.Value.Contains(search.Value) || search.Value == "") { return(processor.CreateNumber(-1)); } return(processor.CreateNumber(str.Value.LastIndexOf(search.Value, StringComparison.Ordinal))); } return(processor.Undefined); }
public static SObject IndexOf(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (TypeContract.Ensure(parameters, typeof(SString))) { var str = instance as SString; var search = parameters[0] as SString; if (!str.Value.Contains(search.Value) || search.Value == "") { return(processor.CreateNumber(-1)); } return(processor.CreateNumber(str.Value.IndexOf(search.Value))); } return(processor.Undefined); }
internal override SNumber ToNumber(ScriptProcessor processor) { if (Value.Trim() == "") { return(processor.CreateNumber(0)); } else { var dblResult = 0D; if (double.TryParse(Value, out dblResult)) { return(processor.CreateNumber(dblResult)); } else { return(processor.CreateNumber(double.NaN)); } } }
public static SObject Count(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (parameters.Length == 0) { var arr = (SArray)instance; return(processor.CreateNumber(arr.ArrayMembers.Length)); } if (parameters.Length >= 1) { var arr = (SArray)instance; var comparer = (SFunction)Unbox(parameters[0]); var result = arr.ArrayMembers.Count(m => ((SBool)comparer.Call(processor, This, This, new[] { m })).Value); return(processor.CreateNumber(result)); } return(processor.Undefined); }
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; }
/// <summary> /// Multiplies an object with -1. /// </summary> internal static SObject NegateNumber(ScriptProcessor processor, SObject obj) { double number; if (obj is SNumber) { number = ((SNumber)obj).Value; } else { number = obj.ToNumber(processor).Value; } return(processor.CreateNumber(number * -1)); }
internal static string IncrementOperator(ScriptProcessor processor, SObject obj) { // Only variables can be incremented: var variable = obj as SVariable; if (variable != null) { var svar = variable; svar.Data = processor.CreateNumber(svar.Data.ToNumber(processor).Value + 1D); return(svar.Identifier); } processor.ErrorHandler.ThrowError(ErrorType.SyntaxError, ErrorHandler.MessageSyntaxInvalidIncrement); return(""); }
internal static string DecrementOperator(ScriptProcessor processor, SObject obj) { // Only variables can be decremented: if (obj is SVariable) { var svar = (SVariable)obj; svar.Data = processor.CreateNumber(svar.Data.ToNumber(processor).Value - 1D); return(svar.Identifier); } else { processor.ErrorHandler.ThrowError(ErrorType.SyntaxError, ErrorHandler.MESSAGE_SYNTAX_INVALID_DECREMENT); return(""); } }
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); }
public static SObject Length(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { var str = instance as SString; return processor.CreateNumber(str.Value.Length); }
public static SObject Where(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (parameters.Length >= 1) { var arr = (SArray)instance; var comparer = (SFunction)Unbox(parameters[0]); var results = arr.ArrayMembers.Where((m, i) => ((SBool)comparer.Call(processor, This, This, new[] { m, processor.CreateNumber(i) })).Value); return(processor.CreateArray(results.ToArray())); } return(processor.Undefined); }
/// <summary> /// Multiplies an object with -1. /// </summary> internal static SObject NegateNumber(ScriptProcessor processor, SObject obj) { double number; if (obj is SNumber) number = ((SNumber)obj).Value; else number = obj.ToNumber(processor).Value; return processor.CreateNumber(number * -1); }
internal static string DecrementOperator(ScriptProcessor processor, SObject obj) { // Only variables can be decremented: if (obj is SVariable) { var svar = (SVariable)obj; svar.Data = processor.CreateNumber(svar.Data.ToNumber(processor).Value - 1D); return svar.Identifier; } else { processor.ErrorHandler.ThrowError(ErrorType.SyntaxError, ErrorHandler.MESSAGE_SYNTAX_INVALID_DECREMENT); return ""; } }
internal override SNumber ToNumber(ScriptProcessor processor) { if (Value.Trim() == "") { return processor.CreateNumber(0); } else { var dblResult = 0D; if (double.TryParse(Value, out dblResult)) { return processor.CreateNumber(dblResult); } else { return processor.CreateNumber(double.NaN); } } }
public static SObject Where(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (parameters.Length >= 1) { var arr = (SArray)instance; var comparer = (SFunction)Unbox(parameters[0]); var results = arr.ArrayMembers.Where((m, i) => ((SBool)comparer.Call(processor, This, This, new[] {m, processor.CreateNumber(i)})).Value); return processor.CreateArray(results.ToArray()); } return processor.Undefined; }
/// <summary> /// Returns the number representation of this object. /// </summary> internal virtual SNumber ToNumber(ScriptProcessor processor) { return(processor.CreateNumber(double.NaN)); }
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 Length(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { var str = instance as SString; return(processor.CreateNumber(str.Value.Length)); }
public static SObject Length(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { var arr = (SArray)instance; return(processor.CreateNumber(arr.ArrayMembers.Length)); }
public static SObject LastIndexOf(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (TypeContract.Ensure(parameters, typeof(SString))) { var str = instance as SString; var search = parameters[0] as SString; if (!str.Value.Contains(search.Value) || search.Value == "") return processor.CreateNumber(-1); return processor.CreateNumber(str.Value.LastIndexOf(search.Value)); } return processor.Undefined; }
/// <summary> /// Updates the "length" property of this object. /// </summary> public void UpdateLength(ScriptProcessor processor) { //TODO: Add length to prototype Members["length"] = new SVariable("length", processor.CreateNumber(ArrayMembers.Length)) { IsReadOnly = true }; }
private static SObject TranslateNumber(ScriptProcessor processor, double dblIn) { return processor.CreateNumber(dblIn); }
internal override SNumber ToNumber(ScriptProcessor processor) { return processor.CreateNumber(Value); }
internal override SNumber ToNumber(ScriptProcessor processor) { return(processor.CreateNumber(Value)); }
public static SObject Count(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (parameters.Length == 0) { var arr = (SArray)instance; return processor.CreateNumber(arr.ArrayMembers.Length); } if (parameters.Length >= 1) { var arr = (SArray)instance; var comparer = (SFunction)Unbox(parameters[0]); var result = arr.ArrayMembers.Count(m => ((SBool)comparer.Call(processor, This, This, new[] { m })).Value); return processor.CreateNumber(result); } return processor.Undefined; }
public static SObject Length(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { return(processor.CreateNumber(((SString)instance).Value.Length)); }
/// <summary> /// Sets the value and updates the length property. /// </summary> internal void SetValue(ScriptProcessor processor, string value) { Value = value; var length = processor.CreateNumber(value.Length); //TODO: add length to prototype. Members[STRING_LENGTH_PROPERTY_NAME].ForceSetData(length); }
public static SObject Length(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { var arr = (SArray)instance; return processor.CreateNumber(arr.ArrayMembers.Length); }
private static SObject TranslateNumber(ScriptProcessor processor, double dblIn) { return(processor.CreateNumber(dblIn)); }
/// <summary> /// Returns the number representation of this object. /// </summary> internal virtual SNumber ToNumber(ScriptProcessor processor) { return processor.CreateNumber(double.NaN); }