OLD | NEW |
1 <html> | 1 <html> |
2 <!-- | 2 <!-- |
3 Copyright 2016 the V8 project authors. All rights reserved. Use of this source | 3 Copyright 2016 the V8 project authors. All rights reserved. Use of this source |
4 code is governed by a BSD-style license that can be found in the LICENSE file. | 4 code is governed by a BSD-style license that can be found in the LICENSE file. |
5 --> | 5 --> |
6 | 6 |
7 <head> | 7 <head> |
8 <meta charset="UTF-8"> | 8 <meta charset="UTF-8"> |
9 <style> | 9 <style> |
10 body { | 10 body { |
(...skipping 1085 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1096 var query = window.location.search.substr(1); | 1096 var query = window.location.search.substr(1); |
1097 var result = {}; | 1097 var result = {}; |
1098 query.split("&").forEach((part) => { | 1098 query.split("&").forEach((part) => { |
1099 var item = part.split("="); | 1099 var item = part.split("="); |
1100 var key = decodeURIComponent(item[0]) | 1100 var key = decodeURIComponent(item[0]) |
1101 result[key] = decodeURIComponent(item[1]); | 1101 result[key] = decodeURIComponent(item[1]); |
1102 }); | 1102 }); |
1103 return result; | 1103 return result; |
1104 } | 1104 } |
1105 | 1105 |
| 1106 function fixSinglePageJSON(json) { |
| 1107 // Try to detect the single-version case, where we're missing the toplevel |
| 1108 // version object. The incoming JSON is of the form: |
| 1109 // {"Page 1": [... data points ... ], "Page 2": [...], ...} |
| 1110 // Instead of the default multi-page JSON: |
| 1111 // {"Version 1": { "Page 1": ..., ...}, "Version 2": {...}, ...} |
| 1112 // In this case insert a single "Default" version as top-level entry. |
| 1113 var firstProperty = (object) => { |
| 1114 for (var key in object) return key; |
| 1115 }; |
| 1116 var maybePage = json[firstProperty(json)]; |
| 1117 if (!Array.isArray(maybePage)) return json; |
| 1118 return {"Default": json} |
| 1119 } |
| 1120 |
1106 function handleLoadJSON(json) { | 1121 function handleLoadJSON(json) { |
| 1122 json = fixSinglePageJSON(json); |
1107 var state = getStateFromParams(); | 1123 var state = getStateFromParams(); |
1108 pages = new Pages(); | 1124 pages = new Pages(); |
1109 versions = Versions.fromJSON(json); | 1125 versions = Versions.fromJSON(json); |
1110 initialize() | 1126 initialize() |
1111 showPage(versions.versions[0].pages[0]); | 1127 showPage(versions.versions[0].pages[0]); |
1112 if (!popHistoryState(state)) { | 1128 if (!popHistoryState(state)) { |
1113 selectEntry(selectedPage.total); | 1129 selectEntry(selectedPage.total); |
1114 } | 1130 } |
1115 } | 1131 } |
1116 | 1132 |
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1625 this.enabled = true; | 1641 this.enabled = true; |
1626 } | 1642 } |
1627 entry() { return new GroupedEntry(this) }; | 1643 entry() { return new GroupedEntry(this) }; |
1628 } | 1644 } |
1629 Group.groups = new Map(); | 1645 Group.groups = new Map(); |
1630 Group.add = function(name, group) { | 1646 Group.add = function(name, group) { |
1631 this.groups.set(name, group); | 1647 this.groups.set(name, group); |
1632 return group; | 1648 return group; |
1633 } | 1649 } |
1634 Group.add('total', new Group('Total', /.*Total.*/, '#BBB')); | 1650 Group.add('total', new Group('Total', /.*Total.*/, '#BBB')); |
1635 Group.add('ic', new Group('IC', /.*IC.*/, "#3366CC")); | 1651 Group.add('ic', new Group('IC', /.*IC_.*/, "#3366CC")); |
1636 Group.add('optimize', new Group('Optimize', | 1652 Group.add('optimize', new Group('Optimize', |
1637 /StackGuard|.*Optimize.*|.*Deoptimize.*|Recompile.*/, "#DC3912")); | 1653 /StackGuard|.*Optimize.*|.*Deoptimize.*|Recompile.*/, "#DC3912")); |
1638 Group.add('compile', new Group('Compile', /.*Compile.*/, "#FFAA00")); | 1654 Group.add('compile', new Group('Compile', |
| 1655 /(^Compile.*)|(.*_Compile.*)/, "#FFAA00")); |
1639 Group.add('parse-background', | 1656 Group.add('parse-background', |
1640 new Group('Parse-Background', /.*ParseBackground.*/, "#af744d")); | 1657 new Group('Parse-Background', /.*ParseBackground.*/, "#af744d")); |
1641 Group.add('parse', new Group('Parse', /.*Parse.*/, "#FF6600")); | 1658 Group.add('parse', new Group('Parse', /.*Parse.*/, "#FF6600")); |
1642 Group.add('callback', new Group('Callback', /.*Callback.*/, "#109618")); | 1659 Group.add('callback', new Group('Callback', /.*Callback.*/, "#109618")); |
1643 Group.add('api', new Group('API', /.*API.*/, "#990099")); | 1660 Group.add('api', new Group('API', /.*API.*/, "#990099")); |
1644 Group.add('gc', new Group('GC', /GC|AllocateInTargetSpace/, "#0099C6")); | 1661 Group.add('gc', new Group('GC', /GC|AllocateInTargetSpace/, "#0099C6")); |
1645 Group.add('javascript', new Group('JavaScript', /JS_Execution/, "#DD4477")); | 1662 Group.add('javascript', new Group('JavaScript', /JS_Execution/, "#DD4477")); |
1646 Group.add('runtime', new Group('Runtime', /.*/, "#88BB00")); | 1663 Group.add('runtime', new Group('Runtime', /.*/, "#88BB00")); |
1647 var group = | 1664 var group = |
1648 Group.add('unclassified', new Group('Unclassified', /.*/, "#000")); | 1665 Group.add('unclassified', new Group('Unclassified', /.*/, "#000")); |
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1961 </tr> | 1978 </tr> |
1962 <tr> | 1979 <tr> |
1963 <td>Overall Impact:</td> | 1980 <td>Overall Impact:</td> |
1964 <td class="timeImpact"></td><td>±</td><td class="timePercentImpact"></td
> | 1981 <td class="timeImpact"></td><td>±</td><td class="timePercentImpact"></td
> |
1965 <td class="compare timeImpact"></td><td class="compare"> ± </td><td clas
s="compare timePercentImpact"></td> | 1982 <td class="compare timeImpact"></td><td class="compare"> ± </td><td clas
s="compare timePercentImpact"></td> |
1966 </tr> | 1983 </tr> |
1967 </table> | 1984 </table> |
1968 </div> | 1985 </div> |
1969 </body> | 1986 </body> |
1970 </html> | 1987 </html> |
OLD | NEW |