@@ -42,7 +42,7 @@ export class String {
42
42
) ;
43
43
} else {
44
44
code -= 0x10000 ;
45
- let hi : u32 = ( code >>> 10 ) + 0xD800 ;
45
+ let hi : u32 = ( code >>> 10 ) + 0xD800 ;
46
46
let lo : u32 = ( code & 0x3FF ) + 0xDC00 ;
47
47
store < u32 > (
48
48
changetype < usize > ( out ) ,
@@ -110,9 +110,9 @@ export class String {
110
110
assert ( this !== null ) ;
111
111
if ( other === null ) other = changetype < String > ( "null" ) ;
112
112
113
- var thisLen : isize = this . length ;
113
+ var thisLen : isize = this . length ;
114
114
var otherLen : isize = other . length ;
115
- var outLen : usize = thisLen + otherLen ;
115
+ var outLen : usize = thisLen + otherLen ;
116
116
if ( outLen == 0 ) return changetype < String > ( "" ) ;
117
117
var out = allocateUnsafe ( outLen ) ;
118
118
copyUnsafe ( out , 0 , this , 0 , thisLen ) ;
@@ -141,6 +141,11 @@ export class String {
141
141
return ! compareUnsafe ( left , 0 , right , 0 , leftLength ) ;
142
142
}
143
143
144
+ @operator . prefix ( "!" )
145
+ private static __not ( str : String ) : bool {
146
+ return str === null || ! str . length ;
147
+ }
148
+
144
149
@operator ( "!=" )
145
150
private static __ne ( left : String , right : String ) : bool {
146
151
return ! this . __eq ( left , right ) ;
@@ -345,8 +350,8 @@ export class String {
345
350
var out = allocateUnsafe ( targetLength ) ;
346
351
if ( len > padLen ) {
347
352
let count = ( len - 1 ) / padLen ;
348
- let base = count * padLen ;
349
- let rest = len - base ;
353
+ let base = count * padLen ;
354
+ let rest = len - base ;
350
355
repeatUnsafe ( out , 0 , padString , count ) ;
351
356
if ( rest ) copyUnsafe ( out , base , padString , 0 , rest ) ;
352
357
} else {
@@ -394,9 +399,9 @@ export class String {
394
399
}
395
400
396
401
slice ( beginIndex : i32 , endIndex : i32 = i32 . MAX_VALUE ) : String {
397
- var len = this . length ;
402
+ var len = this . length ;
398
403
var begin = beginIndex < 0 ? max ( beginIndex + len , 0 ) : min ( beginIndex , len ) ;
399
- var end = endIndex < 0 ? max ( endIndex + len , 0 ) : min ( endIndex , len ) ;
404
+ var end = endIndex < 0 ? max ( endIndex + len , 0 ) : min ( endIndex , len ) ;
400
405
len = end - begin ;
401
406
if ( len <= 0 ) return changetype < String > ( "" ) ;
402
407
var out = allocateUnsafe ( len ) ;
@@ -512,7 +517,7 @@ export class String {
512
517
cp = (
513
518
( cp & 7 ) << 18 |
514
519
( load < u8 > ( ptr + ptrPos ++ ) & 63 ) << 12 |
515
- ( load < u8 > ( ptr + ptrPos ++ ) & 63 ) << 6 |
520
+ ( load < u8 > ( ptr + ptrPos ++ ) & 63 ) << 6 |
516
521
load < u8 > ( ptr + ptrPos ++ ) & 63
517
522
) - 0x10000 ;
518
523
store < u16 > ( buf + bufPos , 0xD800 + ( cp >> 10 ) ) ;
@@ -523,7 +528,7 @@ export class String {
523
528
assert ( ptrPos + 2 <= len ) ;
524
529
store < u16 > ( buf + bufPos ,
525
530
( cp & 15 ) << 12 |
526
- ( load < u8 > ( ptr + ptrPos ++ ) & 63 ) << 6 |
531
+ ( load < u8 > ( ptr + ptrPos ++ ) & 63 ) << 6 |
527
532
load < u8 > ( ptr + ptrPos ++ ) & 63
528
533
) ;
529
534
bufPos += 2 ;
@@ -548,8 +553,8 @@ export class String {
548
553
++ off ; ++ pos ;
549
554
} else if ( c1 < 2048 ) {
550
555
let ptr = buf + off ;
551
- store < u8 > ( ptr , c1 >> 6 | 192 ) ;
552
- store < u8 > ( ptr , c1 & 63 | 128 , 1 ) ;
556
+ store < u8 > ( ptr , c1 >> 6 | 192 ) ;
557
+ store < u8 > ( ptr , c1 & 63 | 128 , 1 ) ;
553
558
off += 2 ; ++ pos ;
554
559
} else {
555
560
let ptr = buf + off ;
@@ -559,15 +564,15 @@ export class String {
559
564
c1 = 0x10000 + ( ( c1 & 0x03FF ) << 10 ) + ( c2 & 0x03FF ) ;
560
565
store < u8 > ( ptr , c1 >> 18 | 240 ) ;
561
566
store < u8 > ( ptr , c1 >> 12 & 63 | 128 , 1 ) ;
562
- store < u8 > ( ptr , c1 >> 6 & 63 | 128 , 2 ) ;
567
+ store < u8 > ( ptr , c1 >> 6 & 63 | 128 , 2 ) ;
563
568
store < u8 > ( ptr , c1 & 63 | 128 , 3 ) ;
564
569
off += 4 ; pos += 2 ;
565
570
continue ;
566
571
}
567
572
}
568
- store < u8 > ( ptr , c1 >> 12 | 224 ) ;
569
- store < u8 > ( ptr , c1 >> 6 & 63 | 128 , 1 ) ;
570
- store < u8 > ( ptr , c1 & 63 | 128 , 2 ) ;
573
+ store < u8 > ( ptr , c1 >> 12 | 224 ) ;
574
+ store < u8 > ( ptr , c1 >> 6 & 63 | 128 , 1 ) ;
575
+ store < u8 > ( ptr , c1 & 63 | 128 , 2 ) ;
571
576
off += 3 ; ++ pos ;
572
577
}
573
578
}
0 commit comments