Index: sdk/lib/html/dart2js/html_dart2js.dart |
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart |
index b49e6b866686e9d35f5b2aa04ac12e69d1469dc6..6786b68a0571326923468c64b9f699eceea7d19a 100644 |
--- a/sdk/lib/html/dart2js/html_dart2js.dart |
+++ b/sdk/lib/html/dart2js/html_dart2js.dart |
@@ -20930,14 +20930,46 @@ class TableColElement extends Element native "*HTMLTableColElement" { |
@DocsEditable |
int span; |
} |
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
// for details. All rights reserved. Use of this source code is governed by a |
// BSD-style license that can be found in the LICENSE file. |
+@DocsEditable |
@DomName('HTMLTableElement') |
class TableElement extends Element native "*HTMLTableElement" { |
+ @DomName('HTMLTableElement.tBodies') |
+ List<TableSectionElement> get tBodies => |
+ new _WrappedList<TableSectionElement>($dom_tBodies); |
+ |
+ @DomName('HTMLTableElement.rows') |
+ List<TableRowElement> get rows => |
+ new _WrappedList<TableRowElement>($dom_rows); |
+ |
+ TableRowElement addRow() { |
+ return insertRow(-1); |
+ } |
+ |
+ TableCaptionElement createCaption() => $dom_createCaption(); |
+ TableSectionElement createTBody() => $dom_createTBody(); |
+ TableSectionElement createTFoot() => $dom_createTFoot(); |
+ TableSectionElement createTHead() => $dom_createTHead(); |
+ TableRowElement insertRow(int index) => $dom_insertRow(index); |
+ |
+ TableSectionElement $dom_createTBody() { |
+ if (JS('bool', '!!#.createTBody', this)) { |
+ return this._createTBody(); |
+ } |
+ var tbody = new Element.tag('tbody'); |
+ this.children.add(tbody); |
+ return tbody; |
+ } |
+ |
+ @JSName('createTBody') |
+ TableSectionElement _createTBody() native; |
+ |
+ |
@DomName('HTMLTableElement.HTMLTableElement') |
@DocsEditable |
factory TableElement() => document.$dom_createElement("table"); |
@@ -20950,13 +20982,15 @@ class TableElement extends Element native "*HTMLTableElement" { |
@DocsEditable |
TableCaptionElement caption; |
+ @JSName('rows') |
@DomName('HTMLTableElement.rows') |
@DocsEditable |
- final HtmlCollection rows; |
+ final HtmlCollection $dom_rows; |
+ @JSName('tBodies') |
@DomName('HTMLTableElement.tBodies') |
@DocsEditable |
- final HtmlCollection tBodies; |
+ final HtmlCollection $dom_tBodies; |
@DomName('HTMLTableElement.tFoot') |
@DocsEditable |
@@ -20966,17 +21000,20 @@ class TableElement extends Element native "*HTMLTableElement" { |
@DocsEditable |
TableSectionElement tHead; |
+ @JSName('createCaption') |
@DomName('HTMLTableElement.createCaption') |
@DocsEditable |
- Element createCaption() native; |
+ Element $dom_createCaption() native; |
+ @JSName('createTFoot') |
@DomName('HTMLTableElement.createTFoot') |
@DocsEditable |
- Element createTFoot() native; |
+ Element $dom_createTFoot() native; |
+ @JSName('createTHead') |
@DomName('HTMLTableElement.createTHead') |
@DocsEditable |
- Element createTHead() native; |
+ Element $dom_createTHead() native; |
@DomName('HTMLTableElement.deleteCaption') |
@DocsEditable |
@@ -20994,24 +21031,12 @@ class TableElement extends Element native "*HTMLTableElement" { |
@DocsEditable |
void deleteTHead() native; |
+ @JSName('insertRow') |
@DomName('HTMLTableElement.insertRow') |
@DocsEditable |
- Element insertRow(int index) native; |
- |
- |
- Element createTBody() { |
- if (JS('bool', '!!#.createTBody', this)) { |
- return this._createTBody(); |
- } |
- var tbody = new Element.tag('tbody'); |
- this.children.add(tbody); |
- return tbody; |
- } |
- |
- @JSName('createTBody') |
- Element _createTBody() native; |
+ Element $dom_insertRow(int index) native; |
} |
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
// for details. All rights reserved. Use of this source code is governed by a |
// BSD-style license that can be found in the LICENSE file. |
@@ -21020,13 +21045,25 @@ class TableElement extends Element native "*HTMLTableElement" { |
@DomName('HTMLTableRowElement') |
class TableRowElement extends Element native "*HTMLTableRowElement" { |
+ @DomName('HTMLTableRowElement.cells') |
+ List<TableCellElement> get cells => |
+ new _WrappedList<TableCellElement>($dom_cells); |
+ |
+ TableCellElement addCell() { |
+ return insertCell(-1); |
+ } |
+ |
+ TableCellElement insertCell(int index) => $dom_insertCell(index); |
+ |
+ |
@DomName('HTMLTableRowElement.HTMLTableRowElement') |
@DocsEditable |
factory TableRowElement() => document.$dom_createElement("tr"); |
+ @JSName('cells') |
@DomName('HTMLTableRowElement.cells') |
@DocsEditable |
- final HtmlCollection cells; |
+ final HtmlCollection $dom_cells; |
@DomName('HTMLTableRowElement.rowIndex') |
@DocsEditable |
@@ -21040,11 +21077,12 @@ class TableRowElement extends Element native "*HTMLTableRowElement" { |
@DocsEditable |
void deleteCell(int index) native; |
+ @JSName('insertCell') |
@DomName('HTMLTableRowElement.insertCell') |
@DocsEditable |
- Element insertCell(int index) native; |
+ Element $dom_insertCell(int index) native; |
} |
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
// for details. All rights reserved. Use of this source code is governed by a |
// BSD-style license that can be found in the LICENSE file. |
@@ -21054,16 +21092,29 @@ class TableRowElement extends Element native "*HTMLTableRowElement" { |
class TableSectionElement extends Element native "*HTMLTableSectionElement" { |
@DomName('HTMLTableSectionElement.rows') |
+ List<TableRowElement> get rows => |
+ new _WrappedList<TableRowElement>($dom_rows); |
+ |
+ TableRowElement addRow() { |
+ return insertRow(-1); |
+ } |
+ |
+ TableRowElement insertRow(int index) => $dom_insertRow(index); |
+ |
+ |
+ @JSName('rows') |
+ @DomName('HTMLTableSectionElement.rows') |
@DocsEditable |
- final HtmlCollection rows; |
+ final HtmlCollection $dom_rows; |
@DomName('HTMLTableSectionElement.deleteRow') |
@DocsEditable |
void deleteRow(int index) native; |
+ @JSName('insertRow') |
@DomName('HTMLTableSectionElement.insertRow') |
@DocsEditable |
- Element insertRow(int index) native; |
+ Element $dom_insertRow(int index) native; |
} |
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
// for details. All rights reserved. Use of this source code is governed by a |
@@ -31471,6 +31522,132 @@ abstract class _Deserializer { |
} |
} |
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+ |
+/** |
+ * A list which just wraps another list, for either intercepting list calls or |
+ * retyping the list (for example, from List<A> to List<B> where B extends A). |
+ */ |
+class _WrappedList<E> implements List<E> { |
+ final List _list; |
+ |
+ _WrappedList(this._list); |
+ |
+ // Iterable APIs |
+ |
+ Iterator<E> get iterator => _list.iterator; |
+ |
+ Iterable map(f(E element)) => _list.map(f); |
+ |
+ Iterable<E> where(bool f(E element)) => _list.where(f); |
+ |
+ Iterable expand(Iterable f(E element)) => _list.expand(f); |
+ |
+ bool contains(E element) => _list.contains(element); |
+ |
+ void forEach(void f(E element)) { _list.forEach(f); } |
+ |
+ dynamic reduce(var initialValue, |
+ dynamic combine(var previousValue, E element)) => |
+ _list.reduce(initialValue, combine); |
+ |
+ bool every(bool f(E element)) => _list.every(f); |
+ |
+ String join([String separator]) => _list.join(separator); |
+ |
+ bool any(bool f(E element)) => _list.any(f); |
+ |
+ List<E> toList() => _list.toList(); |
+ |
+ Set<E> toSet() => _list.toSet(); |
+ |
+ int get length => _list.length; |
+ |
+ E min([int compare(E a, E b)]) => _list.min(compare); |
+ |
+ E max([int compare(E a, E b)]) => _list.max(compare); |
+ |
+ bool get isEmpty => _list.isEmpty; |
+ |
+ Iterable<E> take(int n) => _list.take(n); |
+ |
+ Iterable<E> takeWhile(bool test(E value)) => _list.takeWhile(test); |
+ |
+ Iterable<E> skip(int n) => _list.skip(n); |
+ |
+ Iterable<E> skipWhile(bool test(E value)) => _list.skipWhile(test); |
+ |
+ E get first => _list.first; |
+ |
+ E get last => _list.last; |
+ |
+ E get single => _list.single; |
+ |
+ E firstMatching(bool test(E value), { E orElse() }) => |
+ _list.firstMatching(test, orElse: orElse); |
+ |
+ E lastMatching(bool test(E value), {E orElse()}) => |
+ _list.lastMatching(test, orElse: orElse); |
+ |
+ E singleMatching(bool test(E value)) => _list.singleMatching(test); |
+ |
+ E elementAt(int index) => _list.elementAt(index); |
+ |
+ // Collection APIs |
+ |
+ void add(E element) { _list.add(element); } |
+ |
+ void addAll(Iterable<E> elements) { _list.addAll(elements); } |
+ |
+ void remove(Object element) { _list.remove(element); } |
+ |
+ void removeAll(Iterable elements) { _list.removeAll(elements); } |
+ |
+ void retainAll(Iterable elements) { _list.retainAll(elements); } |
+ |
+ void removeMatching(bool test(E element)) { _list.removeMatching(test); } |
+ |
+ void retainMatching(bool test(E element)) { _list.retainMatching(test); } |
+ |
+ void clear() { _list.clear(); } |
+ |
+ // List APIs |
+ |
+ E operator [](int index) => _list[index]; |
+ |
+ void operator []=(int index, E value) { _list[index] = value; } |
+ |
+ void set length(int newLength) { _list.length = newLength; } |
+ |
+ void addLast(E value) { _list.addLast(value); } |
+ |
+ Iterable<E> get reversed => _list.reversed; |
+ |
+ void sort([int compare(E a, E b)]) { _list.sort(compare); } |
+ |
+ int indexOf(E element, [int start = 0]) => _list.indexOf(element, start); |
+ |
+ int lastIndexOf(E element, [int start]) => _list.lastIndexOf(element, start); |
+ |
+ E removeAt(int index) => _list.removeAt(index); |
+ |
+ E removeLast() => _list.removeLast(); |
+ |
+ List<E> getRange(int start, int length) => _list.getRange(start, length); |
+ |
+ void setRange(int start, int length, List<E> from, [int startFrom]) { |
+ _list.setRange(start, length, from, startFrom); |
+ } |
+ |
+ void removeRange(int start, int length) { _list.removeRange(start, length); } |
+ |
+ void insertRange(int start, int length, [E fill]) { |
+ _list.insertRange(start, length, fill); |
+ } |
+} |
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
// for details. All rights reserved. Use of this source code is governed by a |
// BSD-style license that can be found in the LICENSE file. |