blob: 3251bb051ffe51ad5eae03690f34f999113aeb82 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright 2015 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<link rel="import" href="/tracing/mre/failure.html">
<script>
'use strict';
tr.exportTo('tr.mre', function() {
class MreResult {
constructor(failures, pairs) {
if (failures === undefined) {
failures = [];
}
if (pairs === undefined) {
pairs = {};
}
this.failures = failures;
this.pairs = pairs;
}
addFailure(failure) {
this.failures.push(failure);
}
addPair(key, value) {
if (key in this.pairs) {
throw new Error('Key ' + key + ' already exists in result.');
}
this.pairs[key] = value;
}
asDict() {
const d = {
pairs: this.pairs
};
if (this.failures) {
d.failures = this.failures.map(function(f) {return f.asDict();});
}
return d;
}
hadFailures() {
return this.failures.length > 0;
}
static fromDict(resultDict) {
const failures = (resultDict.failures !== undefined) ?
resultDict.failures.map(tr.mre.Failure.fromDict) : undefined;
const pairs = resultDict.pairs;
return new MreResult(failures, pairs);
}
}
return {
MreResult,
};
});
</script>