| Index: pkg/polymer/lib/src/build/common.dart
|
| diff --git a/pkg/polymer/lib/src/build/common.dart b/pkg/polymer/lib/src/build/common.dart
|
| index 2510742a3aeb6f859ead651e16fca4ed6f5eac56..26e6a2626553adadc5e01687781d2677d0d1c74e 100644
|
| --- a/pkg/polymer/lib/src/build/common.dart
|
| +++ b/pkg/polymer/lib/src/build/common.dart
|
| @@ -188,3 +188,27 @@ class _ErrorCollector extends AnalysisErrorListener {
|
| final errors = <AnalysisError>[];
|
| onError(error) => errors.add(error);
|
| }
|
| +
|
| +/// These names have meaning in SVG or MathML, so they aren't allowed as custom
|
| +/// tags. See [isCustomTagName].
|
| +const 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:
|
| +/// <http://w3c.github.io/webcomponents/spec/custom/#dfn-custom-element-type>
|
| +bool isCustomTagName(String name) {
|
| + if (name == null || !name.contains('-')) return false;
|
| + return !invalidTagNames.containsKey(name);
|
| +}
|
| +
|
| +/// Regex to split names in the 'attributes' attribute, which supports 'a b c',
|
| +/// 'a,b,c', or even 'a b,c'. This is the same as in `lib/src/declaration.dart`.
|
| +final ATTRIBUTES_REGEX = new RegExp(r'\s|,');
|
|
|