Skip to content

Commit 76671ce

Browse files
authored
Merge branch 'master' into perf/array-exe-handlers
2 parents a11fcd2 + 7fe89a1 commit 76671ce

3 files changed

Lines changed: 23 additions & 18 deletions

File tree

src/common/parser/EscapeSequenceParser.ts

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -470,8 +470,7 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP
470470
this._oscParser.reset();
471471
this._dcsParser.reset();
472472
this._apcParser.reset();
473-
this._params.reset();
474-
this._params.addParam(0); // ZDM
473+
this._params.resetZdm();
475474
this._collect = 0;
476475
this.precedingJoinState = 0;
477476
// abort pending continuation from async handler
@@ -620,8 +619,7 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP
620619
return handlerResult;
621620
}
622621
if (code === 0x1b) this._parseStack.transition |= ParserState.ESCAPE;
623-
this._params.reset();
624-
this._params.addParam(0); // ZDM
622+
this._params.resetZdm();
625623
this._collect = 0;
626624
break;
627625
case ParserStackType.OSC:
@@ -631,8 +629,7 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP
631629
return handlerResult;
632630
}
633631
if (code === 0x1b) this._parseStack.transition |= ParserState.ESCAPE;
634-
this._params.reset();
635-
this._params.addParam(0); // ZDM
632+
this._params.resetZdm();
636633
this._collect = 0;
637634
break;
638635
case ParserStackType.APC:
@@ -642,8 +639,7 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP
642639
return handlerResult;
643640
}
644641
if (code === 0x1b) this._parseStack.transition |= ParserState.ESCAPE;
645-
this._params.reset();
646-
this._params.addParam(0); // ZDM
642+
this._params.resetZdm();
647643
this._collect = 0;
648644
break;
649645
}
@@ -673,8 +669,7 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP
673669
&& this.currentState < ParserState.OSC_STRING
674670
&& i + 2 < length && data[i + 1] === 0x5b
675671
) {
676-
this._params.reset();
677-
this._params.addParam(0); // ZDM
672+
this._params.resetZdm();
678673
this._collect = 0;
679674
let k = i + 2;
680675
let ch = data[k];
@@ -824,8 +819,7 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP
824819
this.precedingJoinState = 0;
825820
break;
826821
case ParserAction.CLEAR:
827-
this._params.reset();
828-
this._params.addParam(0); // ZDM
822+
this._params.resetZdm();
829823
this._collect = 0;
830824
break;
831825
case ParserAction.DCS_HOOK:
@@ -849,8 +843,7 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP
849843
return handlerResult;
850844
}
851845
if (code === 0x1b) transition |= ParserState.ESCAPE;
852-
this._params.reset();
853-
this._params.addParam(0); // ZDM
846+
this._params.resetZdm();
854847
this._collect = 0;
855848
this.precedingJoinState = 0;
856849
break;
@@ -874,8 +867,7 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP
874867
return handlerResult;
875868
}
876869
if (code === 0x1b) transition |= ParserState.ESCAPE;
877-
this._params.reset();
878-
this._params.addParam(0); // ZDM
870+
this._params.resetZdm();
879871
this._collect = 0;
880872
this.precedingJoinState = 0;
881873
break;
@@ -899,8 +891,7 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP
899891
return handlerResult;
900892
}
901893
if (code === 0x1b) transition |= ParserState.ESCAPE;
902-
this._params.reset();
903-
this._params.addParam(0); // ZDM
894+
this._params.resetZdm();
904895
this._collect = 0;
905896
this.precedingJoinState = 0;
906897
break;

src/common/parser/Params.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,19 @@ export class Params implements IParams {
129129
this._digitIsSub = false;
130130
}
131131

132+
/**
133+
* Reset and add 0 as first param (ZDM).
134+
*/
135+
public resetZdm(): void {
136+
this.length = 1;
137+
this._subParamsLength = 0;
138+
this._rejectDigits = false;
139+
this._rejectSubDigits = false;
140+
this._digitIsSub = false;
141+
this._subParamsIdx[0] = 0;
142+
this.params[0] = 0;
143+
}
144+
132145
/**
133146
* Add a parameter value.
134147
* `Params` only stores up to `maxLength` parameters, any later

src/common/parser/Types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export interface IParams {
3232
clone(): IParams;
3333
toArray(): ParamsArray;
3434
reset(): void;
35+
resetZdm(): void;
3536
addParam(value: number): void;
3637
addSubParam(value: number): void;
3738
hasSubParams(idx: number): boolean;

0 commit comments

Comments
 (0)