<html>
<head>
<base href="https://bugs.webkit.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Got a crash on AreWeFastYet.com on Safari Technology Preview 26"
href="https://bugs.webkit.org/show_bug.cgi?id=170377#c9">Comment # 9</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Got a crash on AreWeFastYet.com on Safari Technology Preview 26"
href="https://bugs.webkit.org/show_bug.cgi?id=170377">bug 170377</a>
from <span class="vcard"><a class="email" href="mailto:sbarati@apple.com" title="Saam Barati <sbarati@apple.com>"> <span class="fn">Saam Barati</span></a>
</span></b>
<pre>The JS function:
function mergeJSON(blobs) {
var lines = { };
var timelist = [];
// We're guaranteed the blobs are in sorted order, which makes this simpler.
for (var i = 0; i < blobs.length; i++) {
var blob = blobs[i];
// Should we handle version changes better?
if (blob.version != AWFYMaster.version) {
window.location.reload();
return;
}
for (var j = 0; j < blob.graph.lines.length; j++) {
var blobline = blob.graph.lines[j];
var line = lines[blobline.modeid];
if (!line) {
var points = [];
var info = [];
// We have to pre-fill the array with slots for each blob
// we may have missed.
for (var k = 0; k < timelist.length; k++) {
points.push(null);
info.push(null);
}
line = { points: points, info: info };
lines[blobline.modeid] = line;
}
var points = line.points;
var info = line.info;
for (var k = 0; k < blobline.data.length; k++) {
var point = blobline.data[k];
var score = point && point[0]
? point[0]
: null;
points.push([timelist.length + k, score]);
info.push(point);
}
}
for (var j = 0; j < blob.graph.timelist.length; j++)
timelist.push(blob.graph.timelist[j]);
// If we missed updating any line, pre-fill it with null points.
for (var modeid in lines) {
var line = lines[modeid];
if (line.points.length == timelist.length)
continue;
for (var j = line.points.length; j < timelist.length; j++) {
line.points.push(null);
line.info.push(null);
}
}
}
var actual = [];
var info = [];
for (var modename in lines) {
if (!(modename in AWFYMaster.modes))
continue;
var line = { data: lines[modename].points,
color: AWFYMaster.modes[modename].color
};
actual.push(line);
info.push({ 'modeid': parseInt(modename),
'data': lines[modename].info });
}
var graph = { lines: actual,
aggregate: false,
timelist: timelist,
info: info
};
return graph;
}</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>