File tree Expand file tree Collapse file tree 1 file changed +19
-6
lines changed Expand file tree Collapse file tree 1 file changed +19
-6
lines changed Original file line number Diff line number Diff line change @@ -247,14 +247,27 @@ function serialize(mixed_value) {
247
247
l = str . length ,
248
248
code = '' ;
249
249
for ( i = 0 ; i < l ; i ++ ) {
250
- code = str . charCodeAt ( i ) ;
251
- if ( code < 0x0080 ) {
252
- size += 1 ;
253
- } else if ( code < 0x0800 ) {
254
- size += 2 ;
250
+ code = str . charCodeAt ( i ) ;
251
+ if ( code < 0x0080 ) { //[0x0000, 0x007F]
252
+ size += 1 ;
253
+ } else if ( code < 0x0800 ) { //[0x0080, 0x07FF]
254
+ size += 2 ;
255
+ } else if ( code < 0xD800 ) { //[0x0800, 0xD7FF]
256
+ size += 3 ;
257
+ } else if ( code < 0xDC00 ) { //[0xD800, 0xDBFF]
258
+ var lo = str . charCodeAt ( ++ i ) ;
259
+ if ( i < l && lo >= 0xDC00 && lo <= 0xDFFF ) { //followed by [0xDC00, 0xDFFF]
260
+ size += 4 ;
255
261
} else {
256
- size += 3 ;
262
+ // UCS-2 String malformed
263
+ size = 0
257
264
}
265
+ } else if ( code < 0xE000 ) { //[0xDC00, 0xDFFF]
266
+ // UCS-2 String malformed
267
+ size = 0
268
+ } else { //[0xE000, 0xFFFF]
269
+ size += 3 ;
270
+ }
258
271
}
259
272
return size ;
260
273
} ,
You can’t perform that action at this time.
0 commit comments