File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -101,6 +101,7 @@ import {
101101 AST_If ,
102102 AST_Import ,
103103 AST_ImportMeta ,
104+ AST_Infinity ,
104105 AST_IterationStatement ,
105106 AST_Label ,
106107 AST_LabeledStatement ,
@@ -2313,12 +2314,22 @@ function parse($TEXT, options) {
23132314 ret = _make_symbol ( AST_SymbolRef ) ;
23142315 break ;
23152316 case "num" :
2316- ret = new AST_Number ( {
2317- start : tok ,
2318- end : tok ,
2319- value : tok . value ,
2320- raw : LATEST_RAW
2321- } ) ;
2317+ if ( tok . value === Infinity ) {
2318+ // very large float values are parsed as Infinity
2319+ ret = new AST_Infinity ( {
2320+ start : tok ,
2321+ end : tok ,
2322+ value : tok . value ,
2323+ raw : LATEST_RAW
2324+ } ) ;
2325+ } else {
2326+ ret = new AST_Number ( {
2327+ start : tok ,
2328+ end : tok ,
2329+ value : tok . value ,
2330+ raw : LATEST_RAW
2331+ } ) ;
2332+ }
23222333 break ;
23232334 case "big_int" :
23242335 ret = new AST_BigInt ( {
Original file line number Diff line number Diff line change @@ -304,3 +304,13 @@ numeric_separator_double_underscore: {
304304 message : "Only one underscore is allowed as numeric separator"
305305 } )
306306}
307+
308+ large_numbers_converted_to_infinity: {
309+ input: {
310+ console . log ( Infinity ) , console . log ( 1e500 ) , console . log ( - 1e500 ) ;
311+ }
312+ expect: {
313+ console . log ( 1 / 0 ) , console . log ( 1 / 0 ) , console . log ( - 1 / 0 ) ;
314+ }
315+ expect_stdout: true
316+ }
You can’t perform that action at this time.
0 commit comments