Skip to content

Commit 6d691b0

Browse files
perf(apps_script): tighten CodeFull.gs hot paths
Squashed from #1254 after local verification on current main.
1 parent 8c59627 commit 6d691b0

1 file changed

Lines changed: 9 additions & 17 deletions

File tree

assets/apps_script/CodeFull.gs

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -395,15 +395,8 @@ function _doBatch(items) {
395395
}
396396
var fallbackReq = fetchArgs[j];
397397
var fallbackUrl = fallbackReq.url;
398-
var fallbackOpts = {};
399-
for (var key in fallbackReq) {
400-
if (
401-
Object.prototype.hasOwnProperty.call(fallbackReq, key) &&
402-
key !== "url"
403-
) {
404-
fallbackOpts[key] = fallbackReq[key];
405-
}
406-
}
398+
var fallbackOpts = Object.assign({}, fallbackReq);
399+
delete fallbackOpts.url;
407400
responses[j] = UrlFetchApp.fetch(fallbackUrl, fallbackOpts);
408401
} catch (singleErr) {
409402
errorMap[fetchIndex[j]] = String(singleErr);
@@ -608,12 +601,12 @@ function _edgeDnsResolve(prep, cachedReplyB64, cache, localMap) {
608601
function _sha256Hex(s) {
609602
var d = Utilities.computeDigest(
610603
Utilities.DigestAlgorithm.SHA_256, s, Utilities.Charset.UTF_8);
611-
var hex = "";
604+
var parts = [];
612605
for (var i = 0; i < d.length; i++) {
613606
var b = d[i] & 0xFF;
614-
hex += (b < 16 ? "0" : "") + b.toString(16);
607+
parts.push((b < 16 ? "0" : "") + b.toString(16));
615608
}
616-
return hex;
609+
return parts.join("");
617610
}
618611

619612
// Single DoH GET against `url`. Returns the reply as a byte array, or null
@@ -656,13 +649,13 @@ function _dnsParseQuestion(bytes) {
656649
if (len > 63) return null;
657650
off++;
658651
if (off + len > bytes.length) return null;
659-
var label = "";
652+
var labelChars = [];
660653
for (var i = 0; i < len; i++) {
661654
var c = bytes[off + i] & 0xFF;
662655
if (c >= 0x41 && c <= 0x5A) c += 0x20; // ASCII lowercase
663-
label += String.fromCharCode(c);
656+
labelChars.push(String.fromCharCode(c));
664657
}
665-
labels.push(label);
658+
labels.push(labelChars.join(""));
666659
off += len;
667660
nameLen += len + 1;
668661
if (nameLen > 255) return null;
@@ -743,8 +736,7 @@ function _dnsSkipName(bytes, off) {
743736
// cheap (~100 bytes for a typical DNS reply) compared to the surrounding
744737
// base64 encode/decode work.
745738
function _dnsRewriteTxid(bytes, txid) {
746-
var out = [];
747-
for (var i = 0; i < bytes.length; i++) out.push(bytes[i]);
739+
var out = Array.prototype.slice.call(bytes);
748740
var hi = (txid >> 8) & 0xFF;
749741
var lo = txid & 0xFF;
750742
out[0] = hi > 127 ? hi - 256 : hi;

0 commit comments

Comments
 (0)