blob: e4f37cb53edf2bfa3c1871d14b26685701f280ac [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() {
var 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) {
if (resultDict.failures !== undefined)
var failures = resultDict.failures.map(tr.mre.Failure.fromDict);
var pairs = resultDict.pairs;
return new MreResult(failures, pairs);
}
};
return {
MreResult: MreResult
};
});
</script>