@@ -3800,10 +3800,14 @@ export class Parser extends DiagnosticEmitter {
3800
3800
return Node . createStringLiteralExpression ( tn . readString ( ) , tn . range ( startPos , tn . pos ) ) ;
3801
3801
}
3802
3802
case Token . INTEGERLITERAL : {
3803
- return Node . createIntegerLiteralExpression ( tn . readInteger ( ) , tn . range ( startPos , tn . pos ) ) ;
3803
+ let value = tn . readInteger ( ) ;
3804
+ tn . checkForIdentifierStartAfterNumericLiteral ( ) ;
3805
+ return Node . createIntegerLiteralExpression ( value , tn . range ( startPos , tn . pos ) ) ;
3804
3806
}
3805
3807
case Token . FLOATLITERAL : {
3806
- return Node . createFloatLiteralExpression ( tn . readFloat ( ) , tn . range ( startPos , tn . pos ) ) ;
3808
+ let value = tn . readFloat ( ) ;
3809
+ tn . checkForIdentifierStartAfterNumericLiteral ( ) ;
3810
+ return Node . createFloatLiteralExpression ( value , tn . range ( startPos , tn . pos ) ) ;
3807
3811
}
3808
3812
// RegexpLiteralExpression
3809
3813
// note that this also continues on invalid ones so the surrounding AST remains intact
@@ -4207,10 +4211,12 @@ export class Parser extends DiagnosticEmitter {
4207
4211
}
4208
4212
case Token . INTEGERLITERAL : {
4209
4213
tn . readInteger ( ) ;
4214
+ tn . checkForIdentifierStartAfterNumericLiteral ( ) ;
4210
4215
break ;
4211
4216
}
4212
4217
case Token . FLOATLITERAL : {
4213
4218
tn . readFloat ( ) ;
4219
+ tn . checkForIdentifierStartAfterNumericLiteral ( ) ;
4214
4220
break ;
4215
4221
}
4216
4222
case Token . OPENBRACE : {
@@ -4255,10 +4261,12 @@ export class Parser extends DiagnosticEmitter {
4255
4261
}
4256
4262
case Token . INTEGERLITERAL : {
4257
4263
tn . readInteger ( ) ;
4264
+ tn . checkForIdentifierStartAfterNumericLiteral ( ) ;
4258
4265
break ;
4259
4266
}
4260
4267
case Token . FLOATLITERAL : {
4261
4268
tn . readFloat ( ) ;
4269
+ tn . checkForIdentifierStartAfterNumericLiteral ( ) ;
4262
4270
break ;
4263
4271
}
4264
4272
}
0 commit comments