@@ -467,14 +467,18 @@ function collapseWhiteSpace(
467467 ( { text, characterMeta} = trimLeadingSpace ( text , characterMeta ) ) ;
468468 ( { text, characterMeta} = trimTrailingSpace ( text , characterMeta ) ) ;
469469 let i = text . length ;
470+ let characterMetaArr = characterMeta . toArray ( ) ;
470471 while ( i -- ) {
471472 if ( text . charAt ( i ) === ' ' && text . charAt ( i - 1 ) === ' ' ) {
472473 text = text . slice ( 0 , i ) + text . slice ( i + 1 ) ;
473- characterMeta = characterMeta
474+ characterMetaArr = characterMetaArr
474475 . slice ( 0 , i )
475- . concat ( characterMeta . slice ( i + 1 ) ) ;
476+ . concat ( characterMetaArr . slice ( i + 1 ) ) ;
476477 }
477478 }
479+
480+ characterMeta = Seq ( characterMetaArr ) ;
481+
478482 // There could still be one space on either side of a softbreak.
479483 ( { text , characterMeta } = replaceTextWithMeta(
480484 { text , characterMeta } ,
@@ -503,12 +507,12 @@ function canHaveDepth(blockType: string): boolean {
503507
504508function concatFragments ( fragments : Array < TextFragment > ): TextFragment {
505509 let text = '' ;
506- let characterMeta : CharacterMetaSeq = Seq ( ) ;
510+ let characterMetaArr = [ ] ;
507511 fragments . forEach ( ( textFragment : TextFragment ) => {
508512 text = text + textFragment . text ;
509- characterMeta = characterMeta . concat ( textFragment . characterMeta ) ;
513+ characterMetaArr . push ( ... textFragment . characterMeta . toArray ( ) ) ;
510514 } ) ;
511- return { text, characterMeta} ;
515+ return { text, characterMeta : Seq ( characterMetaArr ) } ;
512516}
513517
514518function addStyleFromTagName(
0 commit comments