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