@@ -52,8 +52,81 @@ Object.defineProperty(window, 'ResizeObserver', {
52
52
} )
53
53
54
54
Object . 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
+ }
58
87
}
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
59
132
} )
0 commit comments