Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(654)

Side by Side Diff: samples/third_party/dromaeo/Suites.dart

Issue 9732019: dart:html perf optimization based on runing Dromaeo benchmarks (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fixes Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #library('Suites.dart'); 1 #library('Suites.dart');
2 2
3 class Origin { 3 class Origin {
4 final String author; 4 final String author;
5 final String url; 5 final String url;
6 6
7 const Origin(this.author, this.url); 7 const Origin(this.author, this.url);
8 } 8 }
9 9
10 class SuiteDescription { 10 class SuiteDescription {
11 final String file; 11 final String file;
12 final String name; 12 final String name;
13 final Origin origin; 13 final Origin origin;
14 final String description; 14 final String description;
15 final List<String> tags; 15 final List<String> tags;
16 16
17 const SuiteDescription(this.file, this.name, this.origin, 17 const SuiteDescription(this.file, this.name, this.origin,
18 this.description, this.tags); 18 this.description, this.tags);
19 } 19 }
20 20
21 class Suites { 21 class Suites {
22 static final JOHN_RESIG = const Origin('John Resig', 'http://ejohn.org/'); 22 static final JOHN_RESIG = const Origin('John Resig', 'http://ejohn.org/');
23 23
24 static final CATEGORIES = const { 24 static final CATEGORIES = const {
25 'dom': 'DOM Core Tests (dart:dom)', 25 'dom': 'DOM Core Tests (dart:dom)',
26 'html': 'DOM Core Tests (dart:html)', 26 'html': 'DOM Core Tests (dart:html)',
27 'htmlidiomatic': 'DOM Core Tests (dart:html) Idiomatic',
27 'js': 'DOM Core Tests (JavaScript)', 28 'js': 'DOM Core Tests (JavaScript)',
28 'dart': 'DOM Core Tests (dart)', 29 'dart': 'DOM Core Tests (dart)',
29 'frog': 'DOM Core Tests (frog)', 30 'frog': 'DOM Core Tests (frog)',
30 }; 31 };
31 32
32 static final _CORE_SUITE_DESCRIPTIONS = const [ 33 static final _CORE_SUITE_DESCRIPTIONS = const [
33 const SuiteDescription( 34 const SuiteDescription(
34 'dom-attr.html', 35 'dom-attr.html',
35 'DOM Attributes', 36 'DOM Attributes',
36 JOHN_RESIG, 37 JOHN_RESIG,
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 suite.description, 69 suite.description,
69 combined); 70 combined);
70 } 71 }
71 return suites.map(getVariant); 72 return suites.map(getVariant);
72 } 73 }
73 74
74 // Mappings from original path to Dart-specific variants. 75 // Mappings from original path to Dart-specific variants.
75 static _jsPath(path) => path; 76 static _jsPath(path) => path;
76 static _domPath(path) => path.replaceFirst('.html', '-dom.html'); 77 static _domPath(path) => path.replaceFirst('.html', '-dom.html');
77 static _htmlPath(path) => path.replaceFirst('.html', '-html.html'); 78 static _htmlPath(path) => path.replaceFirst('.html', '-html.html');
79 static _htmlIdiomaticPath(path) =>
80 path.replaceFirst('.html', '-htmlidiomatic.html');
78 static _frogDomPath(path) => 81 static _frogDomPath(path) =>
79 'frog/${path.replaceFirst(".html", "-dom-js.html")}'; 82 'frog/${path.replaceFirst(".html", "-dom-js.html")}';
80 static _frogHtmlPath(path) => 83 static _frogHtmlPath(path) =>
81 'frog/${path.replaceFirst(".html", "-html-js.html")}'; 84 'frog/${path.replaceFirst(".html", "-html-js.html")}';
85 static _frogHtmlIdiomaticPath(path) =>
86 'frog/${path.replaceFirst(".html", "-htmlidiomatic-js.html")}';
82 87
83 static var _SUITE_DESCRIPTIONS; 88 static var _SUITE_DESCRIPTIONS;
84 89
85 static List<SuiteDescription> get SUITE_DESCRIPTIONS() { 90 static List<SuiteDescription> get SUITE_DESCRIPTIONS() {
86 if (null !== _SUITE_DESCRIPTIONS) { 91 if (null !== _SUITE_DESCRIPTIONS) {
87 return _SUITE_DESCRIPTIONS; 92 return _SUITE_DESCRIPTIONS;
88 } 93 }
89 _SUITE_DESCRIPTIONS = <SuiteDescription>[]; 94 _SUITE_DESCRIPTIONS = <SuiteDescription>[];
90 add(variant, mapper, tags) { 95 add(variant, mapper, tags) {
91 _SUITE_DESCRIPTIONS.addAll( 96 _SUITE_DESCRIPTIONS.addAll(
92 getVariants(_CORE_SUITE_DESCRIPTIONS, variant, mapper, tags)); 97 getVariants(_CORE_SUITE_DESCRIPTIONS, variant, mapper, tags));
93 } 98 }
94 add('js', _jsPath, ['js']); 99 add('js', _jsPath, ['js']);
95 add('dart:dom', _domPath, ['dart', 'dom']); 100 add('dart:dom', _domPath, ['dart', 'dom']);
96 add('dart:html', _htmlPath, ['dart', 'html']); 101 add('dart:html', _htmlPath, ['dart', 'html']);
102 add('dart:html idiomatic', _htmlPath, ['dart', 'htmlidiomatic']);
97 add('frog dart:dom', _frogDomPath, ['frog', 'dom']); 103 add('frog dart:dom', _frogDomPath, ['frog', 'dom']);
98 add('frog dart:html', _frogHtmlPath, ['frog', 'html']); 104 add('frog dart:html', _frogHtmlPath, ['frog', 'html']);
105 add('frog dart:html idiomatic', _frogHtmlIdiomaticPath,
106 ['frog', 'htmlidiomatic']);
99 return _SUITE_DESCRIPTIONS; 107 return _SUITE_DESCRIPTIONS;
100 } 108 }
101 109
102 static List<SuiteDescription> getSuites(String tags) { 110 static List<SuiteDescription> getSuites(String tags) {
103 // A disjunction of conjunctions (e.g., 111 // A disjunction of conjunctions (e.g.,
104 // 'js&modify|dart&dom&modify'). 112 // 'js&modify|dart&dom&modify').
105 final taglist = tags.split('|').map((tag) => tag.split('&')); 113 final taglist = tags.split('|').map((tag) => tag.split('&'));
106 114
107 bool match(suite) { 115 bool match(suite) {
108 // If any conjunction matches, return true. 116 // If any conjunction matches, return true.
(...skipping 15 matching lines...) Expand all
124 return CATEGORIES[tags]; 132 return CATEGORIES[tags];
125 } 133 }
126 for (final suite in _CORE_SUITE_DESCRIPTIONS) { 134 for (final suite in _CORE_SUITE_DESCRIPTIONS) {
127 if (suite.tags[0] == tags) { 135 if (suite.tags[0] == tags) {
128 return suite.name; 136 return suite.name;
129 } 137 }
130 } 138 }
131 return null; 139 return null;
132 } 140 }
133 } 141 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698