@@ -11,7 +11,7 @@ interface ParserOptions {
11
11
type ?: string | Parser ;
12
12
formatter ?: ( item : any ) => string | number ;
13
13
encoding ?: string ;
14
- readUntil ?: 'eof' ;
14
+ readUntil ?: 'eof' | ( ( item : any , buffer : Buffer ) => boolean ) ;
15
15
greedy ?: boolean ;
16
16
choices ?: { [ key : number ] : string | Parser } ;
17
17
defaultChoice ?: string | Parser ;
@@ -1029,7 +1029,7 @@ export class Parser {
1029
1029
ctx . pushCode ( `${ cur } = dataView.getUint8(offset);` ) ;
1030
1030
const func = ctx . addImport ( pred ) ;
1031
1031
ctx . pushCode (
1032
- `if (${ func } .call(this , ${ cur } , buffer.subarray(offset))) break;`
1032
+ `if (${ func } .call(${ ctx . generateVariable ( ) } , ${ cur } , buffer.subarray(offset))) break;`
1033
1033
) ;
1034
1034
ctx . pushCode ( `offset += 1;` ) ;
1035
1035
ctx . pushCode ( `}` ) ;
@@ -1115,7 +1115,7 @@ export class Parser {
1115
1115
const pred = this . options . readUntil ;
1116
1116
const func = ctx . addImport ( pred ) ;
1117
1117
ctx . pushCode (
1118
- `while (!${ func } .call(this , ${ item } , buffer.subarray(offset)));`
1118
+ `while (!${ func } .call(${ ctx . generateVariable ( ) } , ${ item } , buffer.subarray(offset)));`
1119
1119
) ;
1120
1120
}
1121
1121
}
@@ -1207,7 +1207,7 @@ export class Parser {
1207
1207
ctx . pushCode ( `${ cur } = dataView.getUint8(offset);` ) ;
1208
1208
const func = ctx . addImport ( pred ) ;
1209
1209
ctx . pushCode (
1210
- `if (${ func } .call(this , ${ cur } , buffer.subarray(offset))) break;`
1210
+ `if (${ func } .call(${ ctx . generateVariable ( ) } , ${ cur } , buffer.subarray(offset))) break;`
1211
1211
) ;
1212
1212
ctx . pushCode ( `offset += 1;` ) ;
1213
1213
ctx . pushCode ( `}` ) ;
@@ -1266,7 +1266,9 @@ export class Parser {
1266
1266
) {
1267
1267
if ( typeof formatter === 'function' ) {
1268
1268
const func = ctx . addImport ( formatter ) ;
1269
- ctx . pushCode ( `${ varName } = ${ func } .call(this, ${ varName } );` ) ;
1269
+ ctx . pushCode (
1270
+ `${ varName } = ${ func } .call(${ ctx . generateVariable ( ) } , ${ varName } );`
1271
+ ) ;
1270
1272
}
1271
1273
}
1272
1274
0 commit comments