Commit 7a1284d5 authored by Sergey.Konovalov's avatar Sergey.Konovalov Committed by Alexander.Trofimov

Bug 26071 - Зависание браузера при вводе экспоненциального числа

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@57899 954022d7-b5bf-4e40-9824-e11837661b57
parent af0e78b3
......@@ -53,6 +53,8 @@ var NumComporationOperators =
function getNumberParts(x)
{
var sig = SignType.Null;
if (!isFinite(x))
x = 0;
if(x > 0)
sig = SignType.Positive;
else if(x < 0)
......@@ -2673,7 +2675,7 @@ FormatParser.prototype =
val = val.replace(".", "q");//заменяем на символ с которым не распознается, как в Excel
val = val.replace(cultureInfo.NumberDecimalSeparator, ".");
}
return Asc.isNumber(val);
return Asc.isNumberInfinity(val);
},
parseLocaleNumber: function (val, cultureInfo) {
if (null == cultureInfo)
......@@ -2683,7 +2685,7 @@ FormatParser.prototype =
val = val.replace(".", "q");//заменяем на символ с которым не распознается, как в Excel
val = val.replace(cultureInfo.NumberDecimalSeparator, ".");
}
return parseFloat(val);
return val - 0;
},
parse: function (value, cultureInfo)
{
......
......@@ -18,6 +18,8 @@
/** @const */
var kLeftLim1 = .999999999999999;
var MAX_EXCEL_INT = 1e308;
var MIN_EXCEL_INT = -MAX_EXCEL_INT;
/** @const */
var kUndefinedL = "undefined";
......@@ -833,6 +835,12 @@
return (valTrim - 0) == valTrim && valTrim.length > 0;
}
function isNumberInfinity(val) {
var valTrim = trim(val);
var valInt = valTrim - 0;
return valInt == valTrim && valTrim.length > 0 && MIN_EXCEL_INT < valInt && valInt < MAX_EXCEL_INT;//
}
function arrayToLowerCase(array) {
var result = [];
for (var i = 0, length = array.length; i < length; ++i)
......@@ -1507,6 +1515,7 @@
window["Asc"].isEqual = isEqual;
window["Asc"].profileTime = profileTime;
window["Asc"].isNumber = isNumber;
window["Asc"].isNumberInfinity = isNumberInfinity;
window["Asc"].trim = trim;
window["Asc"].extendClass = extendClass;
window["Asc"].arrayToLowerCase = arrayToLowerCase;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment