@@ -83,8 +83,8 @@ export class ColoredConsole {
8383 case 1 : this . state . bold = true ; break ;
8484 case 3 : this . state . italic = true ; break ;
8585 case 4 : this . state . underline = true ; break ;
86- case 5 : this . state . blink = true ; break ;
87- case 6 : this . state . rapidBlink = true ; break ;
86+ case 5 : this . state . blink = true ; this . state . rapidBlink = false ; break ;
87+ case 6 : this . state . rapidBlink = true ; this . state . blink = false ; break ;
8888 case 8 : this . state . secret = true ; break ;
8989 case 9 : this . state . strikethrough = true ; break ;
9090 case 22 : this . state . bold = false ; break ;
@@ -130,26 +130,25 @@ export class ColoredConsole {
130130 }
131131
132132 for ( const line of this . state . lines ) {
133- if ( this . state . carriageReturn && line !== "\n" ) {
134- if ( fragment . childElementCount ) {
135- fragment . removeChild ( fragment . lastChild ) ;
136- }
137- }
138133 // A lone \r is a pure carriage-return signal — update state but don't
139134 // create a DOM node for it (it has no renderable content).
140135 if ( line === "\r" ) {
141136 this . state . carriageReturn = true ;
142137 continue ;
143138 }
139+ if ( this . state . carriageReturn && line !== "\n" ) {
140+ if ( fragment . childElementCount ) {
141+ fragment . removeChild ( fragment . lastChild ) ;
142+ }
143+ }
144144 const hadCarriageReturn = line . endsWith ( "\r" ) ;
145145 fragment . appendChild ( this . processLine ( line . replace ( / \r / g, "" ) ) ) ;
146146 this . state . carriageReturn = hadCarriageReturn ;
147147 }
148148
149149 if (
150150 prevCarriageReturn &&
151- this . state . lines [ 0 ] !== "\n" &&
152- this . state . lines [ 0 ] !== "\r" &&
151+ fragment . childElementCount > 0 &&
153152 this . targetElement . lastChild
154153 ) {
155154 this . targetElement . replaceChild ( fragment , this . targetElement . lastChild ) ;
0 commit comments