3f67f411d8
Bug: skia: Change-Id: I2ffd54cf81c974f3a80103e1726a06067cc90d82 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/200044 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Kevin Lubick <kjlubick@google.com>
36 lines
915 B
JavaScript
36 lines
915 B
JavaScript
|
|
// General purpose utility functions go in this file.
|
|
|
|
|
|
function allAreFinite(args) {
|
|
for (var i = 0; i < args.length; i++) {
|
|
if (args[i] !== undefined && !Number.isFinite(args[i])) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function toBase64String(bytes) {
|
|
if (isNode) {
|
|
return Buffer.from(bytes).toString('base64');
|
|
} else {
|
|
// From https://stackoverflow.com/a/25644409
|
|
// because the naive solution of
|
|
// btoa(String.fromCharCode.apply(null, bytes));
|
|
// would occasionally throw "Maximum call stack size exceeded"
|
|
var CHUNK_SIZE = 0x8000; //arbitrary number
|
|
var index = 0;
|
|
var length = bytes.length;
|
|
var result = '';
|
|
var slice;
|
|
while (index < length) {
|
|
slice = bytes.slice(index, Math.min(index + CHUNK_SIZE, length));
|
|
result += String.fromCharCode.apply(null, slice);
|
|
index += CHUNK_SIZE;
|
|
}
|
|
return btoa(result);
|
|
}
|
|
}
|
|
|