@@ -786,7 +786,7 @@ export function getLocation(text: string, position: number): Location {
786786 if ( position < offset ) {
787787 throw earlyReturnException ;
788788 }
789- setPreviousNode ( value , offset , length , getLiteralNodeType ( value ) ) ;
789+ setPreviousNode ( value , offset , length , getNodeType ( value ) ) ;
790790
791791 if ( position <= offset + length ) {
792792 throw earlyReturnException ;
@@ -928,7 +928,7 @@ export function parseTree(text: string, errors: ParseError[] = [], options: Pars
928928 ensurePropertyComplete ( offset + length ) ;
929929 } ,
930930 onLiteralValue : ( value : any , offset : number , length : number ) => {
931- onValue ( { type : getLiteralNodeType ( value ) , offset, length, parent : currentParent , value } ) ;
931+ onValue ( { type : getNodeType ( value ) , offset, length, parent : currentParent , value } ) ;
932932 ensurePropertyComplete ( offset + length ) ;
933933 } ,
934934 onSeparator : ( sep : string , offset : number , length : number ) => {
@@ -1338,11 +1338,19 @@ export function stripComments(text: string, replaceCh?: string): string {
13381338 return parts . join ( '' ) ;
13391339}
13401340
1341- function getLiteralNodeType ( value : any ) : NodeType {
1341+ export function getNodeType ( value : any ) : NodeType {
13421342 switch ( typeof value ) {
13431343 case 'boolean' : return 'boolean' ;
13441344 case 'number' : return 'number' ;
13451345 case 'string' : return 'string' ;
1346+ case 'object' : {
1347+ if ( ! value ) {
1348+ return 'null' ;
1349+ } else if ( Array . isArray ( value ) ) {
1350+ return 'array' ;
1351+ }
1352+ return 'object' ;
1353+ }
13461354 default : return 'null' ;
13471355 }
13481356}
0 commit comments