@@ -207,15 +207,13 @@ let [bmpLookup, bmpCursor] = (() => {
207207 let bmpLookup = new Uint8Array ( BMP_MAX + 1 ) ;
208208 let bmpCursor = 0 ;
209209 let cp = 0 ;
210- while ( true ) {
211- let range = grapheme_ranges [ bmpCursor ++ ] ;
212- for ( cp = range [ 0 ] ; cp <= range [ 1 ] ; ) {
213- bmpLookup [ cp ++ ] = range [ 2 ] ;
214- if ( cp > BMP_MAX ) {
215- return [ bmpLookup , bmpCursor ] ;
216- }
210+ while ( cp <= BMP_MAX ) {
211+ let [ from , to , cat ] = grapheme_ranges [ bmpCursor ++ ] ;
212+ for ( cp = from ; cp <= to ; cp ++ ) {
213+ bmpLookup [ cp ] = cat ;
217214 }
218215 }
216+ return [ bmpLookup , bmpCursor ] ;
219217} ) ( ) ;
220218
221219/**
@@ -306,46 +304,43 @@ function isBoundary(catBefore, catAfter, risCount, emoji, incb) {
306304
307305 // GB6 - L x (L | V | LV | LVT)
308306 if ( catBefore === 5 ) {
309- if ( catAfter === 5 || catAfter === 7 || catAfter === 8 || catAfter === 13 ) {
310- return false ;
311- }
307+ return ! ( catAfter === 5 || catAfter === 7 || catAfter === 8 || catAfter === 13 ) ;
308+ }
312309
313- } else {
314- // GB7 - (LV | V) x (V | T)
315- if (
316- ( catBefore === 7 || catBefore === 13 ) &&
317- ( catAfter === 13 || catAfter === 12 )
318- ) {
319- return false ;
320- }
310+ // GB7 - (LV | V) x (V | T)
311+ if (
312+ ( catBefore === 7 || catBefore === 13 ) &&
313+ ( catAfter === 13 || catAfter === 12 )
314+ ) {
315+ return false ;
316+ }
321317
322- // GB8 - (LVT | T) x T
323- if (
324- ( catBefore === 8 || catBefore === 12 ) &&
325- catAfter === 12
326- ) {
327- return false ;
328- }
318+ // GB8 - (LVT | T) x T
319+ if (
320+ ( catBefore === 8 || catBefore === 12 ) &&
321+ catAfter === 12
322+ ) {
323+ return false ;
324+ }
329325
330- // GB9b
331- if ( catBefore === 9 ) {
332- return false ;
333- }
326+ // GB9b
327+ if ( catBefore === 9 ) {
328+ return false ;
329+ }
334330
335- // GB9c
336- if ( catAfter === 0 && incb ) {
337- return false ;
338- }
331+ // GB9c
332+ if ( catAfter === 0 && incb ) {
333+ return false ;
334+ }
339335
340- // GB11
341- if ( catBefore === 14 && catAfter === 4 ) {
342- return ! emoji ;
343- }
336+ // GB11
337+ if ( catBefore === 14 && catAfter === 4 ) {
338+ return ! emoji ;
339+ }
344340
345- // GB12, GB13
346- if ( catBefore === 10 && catAfter === 10 ) {
347- return risCount % 2 === 0 ;
348- }
341+ // GB12, GB13
342+ if ( catBefore === 10 && catAfter === 10 ) {
343+ return risCount % 2 === 0 ;
349344 }
350345
351346 // GB999
0 commit comments