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

Side by Side Diff: lib/dom.dart

Issue 2560823004: Strong mode fixes for html package (Closed)
Patch Set: Created 4 years 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
« no previous file with comments | « no previous file | lib/src/encoding_parser.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 /// A simple tree API that results from parsing html. Intended to be compatible 1 /// A simple tree API that results from parsing html. Intended to be compatible
2 /// with dart:html, but it is missing many types and APIs. 2 /// with dart:html, but it is missing many types and APIs.
3 library dom; 3 library dom;
4 4
5 // TODO(jmesserly): lots to do here. Originally I wanted to generate this using 5 // TODO(jmesserly): lots to do here. Originally I wanted to generate this using
6 // our Blink IDL generator, but another idea is to directly use the excellent 6 // our Blink IDL generator, but another idea is to directly use the excellent
7 // http://dom.spec.whatwg.org/ and http://html.spec.whatwg.org/ and just 7 // http://dom.spec.whatwg.org/ and http://html.spec.whatwg.org/ and just
8 // implement that. 8 // implement that.
9 9
10 import 'dart:collection'; 10 import 'dart:collection';
(...skipping 791 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 return result; 802 return result;
803 } 803 }
804 } 804 }
805 805
806 /// An indexable collection of a node's descendants in the document tree, 806 /// An indexable collection of a node's descendants in the document tree,
807 /// filtered so that only elements are in the collection. 807 /// filtered so that only elements are in the collection.
808 // TODO(jmesserly): this was copied from dart:html 808 // TODO(jmesserly): this was copied from dart:html
809 // TODO(jmesserly): "implements List<Element>" is a workaround for analyzer bug. 809 // TODO(jmesserly): "implements List<Element>" is a workaround for analyzer bug.
810 class FilteredElementList extends IterableBase<Element> with ListMixin<Element> 810 class FilteredElementList extends IterableBase<Element> with ListMixin<Element>
811 implements List<Element> { 811 implements List<Element> {
812 final Node _node;
813 final List<Node> _childNodes; 812 final List<Node> _childNodes;
814 813
815 /// Creates a collection of the elements that descend from a node. 814 /// Creates a collection of the elements that descend from a node.
816 /// 815 ///
817 /// Example usage: 816 /// Example usage:
818 /// 817 ///
819 /// var filteredElements = new FilteredElementList(query("#container")); 818 /// var filteredElements = new FilteredElementList(query("#container"));
820 /// // filteredElements is [a, b, c]. 819 /// // filteredElements is [a, b, c].
821 FilteredElementList(Node node) 820 FilteredElementList(Node node)
822 : _childNodes = node.nodes, 821 : _childNodes = node.nodes;
823 _node = node; 822
824 823
825 // We can't memoize this, since it's possible that children will be messed 824 // We can't memoize this, since it's possible that children will be messed
826 // with externally to this class. 825 // with externally to this class.
827 // 826 //
828 // TODO(nweiz): we don't always need to create a new list. For example 827 // TODO(nweiz): we don't always need to create a new list. For example
829 // forEach, every, any, ... could directly work on the _childNodes. 828 // forEach, every, any, ... could directly work on the _childNodes.
830 List<Element> get _filtered => 829 List<Element> get _filtered =>
831 new List<Element>.from(_childNodes.where((n) => n is Element)); 830 new List<Element>.from(_childNodes.where((n) => n is Element));
832 831
833 void forEach(void f(Element element)) { 832 void forEach(void f(Element element)) {
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
1001 1000
1002 class _ConcatTextVisitor extends TreeVisitor { 1001 class _ConcatTextVisitor extends TreeVisitor {
1003 final _str = new StringBuffer(); 1002 final _str = new StringBuffer();
1004 1003
1005 String toString() => _str.toString(); 1004 String toString() => _str.toString();
1006 1005
1007 visitText(Text node) { 1006 visitText(Text node) {
1008 _str.write(node.data); 1007 _str.write(node.data);
1009 } 1008 }
1010 } 1009 }
OLDNEW
« no previous file with comments | « no previous file | lib/src/encoding_parser.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698