@@ -1043,9 +1043,6 @@ export function visit(text: string, visitor: JSONVisitor, options?: ParseOptions
1043
1043
}
1044
1044
1045
1045
function parseString ( isValue : boolean ) : boolean {
1046
- if ( _scanner . getToken ( ) !== SyntaxKind . StringLiteral ) {
1047
- return false ;
1048
- }
1049
1046
let value = _scanner . getTokenValue ( ) ;
1050
1047
if ( isValue ) {
1051
1048
onLiteralValue ( value ) ;
@@ -1088,10 +1085,11 @@ export function visit(text: string, visitor: JSONVisitor, options?: ParseOptions
1088
1085
}
1089
1086
1090
1087
function parseProperty ( ) : boolean {
1091
- if ( ! parseString ( false ) ) {
1088
+ if ( _scanner . getToken ( ) !== SyntaxKind . StringLiteral ) {
1092
1089
handleError ( ParseErrorCode . PropertyNameExpected , [ ] , [ SyntaxKind . CloseBraceToken , SyntaxKind . CommaToken ] ) ;
1093
1090
return false ;
1094
1091
}
1092
+ parseString ( false ) ;
1095
1093
if ( _scanner . getToken ( ) === SyntaxKind . ColonToken ) {
1096
1094
onSeparator ( ':' ) ;
1097
1095
scanNext ( ) ; // consume colon
@@ -1106,9 +1104,6 @@ export function visit(text: string, visitor: JSONVisitor, options?: ParseOptions
1106
1104
}
1107
1105
1108
1106
function parseObject ( ) : boolean {
1109
- if ( _scanner . getToken ( ) !== SyntaxKind . OpenBraceToken ) {
1110
- return false ;
1111
- }
1112
1107
onObjectBegin ( ) ;
1113
1108
scanNext ( ) ; // consume open brace
1114
1109
@@ -1138,9 +1133,6 @@ export function visit(text: string, visitor: JSONVisitor, options?: ParseOptions
1138
1133
}
1139
1134
1140
1135
function parseArray ( ) : boolean {
1141
- if ( _scanner . getToken ( ) !== SyntaxKind . OpenBracketToken ) {
1142
- return false ;
1143
- }
1144
1136
onArrayBegin ( ) ;
1145
1137
scanNext ( ) ; // consume open bracket
1146
1138
@@ -1170,7 +1162,16 @@ export function visit(text: string, visitor: JSONVisitor, options?: ParseOptions
1170
1162
}
1171
1163
1172
1164
function parseValue ( ) : boolean {
1173
- return parseArray ( ) || parseObject ( ) || parseString ( true ) || parseLiteral ( ) ;
1165
+ switch ( _scanner . getToken ( ) ) {
1166
+ case SyntaxKind . OpenBracketToken :
1167
+ return parseArray ( ) ;
1168
+ case SyntaxKind . OpenBraceToken :
1169
+ return parseObject ( ) ;
1170
+ case SyntaxKind . StringLiteral :
1171
+ return parseString ( true ) ;
1172
+ default :
1173
+ return parseLiteral ( ) ;
1174
+ }
1174
1175
}
1175
1176
1176
1177
scanNext ( ) ;
0 commit comments