@@ 3513-3523 (lines=11) @@ | ||
3510 | var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; |
|
3511 | ||
3512 | // count binary size |
|
3513 | for (m_pos = 0; m_pos < str_len; m_pos++) { |
|
3514 | c = str.charCodeAt(m_pos); |
|
3515 | if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { |
|
3516 | c2 = str.charCodeAt(m_pos+1); |
|
3517 | if ((c2 & 0xfc00) === 0xdc00) { |
|
3518 | c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); |
|
3519 | m_pos++; |
|
3520 | } |
|
3521 | } |
|
3522 | buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; |
|
3523 | } |
|
3524 | ||
3525 | // allocate buffer |
|
3526 | buf = new utils.Buf8(buf_len); |
|
@@ 1636-1646 (lines=11) @@ | ||
1633 | var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; |
|
1634 | ||
1635 | // count binary size |
|
1636 | for (m_pos = 0; m_pos < str_len; m_pos++) { |
|
1637 | c = str.charCodeAt(m_pos); |
|
1638 | if (((c & 0xfc00) === 0xd800) && (m_pos+1 < str_len)) { |
|
1639 | c2 = str.charCodeAt(m_pos+1); |
|
1640 | if ((c2 & 0xfc00) === 0xdc00) { |
|
1641 | c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); |
|
1642 | m_pos++; |
|
1643 | } |
|
1644 | } |
|
1645 | buf_len += (c < 0x80) ? 1 : ((c < 0x800) ? 2 : ((c < 0x10000) ? 3 : 4)); |
|
1646 | } |
|
1647 | ||
1648 | // allocate buffer |
|
1649 | if (support.uint8array) { |