Bug 1429245 - Optimize CommonUtils.bytesAsHex. r?tcsc draft
authorEdouard Oger <eoger@fastmail.com>
Wed, 10 Jan 2018 16:11:22 -0500
changeset 719122 9724e44d429bfd9120649b0df0fc3abf267c8ba5
parent 717738 6f5fac320fcb6625603fa8a744ffa8523f8b3d71
child 745710 238ab51e56ebd8bd02af471b934be65306b5e962
push id95164
push userbmo:eoger@fastmail.com
push dateThu, 11 Jan 2018 15:27:09 +0000
reviewerstcsc
bugs1429245
milestone59.0a1
Bug 1429245 - Optimize CommonUtils.bytesAsHex. r?tcsc MozReview-Commit-ID: 2f3o6OwUwn4
services/common/utils.js
--- 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));