aboutsummaryrefslogtreecommitdiffstats
path: root/src/parser.js
diff options
context:
space:
mode:
authorMisko Hevery2010-11-05 16:41:36 -0700
committerMisko Hevery2010-11-05 16:41:36 -0700
commitd5e9f38f3de317a74f2711e93c7a5df0c89099c7 (patch)
tree439cb74357cd6f107c4b9c93cabb09c70757b5c1 /src/parser.js
parentdc66687149078876f3964a5ab0b9aa0434f46cdc (diff)
downloadangular.js-d5e9f38f3de317a74f2711e93c7a5df0c89099c7.tar.bz2
fix error in json parser which did not allow 1.2E10 as number
Diffstat (limited to 'src/parser.js')
-rw-r--r--src/parser.js10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/parser.js b/src/parser.js
index 8dc8f9c2..77800209 100644
--- a/src/parser.js
+++ b/src/parser.js
@@ -101,26 +101,26 @@ function lex(text, parseStringsForObjects){
'_' == ch || ch == '$';
}
function isExpOperator(ch) {
- return ch == '-' || ch == '+';
+ return ch == '-' || ch == '+' || isNumber(ch);
}
function readNumber() {
var number = "";
var start = index;
while (index < text.length) {
- var ch = text.charAt(index);
+ var ch = lowercase(text.charAt(index));
if (ch == '.' || isNumber(ch)) {
number += ch;
} else {
var peekCh = peek();
- if (ch == 'E' && isExpOperator(peekCh)) {
+ if (ch == 'e' && isExpOperator(peekCh)) {
number += ch;
} else if (isExpOperator(ch) &&
peekCh && isNumber(peekCh) &&
- number.charAt(number.length - 1) == 'E') {
+ number.charAt(number.length - 1) == 'e') {
number += ch;
} else if (isExpOperator(ch) &&
(!peekCh || !isNumber(peekCh)) &&
- number.charAt(number.length - 1) == 'E') {
+ number.charAt(number.length - 1) == 'e') {
throw 'Lexer found invalid exponential value "' + text + '"';
} else {
break;