Bug 1429245 - Optimize CommonUtils.bytesAsHex. r?tcsc
MozReview-Commit-ID: 2f3o6OwUwn4
--- a/services/common/utils.js
+++ b/services/common/utils.js
@@ -208,17 +208,25 @@ this.CommonUtils = {
return bytes.map(byte => String.fromCharCode(byte)).join("");
},
stringToByteArray: function stringToByteArray(bytesString) {
return Array.prototype.slice.call(bytesString).map(c => c.charCodeAt(0));
},
bytesAsHex: function bytesAsHex(bytes) {
- return Array.prototype.slice.call(bytes).map(c => ("0" + c.charCodeAt(0).toString(16)).slice(-2)).join("");
+ let s = "";
+ for (let i = 0, len = bytes.length; i < len; i++) {
+ let c = (bytes[i].charCodeAt(0) & 0xff).toString(16);
+ if (c.length == 1) {
+ c = "0" + c;
+ }
+ s += c;
+ }
+ return s;
},
stringAsHex: function stringAsHex(str) {
return CommonUtils.bytesAsHex(CommonUtils.encodeUTF8(str));
},
stringToBytes: function stringToBytes(str) {
return CommonUtils.hexToBytes(CommonUtils.stringAsHex(str));