@@ -52,8 +52,81 @@ Object.defineProperty(window, 'ResizeObserver', {
5252} )
5353
5454Object . defineProperty ( window , 'TextEncoder' , {
55- value : class TextObserver {
56- constructor ( stringUrl ) { }
57- encode ( src ) { return src }
55+ value : class TextEncoder {
56+ encode ( string ) {
57+ var octets = [ ] ;
58+ var length = string . length ;
59+ var i = 0 ;
60+ while ( i < length ) {
61+ var codePoint = string . codePointAt ( i ) ;
62+ var c = 0 ;
63+ var bits = 0 ;
64+ if ( codePoint <= 0x0000007F ) {
65+ c = 0 ;
66+ bits = 0x00 ;
67+ } else if ( codePoint <= 0x000007FF ) {
68+ c = 6 ;
69+ bits = 0xC0 ;
70+ } else if ( codePoint <= 0x0000FFFF ) {
71+ c = 12 ;
72+ bits = 0xE0 ;
73+ } else if ( codePoint <= 0x001FFFFF ) {
74+ c = 18 ;
75+ bits = 0xF0 ;
76+ }
77+ octets . push ( bits | ( codePoint >> c ) ) ;
78+ c -= 6 ;
79+ while ( c >= 0 ) {
80+ octets . push ( 0x80 | ( ( codePoint >> c ) & 0x3F ) ) ;
81+ c -= 6 ;
82+ }
83+ i += codePoint >= 0x10000 ? 2 : 1 ;
84+ }
85+ return Uint8Array . from ( octets ) ;
86+ }
5887 }
88+ } )
89+ Object . defineProperty ( window , 'TextDecoder' , {
90+ value : class TextDecoder {
91+ decode ( octets ) {
92+ var string = "" ;
93+ var i = 0 ;
94+ while ( i < octets . length ) {
95+ var octet = octets [ i ] ;
96+ var bytesNeeded = 0 ;
97+ var codePoint = 0 ;
98+ if ( octet <= 0x7F ) {
99+ bytesNeeded = 0 ;
100+ codePoint = octet & 0xFF ;
101+ } else if ( octet <= 0xDF ) {
102+ bytesNeeded = 1 ;
103+ codePoint = octet & 0x1F ;
104+ } else if ( octet <= 0xEF ) {
105+ bytesNeeded = 2 ;
106+ codePoint = octet & 0x0F ;
107+ } else if ( octet <= 0xF4 ) {
108+ bytesNeeded = 3 ;
109+ codePoint = octet & 0x07 ;
110+ }
111+ if ( octets . length - i - bytesNeeded > 0 ) {
112+ var k = 0 ;
113+ while ( k < bytesNeeded ) {
114+ octet = octets [ i + k + 1 ] ;
115+ codePoint = ( codePoint << 6 ) | ( octet & 0x3F ) ;
116+ k += 1 ;
117+ }
118+ } else {
119+ codePoint = 0xFFFD ;
120+ bytesNeeded = octets . length - i ;
121+ }
122+ string += String . fromCodePoint ( codePoint ) ;
123+ i += bytesNeeded + 1 ;
124+ }
125+ return string
126+ }
127+ }
128+ } )
129+
130+ Object . defineProperty ( window , 'Buffer' , {
131+ value : undefined
59132} )
0 commit comments