public JsInstance ParseFloat(JsInstance[] arguments)
{
if (arguments.Length < 1 || arguments[0] == JsUndefined.Instance) {
return JsUndefined.Instance;
}
string number = arguments[0].ToString().Trim();
// the parseFloat function should stop parsing when it encounters an unalowed char
Regex regexp = new Regex(@"^[\+\-\d\.e]*", RegexOptions.IgnoreCase);
Match match = regexp.Match(number);
double result;
if (match.Success && double.TryParse(match.Value, NumberStyles.Float, new CultureInfo("en-US"), out result)) {
return NumberClass.New(result);
}
else {
return this["NaN"];
}
}