Chromium Code Reviews| Index: pkg/polymer/lib/src/build/linter.dart |
| diff --git a/pkg/polymer/lib/src/build/linter.dart b/pkg/polymer/lib/src/build/linter.dart |
| index df3331894f2c75ef5e23101a4813aaec30335ca3..ecf63e489dcf39c3e7ba90517a44531e2a437a52 100644 |
| --- a/pkg/polymer/lib/src/build/linter.dart |
| +++ b/pkg/polymer/lib/src/build/linter.dart |
| @@ -214,14 +214,14 @@ class _LinterVisitor extends TreeVisitor { |
| _logger.error('Missing tag name of the custom element. Please include an ' |
| 'attribute like \'name="your-tag-name"\'.', |
| span: node.sourceSpan); |
| - } else if (!_isCustomTag(tagName)) { |
| + } else if (!isCustomTagName(tagName)) { |
| _logger.error('Invalid name "$tagName". Custom element names must have ' |
| 'at least one dash and can\'t be any of the following names: ' |
| - '${_invalidTagNames.keys.join(", ")}.', |
| + '${invalidTagNames.keys.join(", ")}.', |
| span: node.sourceSpan); |
| } |
| - if (_elements[extendsTag] == null && _isCustomTag(extendsTag)) { |
| + if (_elements[extendsTag] == null && isCustomTagName(extendsTag)) { |
| _logger.warning('custom element with name "$extendsTag" not found.', |
| span: node.sourceSpan); |
| } |
| @@ -232,10 +232,8 @@ class _LinterVisitor extends TreeVisitor { |
| // names='a b c' or names='a,b,c' |
| // record each name for publishing |
| - for (var attr in attrs.split(attrs.contains(',') ? ',' : ' ')) { |
| - // remove excess ws |
| - attr = attr.trim(); |
| - if (!_validateCustomAttributeName(attr, attrsSpan)) break; |
| + for (var attr in attrs.split(_ATTRIBUTES_REGEX)) { |
| + if (!_validateCustomAttributeName(attr.trim(), attrsSpan)) break; |
| } |
| } |
| @@ -299,7 +297,7 @@ class _LinterVisitor extends TreeVisitor { |
| var nodeTag = node.localName; |
| var hasIsAttribute; |
| var customTagName; |
| - if (_isCustomTag(nodeTag)) { |
| + if (isCustomTagName(nodeTag)) { |
| // <fancy-button> |
| customTagName = nodeTag; |
| hasIsAttribute = false; |
| @@ -387,27 +385,6 @@ class _LinterVisitor extends TreeVisitor { |
| } |
| } |
| - |
| -// These names have meaning in SVG or MathML, so they aren't allowed as custom |
| -// tags. |
| -var _invalidTagNames = const { |
| - 'annotation-xml': '', |
| - 'color-profile': '', |
| - 'font-face': '', |
| - 'font-face-src': '', |
| - 'font-face-uri': '', |
| - 'font-face-format': '', |
| - 'font-face-name': '', |
| - 'missing-glyph': '', |
| -}; |
| - |
| -/// Returns true if this is a valid custom element name. See: |
| -/// <https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/custom/index.html#dfn-custom-element-name> |
| -bool _isCustomTag(String name) { |
| - if (name == null || !name.contains('-')) return false; |
| - return !_invalidTagNames.containsKey(name); |
| -} |
| - |
| const String USE_INIT_DART = |
| 'To run a polymer application, you need to call "initPolymer". You can ' |
| 'either include a generic script tag that does this for you:' |
| @@ -423,3 +400,5 @@ const String BOOT_JS_DEPRECATED = |
| '"package:polymer/init.dart";</script>\'. Additionally you need to ' |
| 'include: \'<script src="packages/browser/dart.js"></script>\' in the page ' |
| 'too. Make sure these script tags come after all HTML imports.'; |
| + |
| +final _ATTRIBUTES_REGEX = new RegExp(r'\s|,'); |
|
Jennifer Messerly
2014/03/27 02:20:32
maybe comment that this is identical to lib/src/de
Siggi Cherem (dart-lang)
2014/03/28 01:04:26
Done. added the reference and shared this with the
|