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

Side by Side Diff: pkg/polymer/test/build/all_phases_test.dart

Issue 293023008: Bring back initPolymer, allow boot.js only if using "polymer_experimental.html". (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 7 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
« no previous file with comments | « pkg/polymer/test/bind_test.html ('k') | pkg/polymer/test/build/code_extractor.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library polymer.test.build.all_phases_test; 5 library polymer.test.build.all_phases_test;
6 6
7 import 'package:code_transformers/tests.dart' show testingDartSdkDirectory; 7 import 'package:code_transformers/tests.dart' show testingDartSdkDirectory;
8 import 'package:polymer/src/build/common.dart'; 8 import 'package:polymer/src/build/common.dart';
9 import 'package:polymer/src/build/import_inliner.dart' show COMPONENT_WARNING; 9 import 'package:polymer/src/build/linter.dart' show USE_POLYMER_HTML,
10 import 'package:polymer/src/build/linter.dart' show USE_POLYMER_HTML; 10 USE_INIT_DART, ONLY_ONE_TAG;
11 import 'package:polymer/src/build/script_compactor.dart' show MAIN_HEADER; 11 import 'package:polymer/src/build/script_compactor.dart' show MAIN_HEADER;
12 import 'package:polymer/transformer.dart'; 12 import 'package:polymer/transformer.dart';
13 import 'package:smoke/codegen/generator.dart' show DEFAULT_IMPORTS; 13 import 'package:smoke/codegen/generator.dart' show DEFAULT_IMPORTS;
14 import 'package:unittest/compact_vm_config.dart'; 14 import 'package:unittest/compact_vm_config.dart';
15 15
16 import 'common.dart'; 16 import 'common.dart';
17 17
18 void main() { 18 void main() {
19 useCompactVMConfiguration(); 19 useCompactVMConfiguration();
20 var phases = createDeployPhases(new TransformOptions(), 20 var phases = createDeployPhases(new TransformOptions(),
21 sdkDir: testingDartSdkDirectory); 21 sdkDir: testingDartSdkDirectory);
22 22
23 testPhases('no changes', phases, { 23 testPhases('no changes', phases, {
24 'a|web/test.html': '<!DOCTYPE html><html></html>', 24 'a|web/test.html': '<!DOCTYPE html><html></html>',
25 }, {}, [ 25 }, {}, [
26 'warning: $USE_POLYMER_HTML' 26 'warning: $USE_POLYMER_HTML',
27 'warning: $USE_INIT_DART'
27 ]); 28 ]);
28 29
29 testPhases('observable changes', phases, { 30 testPhases('observable changes', phases, {
30 'a|web/test.dart': _sampleInput('A', 'foo'), 31 'a|web/test.dart': _sampleInput('A', 'foo'),
31 'a|web/test2.dart': _sampleOutput('B', 'bar'), 32 'a|web/test2.dart': _sampleOutput('B', 'bar'),
32 }, { 33 }, {
33 'a|web/test.dart': _sampleOutput('A', 'foo'), 34 'a|web/test.dart': _sampleOutput('A', 'foo'),
34 'a|web/test2.dart': _sampleOutput('B', 'bar'), 35 'a|web/test2.dart': _sampleOutput('B', 'bar'),
35 }); 36 });
36 37
37 testPhases('single script', phases, { 38 testPhases('single script', phases, {
38 'a|web/test.html': 39 'a|web/test.html':
39 '<!DOCTYPE html><html><head>' 40 '<!DOCTYPE html><html><head>'
40 '<link rel="import" href="packages/polymer/polymer.html">' 41 '<link rel="import" href="packages/polymer/polymer.html">'
41 '<script type="application/dart;component=1" src="a.dart"></script>', 42 '<script type="application/dart" src="a.dart"></script>',
42 'a|web/a.dart': _sampleInput('A', 'foo'), 43 'a|web/a.dart': _sampleInput('A', 'foo'),
43 }, { 44 }, {
44 'a|web/test.html': 45 'a|web/test.html':
45 '<!DOCTYPE html><html><head>' 46 '<!DOCTYPE html><html><head>'
46 '$WEB_COMPONENTS_TAG' 47 '$WEB_COMPONENTS_TAG'
47 '</head><body>' 48 '</head><body>'
48 '<script src="test.html_bootstrap.dart.js"></script>' 49 '<script src="test.html_bootstrap.dart.js"></script>'
49 '</body></html>', 50 '</body></html>',
50 51
51 'a|web/test.html_bootstrap.dart': 52 'a|web/test.html_bootstrap.dart':
52 '''$MAIN_HEADER 53 '''$MAIN_HEADER
53 import 'a.dart' as i0; 54 import 'a.dart' as i0;
54 ${DEFAULT_IMPORTS.join('\n')} 55 ${DEFAULT_IMPORTS.join('\n')}
55 import 'a.dart' as smoke_0; 56 import 'a.dart' as smoke_0;
56 import 'package:polymer/polymer.dart' as smoke_1; 57 import 'package:polymer/polymer.dart' as smoke_1;
57 58
58 void main() { 59 void main() {
59 useGeneratedCode(new StaticConfiguration( 60 useGeneratedCode(new StaticConfiguration(
60 checkedMode: false, 61 checkedMode: false,
61 parents: { 62 parents: {
62 smoke_0.XA: smoke_1.PolymerElement, 63 smoke_0.XA: smoke_1.PolymerElement,
63 }, 64 },
64 declarations: { 65 declarations: {
65 smoke_0.XA: const {}, 66 smoke_0.XA: const {},
66 })); 67 }));
67 startPolymer([ 68 configureForDeployment([
68 i0.m_foo, 69 i0.m_foo,
69 () => Polymer.register('x-A', i0.XA), 70 () => Polymer.register('x-A', i0.XA),
70 ]); 71 ]);
72 i0.main();
71 } 73 }
72 '''.replaceAll('\n ', '\n'), 74 '''.replaceAll('\n ', '\n'),
73 'a|web/a.dart': _sampleOutput('A', 'foo'), 75 'a|web/a.dart': _sampleOutput('A', 'foo'),
74 }); 76 }, []);
75 77
76 testPhases('single inline script', phases, { 78 testPhases('single inline script', phases, {
77 'a|web/test.html': 79 'a|web/test.html':
78 '<!DOCTYPE html><html><head>' 80 '<!DOCTYPE html><html><head>'
79 '<link rel="import" href="packages/polymer/polymer.html">' 81 '<link rel="import" href="packages/polymer/polymer.html">'
80 '<script type="application/dart;component=1">' 82 '<script type="application/dart">'
81 '${_sampleInput("B", "bar")}</script>', 83 '${_sampleInput("B", "bar")}</script>',
82 }, { 84 }, {
83 'a|web/test.html': 85 'a|web/test.html':
84 '<!DOCTYPE html><html><head>' 86 '<!DOCTYPE html><html><head>'
85 '$WEB_COMPONENTS_TAG' 87 '$WEB_COMPONENTS_TAG'
86 '</head><body>' 88 '</head><body>'
87 '<script src="test.html_bootstrap.dart.js"></script>' 89 '<script src="test.html_bootstrap.dart.js"></script>'
88 '</body></html>', 90 '</body></html>',
89 91
90 'a|web/test.html_bootstrap.dart': 92 'a|web/test.html_bootstrap.dart':
91 '''$MAIN_HEADER 93 '''$MAIN_HEADER
92 import 'test.html.0.dart' as i0; 94 import 'test.html.0.dart' as i0;
93 ${DEFAULT_IMPORTS.join('\n')} 95 ${DEFAULT_IMPORTS.join('\n')}
94 import 'test.html.0.dart' as smoke_0; 96 import 'test.html.0.dart' as smoke_0;
95 import 'package:polymer/polymer.dart' as smoke_1; 97 import 'package:polymer/polymer.dart' as smoke_1;
96 98
97 void main() { 99 void main() {
98 useGeneratedCode(new StaticConfiguration( 100 useGeneratedCode(new StaticConfiguration(
99 checkedMode: false, 101 checkedMode: false,
100 parents: { 102 parents: {
101 smoke_0.XB: smoke_1.PolymerElement, 103 smoke_0.XB: smoke_1.PolymerElement,
102 }, 104 },
103 declarations: { 105 declarations: {
104 smoke_0.XB: const {}, 106 smoke_0.XB: const {},
105 })); 107 }));
106 startPolymer([ 108 configureForDeployment([
107 i0.m_bar, 109 i0.m_bar,
108 () => Polymer.register('x-B', i0.XB), 110 () => Polymer.register('x-B', i0.XB),
109 ]); 111 ]);
112 i0.main();
110 } 113 }
111 '''.replaceAll('\n ', '\n'), 114 '''.replaceAll('\n ', '\n'),
112 'a|web/test.html.0.dart': 115 'a|web/test.html.0.dart':
113 _sampleOutput("B", "bar"), 116 _sampleOutput("B", "bar"),
114 }); 117 });
115 118
116 testPhases('several application scripts', phases, { 119 testPhases('several scripts', phases, {
117 'a|web/test.html': 120 'a|web/test.html':
118 '<!DOCTYPE html><html><head>' 121 '<!DOCTYPE html><html><head>'
119 '<link rel="import" href="packages/polymer/polymer.html">' 122 '<link rel="import" href="packages/polymer/polymer.html">\n'
120 '<script type="application/dart;component=1" src="a.dart"></script>' 123 '<script type="application/dart" src="a.dart"></script>\n'
121 '<script type="application/dart">' 124 '<script type="application/dart">'
122 '${_sampleInput("B", "bar")}</script>' 125 '${_sampleInput("B", "bar")}</script>'
123 '</head><body><div>' 126 '</head><body><div>\n'
124 '<script type="application/dart">' 127 '<script type="application/dart">'
125 '${_sampleInput("C", "car")}</script>' 128 '${_sampleInput("C", "car")}</script>'
126 '</div>' 129 '</div>\n'
127 '<script type="application/dart" src="d.dart"></script>', 130 '<script type="application/dart" src="d.dart"></script>',
128 'a|web/a.dart': _sampleInput('A', 'foo'), 131 'a|web/a.dart': _sampleInput('A', 'foo'),
129 }, { 132 }, {
130 'a|web/test.html': 133 'a|web/test.html':
131 '<!DOCTYPE html><html><head>' 134 '<!DOCTYPE html><html><head>'
132 '$WEB_COMPONENTS_TAG' 135 '$WEB_COMPONENTS_TAG\n\n'
133 '</head><body>' 136 '</head><body>'
134 '<script src="test.html.0.dart.js"></script>' 137 '<div>\n</div>\n'
135 '<div>'
136 '<script src="test.html.1.dart.js"></script>'
137 '</div>'
138 '<script src="d.dart.js"></script>'
139 '<script src="test.html_bootstrap.dart.js"></script>' 138 '<script src="test.html_bootstrap.dart.js"></script>'
140 '</body></html>', 139 '</body></html>',
141
142 'a|web/test.html_bootstrap.dart':
143 '''$MAIN_HEADER
144 import 'a.dart' as i0;
145 ${DEFAULT_IMPORTS.join('\n')}
146 import 'a.dart' as smoke_0;
147 import 'package:polymer/polymer.dart' as smoke_1;
148
149 void main() {
150 useGeneratedCode(new StaticConfiguration(
151 checkedMode: false,
152 parents: {
153 smoke_0.XA: smoke_1.PolymerElement,
154 },
155 declarations: {
156 smoke_0.XA: const {},
157 }));
158 startPolymer([
159 i0.m_foo,
160 () => Polymer.register('x-A', i0.XA),
161 ]);
162 }
163 '''.replaceAll('\n ', '\n'),
164 'a|web/a.dart': _sampleOutput('A', 'foo'),
165 }, [
166 // These should not be emitted multiple times. See:
167 // https://code.google.com/p/dart/issues/detail?id=17197
168 'warning: $COMPONENT_WARNING (web/test.html 14 27)',
169 'warning: $COMPONENT_WARNING (web/test.html 28 15)'
170 ]);
171
172 testPhases('several component scripts', phases, {
173 'a|web/test.html':
174 '<!DOCTYPE html><html><head>'
175 '<link rel="import" href="packages/polymer/polymer.html">'
176 '<script type="application/dart;component=1" src="a.dart"></script>'
177 '<script type="application/dart;component=1">'
178 '${_sampleInput("B", "bar")}</script>'
179 '</head><body><div>'
180 '<script type="application/dart;component=1">'
181 '${_sampleInput("C", "car")}</script>'
182 '</div>',
183 'a|web/a.dart': _sampleInput('A', 'foo'),
184 }, {
185 'a|web/test.html':
186 '<!DOCTYPE html><html><head>'
187 '$WEB_COMPONENTS_TAG'
188 '</head><body>'
189 '<div></div>'
190 '<script src="test.html_bootstrap.dart.js"></script>'
191 '</body></html>',
192
193 'a|web/test.html_bootstrap.dart': 140 'a|web/test.html_bootstrap.dart':
194 '''$MAIN_HEADER 141 '''$MAIN_HEADER
195 import 'a.dart' as i0; 142 import 'a.dart' as i0;
196 import 'test.html.0.dart' as i1; 143 import 'test.html.0.dart' as i1;
197 import 'test.html.1.dart' as i2; 144 import 'test.html.1.dart' as i2;
198 ${DEFAULT_IMPORTS.join('\n')} 145 ${DEFAULT_IMPORTS.join('\n')}
199 import 'a.dart' as smoke_0; 146 import 'a.dart' as smoke_0;
200 import 'package:polymer/polymer.dart' as smoke_1; 147 import 'package:polymer/polymer.dart' as smoke_1;
201 import 'test.html.0.dart' as smoke_2; 148 import 'test.html.0.dart' as smoke_2;
202 import 'test.html.1.dart' as smoke_3; 149 import 'test.html.1.dart' as smoke_3;
203 150
204 void main() { 151 void main() {
205 useGeneratedCode(new StaticConfiguration( 152 useGeneratedCode(new StaticConfiguration(
206 checkedMode: false, 153 checkedMode: false,
207 parents: { 154 parents: {
208 smoke_0.XA: smoke_1.PolymerElement, 155 smoke_0.XA: smoke_1.PolymerElement,
209 smoke_2.XB: smoke_1.PolymerElement, 156 smoke_2.XB: smoke_1.PolymerElement,
210 smoke_3.XC: smoke_1.PolymerElement, 157 smoke_3.XC: smoke_1.PolymerElement,
211 }, 158 },
212 declarations: { 159 declarations: {
213 smoke_0.XA: const {}, 160 smoke_0.XA: const {},
214 smoke_2.XB: const {}, 161 smoke_2.XB: const {},
215 smoke_3.XC: const {}, 162 smoke_3.XC: const {},
216 })); 163 }));
217 startPolymer([ 164 configureForDeployment([
218 i0.m_foo, 165 i0.m_foo,
219 () => Polymer.register('x-A', i0.XA), 166 () => Polymer.register('x-A', i0.XA),
220 i1.m_bar, 167 i1.m_bar,
221 () => Polymer.register('x-B', i1.XB), 168 () => Polymer.register('x-B', i1.XB),
222 i2.m_car, 169 i2.m_car,
223 () => Polymer.register('x-C', i2.XC), 170 () => Polymer.register('x-C', i2.XC),
224 ]); 171 ]);
172 i2.main();
225 } 173 }
226 '''.replaceAll('\n ', '\n'), 174 '''.replaceAll('\n ', '\n'),
227 'a|web/a.dart': _sampleOutput('A', 'foo'), 175 'a|web/a.dart': _sampleOutput('A', 'foo'),
228 }, []); 176 }, [
177 // These should not be emitted multiple times. See:
178 // https://code.google.com/p/dart/issues/detail?id=17197
179 'warning: $ONLY_ONE_TAG (web/test.html 2 0)',
180 'warning: $ONLY_ONE_TAG (web/test.html 18 0)',
181 'warning: $ONLY_ONE_TAG (web/test.html 34 0)',
182 'warning: Script file at "d.dart" not found. (web/test.html 34 0)',
183 ]);
229 184
230 testPhases('with imports', phases, { 185 testPhases('with imports', phases, {
231 'a|web/index.html': 186 'a|web/index.html':
232 '<!DOCTYPE html><html><head>' 187 '<!DOCTYPE html><html><head>'
233 '<link rel="import" href="packages/polymer/polymer.html">' 188 '<link rel="import" href="packages/polymer/polymer.html">'
234 '<link rel="import" href="test2.html">' 189 '<link rel="import" href="packages/a/test2.html">'
235 '</head><body>' 190 '</head><body>'
236 '<script type="application/dart;component=1" src="b.dart"></script>', 191 '<script type="application/dart" src="b.dart"></script>',
237 'a|web/b.dart': _sampleInput('B', 'bar'), 192 'a|web/b.dart': _sampleInput('B', 'bar'),
238 'a|web/test2.html': 193 'a|lib/test2.html':
239 '<!DOCTYPE html><html><head></head><body>' 194 '<!DOCTYPE html><html><head></head><body>'
240 '<polymer-element name="x-a">1' 195 '<polymer-element name="x-a">1'
241 '<script type="application/dart;component=1">' 196 '<script type="application/dart">'
242 '${_sampleInput("A", "foo")}</script>' 197 '${_sampleInput("A", "foo")}</script>'
243 '</polymer-element></html>', 198 '</polymer-element></html>',
244 }, { 199 }, {
245 'a|web/index.html': 200 'a|web/index.html':
246 '<!DOCTYPE html><html><head>' 201 '<!DOCTYPE html><html><head>'
202 '$WEB_COMPONENTS_TAG'
203 '</head><body><polymer-element name="x-a">1</polymer-element>'
204 '<script src="index.html_bootstrap.dart.js"></script>'
205 '</body></html>',
206 'a|web/index.html_bootstrap.dart':
207 '''$MAIN_HEADER
208 import 'index.html.0.dart' as i0;
209 import 'b.dart' as i1;
210 ${DEFAULT_IMPORTS.join('\n')}
211 import 'index.html.0.dart' as smoke_0;
212 import 'package:polymer/polymer.dart' as smoke_1;
213 import 'b.dart' as smoke_2;
214
215 void main() {
216 useGeneratedCode(new StaticConfiguration(
217 checkedMode: false,
218 parents: {
219 smoke_2.XB: smoke_1.PolymerElement,
220 smoke_0.XA: smoke_1.PolymerElement,
221 },
222 declarations: {
223 smoke_2.XB: const {},
224 smoke_0.XA: const {},
225 }));
226 configureForDeployment([
227 i0.m_foo,
228 () => Polymer.register('x-A', i0.XA),
229 i1.m_bar,
230 () => Polymer.register('x-B', i1.XB),
231 ]);
232 i1.main();
233 }
234 '''.replaceAll('\n ', '\n'),
235 'a|web/index.html.0.dart': _sampleOutput("A", "foo"),
236 'a|web/b.dart': _sampleOutput('B', 'bar'),
237 }, []);
238
239 testPhases('experimental bootstrap', phases, {
240 'a|web/index.html':
241 '<!DOCTYPE html><html><head>'
242 '<link rel="import" '
243 'href="packages/polymer/polymer_experimental.html">'
244 '<link rel="import" href="packages/a/test2.html">'
245 '<link rel="import" href="packages/a/load_b.html">',
246 'a|lib/b.dart': _sampleInput('B', 'bar'),
247 'a|lib/test2.html':
248 '<!DOCTYPE html><html><head></head><body>'
249 '<polymer-element name="x-a">1'
250 '<script type="application/dart">'
251 '${_sampleInput("A", "foo")}</script>'
252 '</polymer-element></html>',
253 'a|lib/load_b.html':
254 '<!DOCTYPE html><html><head></head><body>'
255 '<script type="application/dart" src="b.dart"></script>',
256 }, {
257 'a|web/index.html':
258 '<!DOCTYPE html><html><head>'
247 '$WEB_COMPONENTS_TAG' 259 '$WEB_COMPONENTS_TAG'
248 '</head><body><polymer-element name="x-a">1</polymer-element>' 260 '</head><body><polymer-element name="x-a">1</polymer-element>'
249 '<script src="index.html_bootstrap.dart.js"></script>' 261 '<script src="index.html_bootstrap.dart.js"></script>'
250 '</body></html>', 262 '</body></html>',
251 'a|web/index.html_bootstrap.dart': 263 'a|web/index.html_bootstrap.dart':
252 '''$MAIN_HEADER 264 '''$MAIN_HEADER
253 import 'index.html.0.dart' as i0; 265 import 'index.html.0.dart' as i0;
254 import 'b.dart' as i1; 266 import 'package:a/b.dart' as i1;
255 ${DEFAULT_IMPORTS.join('\n')} 267 ${DEFAULT_IMPORTS.join('\n')}
256 import 'index.html.0.dart' as smoke_0; 268 import 'index.html.0.dart' as smoke_0;
257 import 'package:polymer/polymer.dart' as smoke_1; 269 import 'package:polymer/polymer.dart' as smoke_1;
258 import 'b.dart' as smoke_2; 270 import 'package:a/b.dart' as smoke_2;
259 271
260 void main() { 272 void main() {
261 useGeneratedCode(new StaticConfiguration( 273 useGeneratedCode(new StaticConfiguration(
262 checkedMode: false, 274 checkedMode: false,
263 parents: { 275 parents: {
276 smoke_0.XA: smoke_1.PolymerElement,
264 smoke_2.XB: smoke_1.PolymerElement, 277 smoke_2.XB: smoke_1.PolymerElement,
265 smoke_0.XA: smoke_1.PolymerElement,
266 }, 278 },
267 declarations: { 279 declarations: {
280 smoke_0.XA: const {},
268 smoke_2.XB: const {}, 281 smoke_2.XB: const {},
269 smoke_0.XA: const {},
270 })); 282 }));
271 startPolymer([ 283 startPolymer([
272 i0.m_foo, 284 i0.m_foo,
273 () => Polymer.register('x-A', i0.XA), 285 () => Polymer.register('x-A', i0.XA),
274 i1.m_bar, 286 i1.m_bar,
275 () => Polymer.register('x-B', i1.XB), 287 () => Polymer.register('x-B', i1.XB),
276 ]); 288 ]);
277 } 289 }
278 '''.replaceAll('\n ', '\n'), 290 '''.replaceAll('\n ', '\n'),
279 'a|web/index.html.0.dart': _sampleOutput("A", "foo"), 291 'a|web/index.html.0.dart': _sampleOutput("A", "foo"),
280 'a|web/b.dart': _sampleOutput('B', 'bar'), 292 'a|lib/b.dart': _sampleOutput('B', 'bar'),
281 }); 293 }, []);
282 } 294 }
283 295
284 String _sampleInput(String className, String fieldName) => ''' 296 String _sampleInput(String className, String fieldName) => '''
285 library ${className}_$fieldName; 297 library ${className}_$fieldName;
286 import 'package:observe/observe.dart'; 298 import 'package:observe/observe.dart';
287 import 'package:polymer/polymer.dart'; 299 import 'package:polymer/polymer.dart';
288 300
289 class $className extends Observable { 301 class $className extends Observable {
290 @observable int $fieldName; 302 @observable int $fieldName;
291 $className(this.$fieldName); 303 $className(this.$fieldName);
292 } 304 }
293 305
294 @CustomTag('x-$className') 306 @CustomTag('x-$className')
295 class X${className} extends PolymerElement { 307 class X${className} extends PolymerElement {
296 X${className}.created() : super.created(); 308 X${className}.created() : super.created();
297 } 309 }
298 @initMethod m_$fieldName() {} 310 @initMethod m_$fieldName() {}
311 main() {}
299 '''; 312 ''';
300 313
301 314
302 String _sampleOutput(String className, String fieldName) { 315 String _sampleOutput(String className, String fieldName) {
303 var fieldReplacement = '@reflectable @observable ' 316 var fieldReplacement = '@reflectable @observable '
304 'int get $fieldName => __\$$fieldName; ' 317 'int get $fieldName => __\$$fieldName; '
305 'int __\$$fieldName; ' 318 'int __\$$fieldName; '
306 '@reflectable set $fieldName(int value) { ' 319 '@reflectable set $fieldName(int value) { '
307 '__\$$fieldName = notifyPropertyChange(#$fieldName, ' 320 '__\$$fieldName = notifyPropertyChange(#$fieldName, '
308 '__\$$fieldName, value); }'; 321 '__\$$fieldName, value); }';
309 return ''' 322 return '''
310 library ${className}_$fieldName; 323 library ${className}_$fieldName;
311 import 'package:observe/observe.dart'; 324 import 'package:observe/observe.dart';
312 import 'package:polymer/polymer.dart'; 325 import 'package:polymer/polymer.dart';
313 326
314 class $className extends ChangeNotifier { 327 class $className extends ChangeNotifier {
315 $fieldReplacement 328 $fieldReplacement
316 $className($fieldName) : __\$$fieldName = $fieldName; 329 $className($fieldName) : __\$$fieldName = $fieldName;
317 } 330 }
318 331
319 @CustomTag('x-$className') 332 @CustomTag('x-$className')
320 class X${className} extends PolymerElement { 333 class X${className} extends PolymerElement {
321 X${className}.created() : super.created(); 334 X${className}.created() : super.created();
322 } 335 }
323 @initMethod m_$fieldName() {} 336 @initMethod m_$fieldName() {}
337 main() {}
324 '''; 338 ''';
325 } 339 }
OLDNEW
« no previous file with comments | « pkg/polymer/test/bind_test.html ('k') | pkg/polymer/test/build/code_extractor.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698