@@ -2597,24 +2597,34 @@ function deserializeNullLiteral(pos) {
25972597}
25982598
25992599function deserializeNumericLiteral ( pos ) {
2600+ let start = deserializeU32 ( pos ) ,
2601+ end = deserializeU32 ( pos + 4 ) ;
26002602 return {
26012603 type : "Literal" ,
26022604 value : deserializeF64 ( pos + 32 ) ,
2603- raw : deserializeOptionStr ( pos + 16 ) ,
2604- start : deserializeU32 ( pos ) ,
2605- end : deserializeU32 ( pos + 4 ) ,
2605+ raw :
2606+ uint32 [ ( pos + 16 ) >> 2 ] === 0 && uint32 [ ( pos + 20 ) >> 2 ] === 0
2607+ ? null
2608+ : sourceText . slice ( start , end ) ,
2609+ start,
2610+ end,
26062611 parent,
26072612 } ;
26082613}
26092614
26102615function deserializeStringLiteral ( pos ) {
2611- let previousParent = parent ,
2616+ let start = deserializeU32 ( pos ) ,
2617+ end = deserializeU32 ( pos + 4 ) ,
2618+ previousParent = parent ,
26122619 node = ( parent = {
26132620 type : "Literal" ,
26142621 value : null ,
2615- raw : deserializeOptionStr ( pos + 32 ) ,
2616- start : deserializeU32 ( pos ) ,
2617- end : deserializeU32 ( pos + 4 ) ,
2622+ raw :
2623+ uint32 [ ( pos + 32 ) >> 2 ] === 0 && uint32 [ ( pos + 36 ) >> 2 ] === 0
2624+ ? null
2625+ : sourceText . slice ( start , end ) ,
2626+ start,
2627+ end,
26182628 parent,
26192629 } ) ,
26202630 value = deserializeStr ( pos + 16 ) ;
@@ -2626,14 +2636,19 @@ function deserializeStringLiteral(pos) {
26262636}
26272637
26282638function deserializeBigIntLiteral ( pos ) {
2629- let previousParent = parent ,
2639+ let start = deserializeU32 ( pos ) ,
2640+ end = deserializeU32 ( pos + 4 ) ,
2641+ previousParent = parent ,
26302642 node = ( parent = {
26312643 type : "Literal" ,
26322644 value : null ,
2633- raw : deserializeOptionStr ( pos + 32 ) ,
2645+ raw :
2646+ uint32 [ ( pos + 32 ) >> 2 ] === 0 && uint32 [ ( pos + 36 ) >> 2 ] === 0
2647+ ? null
2648+ : sourceText . slice ( start , end ) ,
26342649 bigint : null ,
2635- start : deserializeU32 ( pos ) ,
2636- end : deserializeU32 ( pos + 4 ) ,
2650+ start,
2651+ end,
26372652 parent,
26382653 } ) ,
26392654 bigint = deserializeStr ( pos + 16 ) ;
@@ -2644,14 +2659,19 @@ function deserializeBigIntLiteral(pos) {
26442659}
26452660
26462661function deserializeRegExpLiteral ( pos ) {
2647- let previousParent = parent ,
2662+ let start = deserializeU32 ( pos ) ,
2663+ end = deserializeU32 ( pos + 4 ) ,
2664+ previousParent = parent ,
26482665 node = ( parent = {
26492666 type : "Literal" ,
26502667 value : null ,
2651- raw : deserializeOptionStr ( pos + 48 ) ,
2668+ raw :
2669+ uint32 [ ( pos + 48 ) >> 2 ] === 0 && uint32 [ ( pos + 52 ) >> 2 ] === 0
2670+ ? null
2671+ : sourceText . slice ( start , end ) ,
26522672 regex : null ,
2653- start : deserializeU32 ( pos ) ,
2654- end : deserializeU32 ( pos + 4 ) ,
2673+ start,
2674+ end,
26552675 parent,
26562676 } ) ,
26572677 regex = deserializeRegExp ( pos + 16 ) ,
@@ -3100,12 +3120,17 @@ function deserializeJSXSpreadChild(pos) {
31003120}
31013121
31023122function deserializeJSXText ( pos ) {
3123+ let start = deserializeU32 ( pos ) ,
3124+ end = deserializeU32 ( pos + 4 ) ;
31033125 return {
31043126 type : "JSXText" ,
31053127 value : deserializeStr ( pos + 16 ) ,
3106- raw : deserializeOptionStr ( pos + 32 ) ,
3107- start : deserializeU32 ( pos ) ,
3108- end : deserializeU32 ( pos + 4 ) ,
3128+ raw :
3129+ uint32 [ ( pos + 32 ) >> 2 ] === 0 && uint32 [ ( pos + 36 ) >> 2 ] === 0
3130+ ? null
3131+ : sourceText . slice ( start , end ) ,
3132+ start,
3133+ end,
31093134 parent,
31103135 } ;
31113136}
0 commit comments