Skip to content

Commit ad06ba4

Browse files
authored
Merge pull request #34 from mbullington/optimize-parse-literal
Optimize parseLiteral for number-heavy JSON files (ala GeoJSON)
2 parents 318ee82 + 7505449 commit ad06ba4

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

src/impl/parser.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -482,16 +482,14 @@ export function visit(text: string, visitor: JSONVisitor, options: ParseOptions
482482
function parseLiteral(): boolean {
483483
switch (_scanner.getToken()) {
484484
case SyntaxKind.NumericLiteral:
485-
let value = 0;
486-
try {
487-
value = JSON.parse(_scanner.getTokenValue());
488-
if (typeof value !== 'number') {
489-
handleError(ParseErrorCode.InvalidNumberFormat);
490-
value = 0;
491-
}
492-
} catch (e) {
485+
const tokenValue = _scanner.getTokenValue();
486+
let value = Number(tokenValue);
487+
488+
if (isNaN(value)) {
493489
handleError(ParseErrorCode.InvalidNumberFormat);
490+
value = 0;
494491
}
492+
495493
onLiteralValue(value);
496494
break;
497495
case SyntaxKind.NullKeyword:

0 commit comments

Comments
 (0)