in resources/perf.webkit.org/public/v3/models/analysis-task.js [284:325]
static _constructAnalysisTasksFromRawData(data)
{
Instrumentation.startMeasuringTime('AnalysisTask', 'construction');
// FIXME: The backend shouldn't create a separate bug row per task for the same bug number.
var taskToBug = {};
for (var rawData of data.bugs) {
rawData.bugTracker = BugTracker.findById(rawData.bugTracker);
if (!rawData.bugTracker)
continue;
var bug = Bug.ensureSingleton(rawData);
if (!taskToBug[rawData.task])
taskToBug[rawData.task] = [];
taskToBug[rawData.task].push(bug);
}
for (var rawData of data.commits) {
rawData.repository = Repository.findById(rawData.repository);
if (!rawData.repository)
continue;
CommitLog.ensureSingleton(rawData.id, rawData);
}
function resolveCommits(commits) {
return commits.map(function (id) { return CommitLog.findById(id); }).filter(function (commit) { return !!commit; });
}
var results = [];
for (var rawData of data.analysisTasks) {
rawData.platform = Platform.findById(rawData.platform);
rawData.metric = Metric.findById(rawData.metric);
rawData.bugs = taskToBug[rawData.id];
rawData.causes = resolveCommits(rawData.causes);
rawData.fixes = resolveCommits(rawData.fixes);
results.push(AnalysisTask.ensureSingleton(rawData.id, rawData));
}
Instrumentation.endMeasuringTime('AnalysisTask', 'construction');
return results;
}