| <!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> |