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

Side by Side Diff: pkg/polymer/lib/src/declaration.dart

Issue 29823005: fixes to polymer, gets tests back to a stable state (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 1 month 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 // 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 part of polymer; 5 part of polymer;
6 6
7 /** 7 /**
8 * **Warning**: this class is experiental and subject to change. 8 * **Warning**: this class is experiental and subject to change.
9 * 9 *
10 * The implementation for the `polymer-element` element. 10 * The implementation for the `polymer-element` element.
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 * above Polymer. 472 * above Polymer.
473 */ 473 */
474 // TODO(sjmiles): perf: reflection is slow, relatively speaking 474 // TODO(sjmiles): perf: reflection is slow, relatively speaking
475 // If an element may take 6us to create, getCustomPropertyNames might 475 // If an element may take 6us to create, getCustomPropertyNames might
476 // cost 1.6us more. 476 // cost 1.6us more.
477 void inferObservers(ClassMirror cls) { 477 void inferObservers(ClassMirror cls) {
478 for (var method in cls.methods.values) { 478 for (var method in cls.methods.values) {
479 if (method.isStatic || !method.isRegularMethod) continue; 479 if (method.isStatic || !method.isRegularMethod) continue;
480 480
481 String name = MirrorSystem.getName(method.simpleName); 481 String name = MirrorSystem.getName(method.simpleName);
482 if (name.endsWith('Changed')) { 482 if (name.endsWith(_OBSERVE_SUFFIX) && name != 'attributeChanged') {
483 if (_observe == null) _observe = {}; 483 if (_observe == null) _observe = {};
484 name = name.substring(0, name.length - 7); 484 name = name.substring(0, name.length - 7);
485 _observe[name] = method.simpleName; 485 _observe[name] = method.simpleName;
486 } 486 }
487 } 487 }
488 } 488 }
489 489
490 void publishProperties(Type type) { 490 void publishProperties(Type type) {
491 // Dart note: _publish was already populated by publishAttributes 491 // Dart note: _publish was already populated by publishAttributes
492 if (_publish != null) _publishLC = _lowerCaseMap(_publish); 492 if (_publish != null) _publishLC = _lowerCaseMap(_publish);
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 var attr = style.attributes[_STYLE_SCOPE_ATTRIBUTE]; 631 var attr = style.attributes[_STYLE_SCOPE_ATTRIBUTE];
632 if (attr != null) { 632 if (attr != null) {
633 clone.attributes[_STYLE_SCOPE_ATTRIBUTE] = attr; 633 clone.attributes[_STYLE_SCOPE_ATTRIBUTE] = attr;
634 } 634 }
635 635
636 scope.append(clone); 636 scope.append(clone);
637 } 637 }
638 638
639 String _cssTextFromSheet(Element sheet) { 639 String _cssTextFromSheet(Element sheet) {
640 if (sheet == null || js.context == null) return ''; 640 if (sheet == null || js.context == null) return '';
641 var resource = new JsObject.fromBrowserObject(sheet)['__resource']; 641 var resource = new js.JsObject.fromBrowserObject(sheet)['__resource'];
642 return resource != null ? resource : ''; 642 return resource != null ? resource : '';
643 } 643 }
644 644
645 const _OBSERVE_SUFFIX = 'Changed'; 645 const _OBSERVE_SUFFIX = 'Changed';
646 646
647 // TODO(jmesserly): is this list complete? 647 // TODO(jmesserly): is this list complete?
648 final _eventTranslations = const { 648 final _eventTranslations = const {
649 // TODO(jmesserly): these three Polymer.js translations won't work in Dart, 649 // TODO(jmesserly): these three Polymer.js translations won't work in Dart,
650 // because we strip the webkit prefix (below). Reconcile. 650 // because we strip the webkit prefix (below). Reconcile.
651 'webkitanimationstart': 'webkitAnimationStart', 651 'webkitanimationstart': 'webkitAnimationStart',
(...skipping 25 matching lines...) Expand all
677 return map; 677 return map;
678 }(); 678 }();
679 679
680 // Dart note: we need this function because we have additional renames JS does 680 // Dart note: we need this function because we have additional renames JS does
681 // not have. The JS renames are simply case differences, whereas we have ones 681 // not have. The JS renames are simply case differences, whereas we have ones
682 // like doubleclick -> dblclick and stripping the webkit prefix. 682 // like doubleclick -> dblclick and stripping the webkit prefix.
683 String _eventNameFromType(String eventType) { 683 String _eventNameFromType(String eventType) {
684 final result = _reverseEventTranslations[eventType]; 684 final result = _reverseEventTranslations[eventType];
685 return result != null ? result : eventType; 685 return result != null ? result : eventType;
686 } 686 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698