@@ -453,19 +453,21 @@ import { idof } from "./builtins";
453453 if ( ! length ) return changetype < Array < String > > ( __allocArray ( 0 , alignof < String > ( ) , idof < Array < String > > ( ) ) ) ; // retains
454454 // split by chars
455455 length = min < isize > ( length , < isize > limit ) ;
456- let result = __allocArray ( length , alignof < String > ( ) , idof < Array < String > > ( ) ) ;
457- let resultStart = changetype < ArrayBufferView > ( result ) . dataStart ;
456+ let result = changetype < Array < String > > ( __allocArray ( length , alignof < String > ( ) , idof < Array < String > > ( ) ) ) ; // retains
457+ // @ts -ignore: cast
458+ let resultStart = result . dataStart as usize ;
458459 for ( let i : isize = 0 ; i < length ; ++ i ) {
459460 let charStr = __alloc ( 2 , idof < String > ( ) ) ;
460461 store < u16 > ( charStr , load < u16 > ( changetype < usize > ( this ) + ( < usize > i << 1 ) ) ) ;
461462 store < usize > ( resultStart + ( < usize > i << alignof < usize > ( ) ) , charStr ) ; // result[i] = charStr
462463 if ( isManaged < String > ( ) ) __retain ( charStr ) ;
463464 }
464- return changetype < Array < String > > ( result ) ; // retains
465+ return result ;
465466 } else if ( ! length ) {
466- let result = __allocArray ( 1 , alignof < String > ( ) , idof < Array < String > > ( ) ) ;
467- store < usize > ( changetype < ArrayBufferView > ( result ) . dataStart , changetype < usize > ( "" ) ) ; // static ""
468- return changetype < Array < String > > ( result ) ; // retains
467+ let result = changetype < Array < String > > ( __allocArray ( 1 , alignof < String > ( ) , idof < Array < String > > ( ) ) ) ; // retains
468+ // @ts -ignore: cast
469+ store < usize > ( result . dataStart as usize , changetype < usize > ( "" ) ) ; // static ""
470+ return result ;
469471 }
470472 var result = changetype < Array < String > > ( __allocArray ( 0 , alignof < String > ( ) , idof < Array < String > > ( ) ) ) ; // retains
471473 var end = 0 , start = 0 , i = 0 ;
@@ -478,12 +480,12 @@ import { idof } from "./builtins";
478480 } else {
479481 result . push ( changetype < String > ( "" ) ) ;
480482 }
481- if ( ++ i == limit ) return changetype < Array < String > > ( result ) ; // retains
483+ if ( ++ i == limit ) return result ;
482484 start = end + sepLen ;
483485 }
484486 if ( ! start ) { // also means: loop above didn't do anything
485487 result . push ( this ) ;
486- return changetype < Array < String > > ( result ) ; // retains
488+ return result ;
487489 }
488490 var len = length - start ;
489491 if ( len > 0 ) {
@@ -493,8 +495,7 @@ import { idof } from "./builtins";
493495 } else {
494496 result . push ( changetype < String > ( "" ) ) ; // static ""
495497 }
496- return changetype < Array < String > > ( result ) ; // retains
497- // releases result
498+ return result ;
498499 }
499500
500501 toLowerCase ( ) : String {
0 commit comments