Skip to content

Commit f3a9589

Browse files
committed
Refactored argument order of utf8 for plausibility
1 parent 14c207e commit f3a9589

File tree

9 files changed

+216
-214
lines changed

9 files changed

+216
-214
lines changed

dist/protobuf.js

Lines changed: 97 additions & 96 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.min.js.gz

-6 Bytes
Binary file not shown.

dist/protobuf.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/util/base64/index.js

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@ var base64 = exports;
99

1010
/**
1111
* Calculates the base64 byte length of a string.
12-
* @param {string} str Base64 encoded string
12+
* @param {string} string Base64 encoded string
1313
* @returns {number} Byte length
1414
*/
15-
base64.length = function length(str) {
16-
var p = str.length;
15+
base64.length = function length(string) {
16+
var p = string.length;
1717
if (!p)
1818
return 0;
1919
var n = 0;
20-
while (--p % 4 > 1 && str.charAt(p) === '=')
20+
while (--p % 4 > 1 && string.charAt(p) === '=')
2121
++n;
22-
return Math.ceil(str.length * 3) / 4 - n;
22+
return Math.ceil(string.length * 3) / 4 - n;
2323
};
2424

2525
// Base64 encoding table
@@ -38,37 +38,37 @@ var b64 = [
3838
* @returns {string} Base64 encoded string
3939
*/
4040
base64.encode = function encode(buffer, start, end) {
41-
var str = new Array(Math.ceil((end - start) / 3) * 4);
41+
var string = new Array(Math.ceil((end - start) / 3) * 4);
4242
var i = 0, // output index
4343
j = 0, // goto index
4444
t; // temporary
4545
while (start < end) {
4646
var b = buffer[start++];
4747
switch (j) {
4848
case 0:
49-
str[i++] = b64[b >> 2];
49+
string[i++] = b64[b >> 2];
5050
t = (b & 3) << 4;
5151
j = 1;
5252
break;
5353
case 1:
54-
str[i++] = b64[t | b >> 4];
54+
string[i++] = b64[t | b >> 4];
5555
t = (b & 15) << 2;
5656
j = 2;
5757
break;
5858
case 2:
59-
str[i++] = b64[t | b >> 6];
60-
str[i++] = b64[b & 63];
59+
string[i++] = b64[t | b >> 6];
60+
string[i++] = b64[b & 63];
6161
j = 0;
6262
break;
6363
}
6464
}
6565
if (j) {
66-
str[i++] = b64[t];
67-
str[i ] = 61;
66+
string[i++] = b64[t];
67+
string[i ] = 61;
6868
if (j === 1)
69-
str[i + 1] = 61;
69+
string[i + 1] = 61;
7070
}
71-
return String.fromCharCode.apply(String, str);
71+
return String.fromCharCode.apply(String, string);
7272
};
7373

7474
// Base64 decoding table
@@ -77,18 +77,18 @@ var invalidEncoding = "invalid encoding";
7777

7878
/**
7979
* Decodes a base64 encoded string to a buffer.
80-
* @param {string} src Source string
80+
* @param {string} string Source string
8181
* @param {Uint8Array} buffer Destination buffer
8282
* @param {number} offset Destination offset
8383
* @returns {number} Number of bytes written
8484
* @throws {Error} If encoding is invalid
8585
*/
86-
base64.decode = function decode(src, buffer, offset) {
86+
base64.decode = function decode(string, buffer, offset) {
8787
var start = offset;
8888
var j = 0, // goto index
8989
t; // temporary
90-
for (var i = 0; i < src.length;) {
91-
var c = src.charCodeAt(i++);
90+
for (var i = 0; i < string.length;) {
91+
var c = string.charCodeAt(i++);
9292
if (c === 61 && j > 1)
9393
break;
9494
if ((c = s64[c]) === undefined)

src/util/utf8/index.js

Lines changed: 55 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,20 @@ var utf8 = exports;
99

1010
/**
1111
* Calculates the UTF8 byte length of a string.
12-
* @param {string} str String
12+
* @param {string} string String
1313
* @returns {number} Byte length
1414
*/
15-
utf8.length = function length(str) {
16-
var strlen = str.length >>> 0;
15+
utf8.length = function length(string) {
16+
var strlen = string.length >>> 0;
1717
var len = 0,
1818
c = 0;
1919
for (var i = 0; i < strlen; ++i) {
20-
c = str.charCodeAt(i);
20+
c = string.charCodeAt(i);
2121
if (c < 128)
2222
len += 1;
2323
else if (c < 2048)
2424
len += 2;
25-
else if ((c & 0xFC00) === 0xD800 && (str.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {
25+
else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {
2626
++i;
2727
len += 4;
2828
} else
@@ -31,64 +31,67 @@ utf8.length = function length(str) {
3131
return len;
3232
};
3333

34-
/**
35-
* Writes a string as UTF8 bytes.
36-
* @param {Uint8Array} buf Destination buffer
37-
* @param {number} pos Destination offset
38-
* @param {string} str Source string
39-
* @returns {number} Bytes written
40-
*/
41-
utf8.write = function(buf, pos, str) {
42-
var start = pos;
43-
for (var i = 0; i < str.length; ++i) {
44-
var c1 = str.charCodeAt(i), c2;
45-
if (c1 < 128) {
46-
buf[pos++] = c1;
47-
} else if (c1 < 2048) {
48-
buf[pos++] = c1 >> 6 | 192;
49-
buf[pos++] = c1 & 63 | 128;
50-
} else if ((c1 & 0xFC00) === 0xD800 && ((c2 = str.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {
51-
c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);
52-
++i;
53-
buf[pos++] = c1 >> 18 | 240;
54-
buf[pos++] = c1 >> 12 & 63 | 128;
55-
buf[pos++] = c1 >> 6 & 63 | 128;
56-
buf[pos++] = c1 & 63 | 128;
57-
} else {
58-
buf[pos++] = c1 >> 12 | 224;
59-
buf[pos++] = c1 >> 6 & 63 | 128;
60-
buf[pos++] = c1 & 63 | 128;
61-
}
62-
}
63-
return pos - start;
64-
};
65-
6634
/**
6735
* Reads UTF8 bytes as a string.
68-
* @param {Uint8Array} buf Source buffer
69-
* @param {number} pos Source offset
70-
* @param {number} len Source length
36+
* @param {Uint8Array} buffer Source buffer
37+
* @param {number} start Source start
38+
* @param {number} end Source end
7139
* @returns {string} String read
7240
*/
73-
utf8.read = function(buf, pos, len) {
74-
if (len) {
75-
var out = [],
41+
utf8.read = function(buffer, start, end) {
42+
var len = end - start;
43+
if (len > 0) {
44+
var string = [],
7645
i = 0, // char offset
7746
t; // temporary
78-
while (pos < len) {
79-
t = buf[pos++];
47+
while (start < end) {
48+
t = buffer[start++];
8049
if (t < 128)
81-
out[i++] = t;
50+
string[i++] = t;
8251
else if (t > 191 && t < 224)
83-
out[i++] = (t & 31) << 6 | buf[pos++] & 63;
52+
string[i++] = (t & 31) << 6 | buffer[start++] & 63;
8453
else if (t > 239 && t < 365) {
85-
t = ((t & 7) << 18 | (buf[pos++] & 63) << 12 | (buf[pos++] & 63) << 6 | buf[pos++] & 63) - 0x10000;
86-
out[i++] = 0xD800 + (t >> 10);
87-
out[i++] = 0xDC00 + (t & 1023);
54+
t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;
55+
string[i++] = 0xD800 + (t >> 10);
56+
string[i++] = 0xDC00 + (t & 1023);
8857
} else
89-
out[i++] = (t & 15) << 12 | (buf[pos++] & 63) << 6 | buf[pos++] & 63;
58+
string[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;
9059
}
91-
return String.fromCharCode.apply(String, out.slice(0, i));
60+
return String.fromCharCode.apply(String, string.slice(0, i));
9261
}
9362
return "";
9463
};
64+
65+
/**
66+
* Writes a string as UTF8 bytes.
67+
* @param {string} string Source string
68+
* @param {Uint8Array} buffer Destination buffer
69+
* @param {number} offset Destination offset
70+
* @returns {number} Bytes written
71+
*/
72+
utf8.write = function(string, buffer, offset) {
73+
var start = offset,
74+
c1, // character 1
75+
c2; // character 2
76+
for (var i = 0; i < string.length; ++i) {
77+
c1 = string.charCodeAt(i);
78+
if (c1 < 128) {
79+
buffer[offset++] = c1;
80+
} else if (c1 < 2048) {
81+
buffer[offset++] = c1 >> 6 | 192;
82+
buffer[offset++] = c1 & 63 | 128;
83+
} else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {
84+
c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);
85+
++i;
86+
buffer[offset++] = c1 >> 18 | 240;
87+
buffer[offset++] = c1 >> 12 & 63 | 128;
88+
buffer[offset++] = c1 >> 6 & 63 | 128;
89+
buffer[offset++] = c1 & 63 | 128;
90+
} else {
91+
buffer[offset++] = c1 >> 12 | 224;
92+
buffer[offset++] = c1 >> 6 & 63 | 128;
93+
buffer[offset++] = c1 & 63 | 128;
94+
}
95+
}
96+
return offset - start;
97+
};

0 commit comments

Comments
 (0)