From 87e292414ddb4c73f82f96cfea1b4dab5f91f690 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Breitbart?= Date: Sat, 7 Jul 2018 12:46:51 +0200 Subject: [PATCH 1/2] fix out of bound deopt in EscapeSequenceParser.parse --- src/EscapeSequenceParser.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/EscapeSequenceParser.ts b/src/EscapeSequenceParser.ts index 8995b203..34600a20 100644 --- a/src/EscapeSequenceParser.ts +++ b/src/EscapeSequenceParser.ts @@ -375,8 +375,7 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP // shortcut for most chars (print action) if (currentState === ParserState.GROUND && code > 0x1f && code < 0x80) { print = (~print) ? print : i; - do code = data.charCodeAt(++i); - while (i < l && code > 0x1f && code < 0x80); + while (++i < l && data.charCodeAt(i) > 0x1f && data.charCodeAt(i) < 0x80) {} i--; continue; } From ba7976f3b141426e743234a3b4fb58cb98a2ec0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Breitbart?= Date: Sat, 7 Jul 2018 21:20:03 +0200 Subject: [PATCH 2/2] do while loop --- src/EscapeSequenceParser.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/EscapeSequenceParser.ts b/src/EscapeSequenceParser.ts index 34600a20..bf744e05 100644 --- a/src/EscapeSequenceParser.ts +++ b/src/EscapeSequenceParser.ts @@ -375,7 +375,8 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP // shortcut for most chars (print action) if (currentState === ParserState.GROUND && code > 0x1f && code < 0x80) { print = (~print) ? print : i; - while (++i < l && data.charCodeAt(i) > 0x1f && data.charCodeAt(i) < 0x80) {} + do i++; + while (i < l && data.charCodeAt(i) > 0x1f && data.charCodeAt(i) < 0x80); i--; continue; }