OLD | NEW |
1 <!-- | 1 <!-- |
2 // Copyright 2015 The Chromium Authors. All rights reserved. | 2 // Copyright 2015 The Chromium Authors. All rights reserved. |
3 // Use of this source code is governed by a BSD-style license that can be | 3 // Use of this source code is governed by a BSD-style license that can be |
4 // found in the LICENSE file. | 4 // found in the LICENSE file. |
5 --> | 5 --> |
6 <script> | 6 <script> |
7 import "dart:mirrors"; | 7 import "dart:mirrors"; |
8 import "dart:sky"; | 8 import "dart:sky"; |
9 | 9 |
10 typedef dynamic _Converter(String value); | 10 typedef dynamic _Converter(String value); |
11 | 11 |
12 final Map<String, _Converter> _kAttributeConverters = { | 12 final Map<String, _Converter> _kAttributeConverters = { |
13 'boolean': (String value) { | 13 'boolean': (String value) { |
14 return value == 'true'; | 14 return value == 'true'; |
15 }, | 15 }, |
16 'number': (String value) { | 16 'number': (String value) { |
17 return double.parse(value); | 17 try { |
| 18 return double.parse(value); |
| 19 } catch(_) { |
| 20 return 0.0; |
| 21 } |
18 }, | 22 }, |
19 'string': (String value) { | 23 'string': (String value) { |
20 return value == null ? '' : value; | 24 return value == null ? '' : value; |
21 }, | 25 }, |
22 }; | 26 }; |
23 | 27 |
24 class _Registration { | 28 class _Registration { |
25 final Element template; | 29 final Element template; |
26 final Map<String, _Converter> attributes = new Map(); | 30 final Map<String, _Converter> attributes = new Map(); |
27 | 31 |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 throw new UnsupportedError('@Tagname can only be used on descendants of SkyE
lement'); | 155 throw new UnsupportedError('@Tagname can only be used on descendants of SkyE
lement'); |
152 | 156 |
153 String tagName = _getTagName(type); | 157 String tagName = _getTagName(type); |
154 Element template = definition.querySelector('template'); | 158 Element template = definition.querySelector('template'); |
155 | 159 |
156 document.registerElement(tagName, type); | 160 document.registerElement(tagName, type); |
157 _registery[tagName] = new _Registration(template) | 161 _registery[tagName] = new _Registration(template) |
158 ..parseAttributeSpec(definition); | 162 ..parseAttributeSpec(definition); |
159 } | 163 } |
160 </script> | 164 </script> |
OLD | NEW |