| OLD | NEW |
| 1 /// The Dart HTML library. | 1 /// The Dart HTML library. |
| 2 library dart.dom.html; | 2 library dart.dom.html; |
| 3 | 3 |
| 4 import 'dart:async'; | 4 import 'dart:async'; |
| 5 import 'dart:collection'; | 5 import 'dart:collection'; |
| 6 import 'dart:_collection-dev' hide Symbol; | 6 import 'dart:_collection-dev' hide Symbol; |
| 7 import 'dart:html_common'; | 7 import 'dart:html_common'; |
| 8 import 'dart:indexed_db'; | 8 import 'dart:indexed_db'; |
| 9 import 'dart:isolate'; | 9 import 'dart:isolate'; |
| 10 import 'dart:json' as json; | 10 import 'dart:json' as json; |
| (...skipping 1112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1123 void clip([String winding]) native; | 1123 void clip([String winding]) native; |
| 1124 | 1124 |
| 1125 @DomName('CanvasRenderingContext2D.closePath') | 1125 @DomName('CanvasRenderingContext2D.closePath') |
| 1126 @DocsEditable | 1126 @DocsEditable |
| 1127 void closePath() native; | 1127 void closePath() native; |
| 1128 | 1128 |
| 1129 @DomName('CanvasRenderingContext2D.createImageData') | 1129 @DomName('CanvasRenderingContext2D.createImageData') |
| 1130 @DocsEditable | 1130 @DocsEditable |
| 1131 @Creates('ImageData|=Object') | 1131 @Creates('ImageData|=Object') |
| 1132 ImageData createImageData(num sw, num sh) { | 1132 ImageData createImageData(num sw, num sh) { |
| 1133 return _convertNativeToDart_ImageData(_createImageData_1(sw, sh)); | 1133 return convertNativeToDart_ImageData(_createImageData_1(sw, sh)); |
| 1134 } | 1134 } |
| 1135 @JSName('createImageData') | 1135 @JSName('createImageData') |
| 1136 @DomName('CanvasRenderingContext2D.createImageData') | 1136 @DomName('CanvasRenderingContext2D.createImageData') |
| 1137 @DocsEditable | 1137 @DocsEditable |
| 1138 @Creates('ImageData|=Object') | 1138 @Creates('ImageData|=Object') |
| 1139 _createImageData_1(sw, sh) native; | 1139 _createImageData_1(sw, sh) native; |
| 1140 | 1140 |
| 1141 @DomName('CanvasRenderingContext2D.createImageData') | 1141 @DomName('CanvasRenderingContext2D.createImageData') |
| 1142 @DocsEditable | 1142 @DocsEditable |
| 1143 @Creates('ImageData|=Object') | 1143 @Creates('ImageData|=Object') |
| 1144 ImageData createImageDataFromImageData(ImageData imagedata) { | 1144 ImageData createImageDataFromImageData(ImageData imagedata) { |
| 1145 var imagedata_1 = _convertDartToNative_ImageData(imagedata); | 1145 var imagedata_1 = convertDartToNative_ImageData(imagedata); |
| 1146 return _convertNativeToDart_ImageData(_createImageDataFromImageData_1(imaged
ata_1)); | 1146 return convertNativeToDart_ImageData(_createImageDataFromImageData_1(imageda
ta_1)); |
| 1147 } | 1147 } |
| 1148 @JSName('createImageData') | 1148 @JSName('createImageData') |
| 1149 @DomName('CanvasRenderingContext2D.createImageData') | 1149 @DomName('CanvasRenderingContext2D.createImageData') |
| 1150 @DocsEditable | 1150 @DocsEditable |
| 1151 @Creates('ImageData|=Object') | 1151 @Creates('ImageData|=Object') |
| 1152 _createImageDataFromImageData_1(imagedata) native; | 1152 _createImageDataFromImageData_1(imagedata) native; |
| 1153 | 1153 |
| 1154 @DomName('CanvasRenderingContext2D.createLinearGradient') | 1154 @DomName('CanvasRenderingContext2D.createLinearGradient') |
| 1155 @DocsEditable | 1155 @DocsEditable |
| 1156 CanvasGradient createLinearGradient(num x0, num y0, num x1, num y1) native; | 1156 CanvasGradient createLinearGradient(num x0, num y0, num x1, num y1) native; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1178 @DomName('CanvasRenderingContext2D.getContextAttributes') | 1178 @DomName('CanvasRenderingContext2D.getContextAttributes') |
| 1179 @DocsEditable | 1179 @DocsEditable |
| 1180 // http://wiki.whatwg.org/wiki/CanvasOpaque#Suggested_IDL | 1180 // http://wiki.whatwg.org/wiki/CanvasOpaque#Suggested_IDL |
| 1181 @Experimental | 1181 @Experimental |
| 1182 Canvas2DContextAttributes getContextAttributes() native; | 1182 Canvas2DContextAttributes getContextAttributes() native; |
| 1183 | 1183 |
| 1184 @DomName('CanvasRenderingContext2D.getImageData') | 1184 @DomName('CanvasRenderingContext2D.getImageData') |
| 1185 @DocsEditable | 1185 @DocsEditable |
| 1186 @Creates('ImageData|=Object') | 1186 @Creates('ImageData|=Object') |
| 1187 ImageData getImageData(num sx, num sy, num sw, num sh) { | 1187 ImageData getImageData(num sx, num sy, num sw, num sh) { |
| 1188 return _convertNativeToDart_ImageData(_getImageData_1(sx, sy, sw, sh)); | 1188 return convertNativeToDart_ImageData(_getImageData_1(sx, sy, sw, sh)); |
| 1189 } | 1189 } |
| 1190 @JSName('getImageData') | 1190 @JSName('getImageData') |
| 1191 @DomName('CanvasRenderingContext2D.getImageData') | 1191 @DomName('CanvasRenderingContext2D.getImageData') |
| 1192 @DocsEditable | 1192 @DocsEditable |
| 1193 @Creates('ImageData|=Object') | 1193 @Creates('ImageData|=Object') |
| 1194 _getImageData_1(sx, sy, sw, sh) native; | 1194 _getImageData_1(sx, sy, sw, sh) native; |
| 1195 | 1195 |
| 1196 @DomName('CanvasRenderingContext2D.getLineDash') | 1196 @DomName('CanvasRenderingContext2D.getLineDash') |
| 1197 @DocsEditable | 1197 @DocsEditable |
| 1198 List<num> getLineDash() native; | 1198 List<num> getLineDash() native; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1214 TextMetrics measureText(String text) native; | 1214 TextMetrics measureText(String text) native; |
| 1215 | 1215 |
| 1216 @DomName('CanvasRenderingContext2D.moveTo') | 1216 @DomName('CanvasRenderingContext2D.moveTo') |
| 1217 @DocsEditable | 1217 @DocsEditable |
| 1218 void moveTo(num x, num y) native; | 1218 void moveTo(num x, num y) native; |
| 1219 | 1219 |
| 1220 @DomName('CanvasRenderingContext2D.putImageData') | 1220 @DomName('CanvasRenderingContext2D.putImageData') |
| 1221 @DocsEditable | 1221 @DocsEditable |
| 1222 void putImageData(ImageData imagedata, num dx, num dy, [num dirtyX, num dirtyY
, num dirtyWidth, num dirtyHeight]) { | 1222 void putImageData(ImageData imagedata, num dx, num dy, [num dirtyX, num dirtyY
, num dirtyWidth, num dirtyHeight]) { |
| 1223 if (dirtyX == null && dirtyY == null && dirtyWidth == null && dirtyHeight ==
null) { | 1223 if (dirtyX == null && dirtyY == null && dirtyWidth == null && dirtyHeight ==
null) { |
| 1224 var imagedata_1 = _convertDartToNative_ImageData(imagedata); | 1224 var imagedata_1 = convertDartToNative_ImageData(imagedata); |
| 1225 _putImageData_1(imagedata_1, dx, dy); | 1225 _putImageData_1(imagedata_1, dx, dy); |
| 1226 return; | 1226 return; |
| 1227 } | 1227 } |
| 1228 if (dirtyHeight != null && dirtyWidth != null && dirtyY != null && dirtyX !=
null) { | 1228 if (dirtyHeight != null && dirtyWidth != null && dirtyY != null && dirtyX !=
null) { |
| 1229 var imagedata_2 = _convertDartToNative_ImageData(imagedata); | 1229 var imagedata_2 = convertDartToNative_ImageData(imagedata); |
| 1230 _putImageData_2(imagedata_2, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeig
ht); | 1230 _putImageData_2(imagedata_2, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeig
ht); |
| 1231 return; | 1231 return; |
| 1232 } | 1232 } |
| 1233 throw new ArgumentError("Incorrect number or type of arguments"); | 1233 throw new ArgumentError("Incorrect number or type of arguments"); |
| 1234 } | 1234 } |
| 1235 @JSName('putImageData') | 1235 @JSName('putImageData') |
| 1236 @DomName('CanvasRenderingContext2D.putImageData') | 1236 @DomName('CanvasRenderingContext2D.putImageData') |
| 1237 @DocsEditable | 1237 @DocsEditable |
| 1238 void _putImageData_1(imagedata, dx, dy) native; | 1238 void _putImageData_1(imagedata, dx, dy) native; |
| 1239 @JSName('putImageData') | 1239 @JSName('putImageData') |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1293 @DocsEditable | 1293 @DocsEditable |
| 1294 void translate(num tx, num ty) native; | 1294 void translate(num tx, num ty) native; |
| 1295 | 1295 |
| 1296 @DomName('CanvasRenderingContext2D.webkitGetImageDataHD') | 1296 @DomName('CanvasRenderingContext2D.webkitGetImageDataHD') |
| 1297 @DocsEditable | 1297 @DocsEditable |
| 1298 @SupportedBrowser(SupportedBrowser.CHROME) | 1298 @SupportedBrowser(SupportedBrowser.CHROME) |
| 1299 @SupportedBrowser(SupportedBrowser.SAFARI) | 1299 @SupportedBrowser(SupportedBrowser.SAFARI) |
| 1300 @Experimental | 1300 @Experimental |
| 1301 @Creates('ImageData|=Object') | 1301 @Creates('ImageData|=Object') |
| 1302 ImageData getImageDataHD(num sx, num sy, num sw, num sh) { | 1302 ImageData getImageDataHD(num sx, num sy, num sw, num sh) { |
| 1303 return _convertNativeToDart_ImageData(_getImageDataHD_1(sx, sy, sw, sh)); | 1303 return convertNativeToDart_ImageData(_getImageDataHD_1(sx, sy, sw, sh)); |
| 1304 } | 1304 } |
| 1305 @JSName('webkitGetImageDataHD') | 1305 @JSName('webkitGetImageDataHD') |
| 1306 @DomName('CanvasRenderingContext2D.webkitGetImageDataHD') | 1306 @DomName('CanvasRenderingContext2D.webkitGetImageDataHD') |
| 1307 @DocsEditable | 1307 @DocsEditable |
| 1308 @SupportedBrowser(SupportedBrowser.CHROME) | 1308 @SupportedBrowser(SupportedBrowser.CHROME) |
| 1309 @SupportedBrowser(SupportedBrowser.SAFARI) | 1309 @SupportedBrowser(SupportedBrowser.SAFARI) |
| 1310 @Experimental | 1310 @Experimental |
| 1311 @Creates('ImageData|=Object') | 1311 @Creates('ImageData|=Object') |
| 1312 _getImageDataHD_1(sx, sy, sw, sh) native; | 1312 _getImageDataHD_1(sx, sy, sw, sh) native; |
| 1313 | 1313 |
| 1314 @DomName('CanvasRenderingContext2D.webkitPutImageDataHD') | 1314 @DomName('CanvasRenderingContext2D.webkitPutImageDataHD') |
| 1315 @DocsEditable | 1315 @DocsEditable |
| 1316 @SupportedBrowser(SupportedBrowser.CHROME) | 1316 @SupportedBrowser(SupportedBrowser.CHROME) |
| 1317 @SupportedBrowser(SupportedBrowser.SAFARI) | 1317 @SupportedBrowser(SupportedBrowser.SAFARI) |
| 1318 @Experimental | 1318 @Experimental |
| 1319 void putImageDataHD(ImageData imagedata, num dx, num dy, [num dirtyX, num dirt
yY, num dirtyWidth, num dirtyHeight]) { | 1319 void putImageDataHD(ImageData imagedata, num dx, num dy, [num dirtyX, num dirt
yY, num dirtyWidth, num dirtyHeight]) { |
| 1320 if (dirtyX == null && dirtyY == null && dirtyWidth == null && dirtyHeight ==
null) { | 1320 if (dirtyX == null && dirtyY == null && dirtyWidth == null && dirtyHeight ==
null) { |
| 1321 var imagedata_1 = _convertDartToNative_ImageData(imagedata); | 1321 var imagedata_1 = convertDartToNative_ImageData(imagedata); |
| 1322 _putImageDataHD_1(imagedata_1, dx, dy); | 1322 _putImageDataHD_1(imagedata_1, dx, dy); |
| 1323 return; | 1323 return; |
| 1324 } | 1324 } |
| 1325 if (dirtyHeight != null && dirtyWidth != null && dirtyY != null && dirtyX !=
null) { | 1325 if (dirtyHeight != null && dirtyWidth != null && dirtyY != null && dirtyX !=
null) { |
| 1326 var imagedata_2 = _convertDartToNative_ImageData(imagedata); | 1326 var imagedata_2 = convertDartToNative_ImageData(imagedata); |
| 1327 _putImageDataHD_2(imagedata_2, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHe
ight); | 1327 _putImageDataHD_2(imagedata_2, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHe
ight); |
| 1328 return; | 1328 return; |
| 1329 } | 1329 } |
| 1330 throw new ArgumentError("Incorrect number or type of arguments"); | 1330 throw new ArgumentError("Incorrect number or type of arguments"); |
| 1331 } | 1331 } |
| 1332 @JSName('webkitPutImageDataHD') | 1332 @JSName('webkitPutImageDataHD') |
| 1333 @DomName('CanvasRenderingContext2D.webkitPutImageDataHD') | 1333 @DomName('CanvasRenderingContext2D.webkitPutImageDataHD') |
| 1334 @DocsEditable | 1334 @DocsEditable |
| 1335 @SupportedBrowser(SupportedBrowser.CHROME) | 1335 @SupportedBrowser(SupportedBrowser.CHROME) |
| 1336 @SupportedBrowser(SupportedBrowser.SAFARI) | 1336 @SupportedBrowser(SupportedBrowser.SAFARI) |
| (...skipping 6483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7820 * document.body.insertAdjacentHtml('afterBegin', html); | 7820 * document.body.insertAdjacentHtml('afterBegin', html); |
| 7821 * var createdElement = document.body.children[0]; | 7821 * var createdElement = document.body.children[0]; |
| 7822 * print(createdElement.classes[0]); // Prints 'something' | 7822 * print(createdElement.classes[0]); // Prints 'something' |
| 7823 * | 7823 * |
| 7824 * See also: | 7824 * See also: |
| 7825 * | 7825 * |
| 7826 * * [insertAdjacentText] | 7826 * * [insertAdjacentText] |
| 7827 * * [insertAdjacentElement] | 7827 * * [insertAdjacentElement] |
| 7828 */ | 7828 */ |
| 7829 void insertAdjacentHtml(String where, String html) { | 7829 void insertAdjacentHtml(String where, String html) { |
| 7830 if (JS('bool', '!!#.insertAdjacentHtml', this)) { | 7830 if (JS('bool', '!!#.insertAdjacentHTML', this)) { |
| 7831 _insertAdjacentHtml(where, html); | 7831 _insertAdjacentHtml(where, html); |
| 7832 } else { | 7832 } else { |
| 7833 _insertAdjacentNode(where, new DocumentFragment.html(html)); | 7833 _insertAdjacentNode(where, new DocumentFragment.html(html)); |
| 7834 } | 7834 } |
| 7835 } | 7835 } |
| 7836 | 7836 |
| 7837 @JSName('insertAdjacentHTML') | 7837 @JSName('insertAdjacentHTML') |
| 7838 void _insertAdjacentHTML(String where, String text) native; | 7838 void _insertAdjacentHtml(String where, String text) native; |
| 7839 | 7839 |
| 7840 /** | 7840 /** |
| 7841 * Inserts [element] into the DOM at the specified location. | 7841 * Inserts [element] into the DOM at the specified location. |
| 7842 * | 7842 * |
| 7843 * To see the possible values for [where], read the doc for | 7843 * To see the possible values for [where], read the doc for |
| 7844 * [insertAdjacentHtml]. | 7844 * [insertAdjacentHtml]. |
| 7845 * | 7845 * |
| 7846 * See also: | 7846 * See also: |
| 7847 * | 7847 * |
| 7848 * * [insertAdjacentHtml] | 7848 * * [insertAdjacentHtml] |
| (...skipping 3090 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10939 * * [pushState] | 10939 * * [pushState] |
| 10940 * * [replaceState] | 10940 * * [replaceState] |
| 10941 * * [state] | 10941 * * [state] |
| 10942 */ | 10942 */ |
| 10943 static bool get supportsState => JS('bool', '!!window.history.pushState'); | 10943 static bool get supportsState => JS('bool', '!!window.history.pushState'); |
| 10944 | 10944 |
| 10945 @DomName('History.length') | 10945 @DomName('History.length') |
| 10946 @DocsEditable | 10946 @DocsEditable |
| 10947 final int length; | 10947 final int length; |
| 10948 | 10948 |
| 10949 dynamic get state => _convertNativeToDart_SerializedScriptValue(this._get_stat
e); | 10949 dynamic get state => convertNativeToDart_SerializedScriptValue(this._get_state
); |
| 10950 @JSName('state') | 10950 @JSName('state') |
| 10951 @DomName('History.state') | 10951 @DomName('History.state') |
| 10952 @DocsEditable | 10952 @DocsEditable |
| 10953 @annotation_Creates_SerializedScriptValue | 10953 @annotation_Creates_SerializedScriptValue |
| 10954 @annotation_Returns_SerializedScriptValue | 10954 @annotation_Returns_SerializedScriptValue |
| 10955 final dynamic _get_state; | 10955 final dynamic _get_state; |
| 10956 | 10956 |
| 10957 @DomName('History.back') | 10957 @DomName('History.back') |
| 10958 @DocsEditable | 10958 @DocsEditable |
| 10959 void back() native; | 10959 void back() native; |
| (...skipping 12453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 23413 String _returnValue; | 23413 String _returnValue; |
| 23414 | 23414 |
| 23415 _BeforeUnloadEvent(Event base): super(base); | 23415 _BeforeUnloadEvent(Event base): super(base); |
| 23416 | 23416 |
| 23417 String get returnValue => _returnValue; | 23417 String get returnValue => _returnValue; |
| 23418 | 23418 |
| 23419 void set returnValue(String value) { | 23419 void set returnValue(String value) { |
| 23420 _returnValue = value; | 23420 _returnValue = value; |
| 23421 // FF and IE use the value as the return value, Chrome will return this from | 23421 // FF and IE use the value as the return value, Chrome will return this from |
| 23422 // the event callback function. | 23422 // the event callback function. |
| 23423 if (JS('bool', '("returnValue" in #)', _base)) { | 23423 if (JS('bool', '("returnValue" in #)', wrapped)) { |
| 23424 JS('void', '#.returnValue = #', _base, value); | 23424 JS('void', '#.returnValue = #', wrapped, value); |
| 23425 } | 23425 } |
| 23426 } | 23426 } |
| 23427 } | 23427 } |
| 23428 | 23428 |
| 23429 class _BeforeUnloadEventStreamProvider implements | 23429 class _BeforeUnloadEventStreamProvider implements |
| 23430 EventStreamProvider<BeforeUnloadEvent> { | 23430 EventStreamProvider<BeforeUnloadEvent> { |
| 23431 final String _eventType; | 23431 final String _eventType; |
| 23432 | 23432 |
| 23433 const _BeforeUnloadEventStreamProvider(this._eventType); | 23433 const _BeforeUnloadEventStreamProvider(this._eventType); |
| 23434 | 23434 |
| (...skipping 5553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 28988 return e; | 28988 return e; |
| 28989 } | 28989 } |
| 28990 | 28990 |
| 28991 EventTarget _convertDartToNative_EventTarget(e) { | 28991 EventTarget _convertDartToNative_EventTarget(e) { |
| 28992 if (e is _DOMWindowCrossFrame) { | 28992 if (e is _DOMWindowCrossFrame) { |
| 28993 return e._window; | 28993 return e._window; |
| 28994 } else { | 28994 } else { |
| 28995 return e; | 28995 return e; |
| 28996 } | 28996 } |
| 28997 } | 28997 } |
| 28998 | |
| 28999 // Conversions for ImageData | |
| 29000 // | |
| 29001 // On Firefox, the returned ImageData is a plain object. | |
| 29002 | |
| 29003 class _TypedImageData implements ImageData { | |
| 29004 final Uint8ClampedList data; | |
| 29005 final int height; | |
| 29006 final int width; | |
| 29007 | |
| 29008 _TypedImageData(this.data, this.height, this.width); | |
| 29009 } | |
| 29010 | |
| 29011 ImageData _convertNativeToDart_ImageData(nativeImageData) { | |
| 29012 | |
| 29013 // None of the native getters that return ImageData have the type ImageData | |
| 29014 // since that is incorrect for FireFox (which returns a plain Object). So we | |
| 29015 // need something that tells the compiler that the ImageData class has been | |
| 29016 // instantiated. | |
| 29017 // TODO(sra): Remove this when all the ImageData returning APIs have been | |
| 29018 // annotated as returning the union ImageData + Object. | |
| 29019 JS('ImageData', '0'); | |
| 29020 | |
| 29021 if (nativeImageData is ImageData) return nativeImageData; | |
| 29022 | |
| 29023 // On Firefox the above test fails because imagedata is a plain object. | |
| 29024 // So we create a _TypedImageData. | |
| 29025 | |
| 29026 return new _TypedImageData( | |
| 29027 JS('var', '#.data', nativeImageData), | |
| 29028 JS('var', '#.height', nativeImageData), | |
| 29029 JS('var', '#.width', nativeImageData)); | |
| 29030 } | |
| 29031 | |
| 29032 // We can get rid of this conversion if _TypedImageData implements the fields | |
| 29033 // with native names. | |
| 29034 _convertDartToNative_ImageData(ImageData imageData) { | |
| 29035 if (imageData is _TypedImageData) { | |
| 29036 return JS('', '{data: #, height: #, width: #}', | |
| 29037 imageData.data, imageData.height, imageData.width); | |
| 29038 } | |
| 29039 return imageData; | |
| 29040 } | |
| 29041 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 28998 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 29042 // for details. All rights reserved. Use of this source code is governed by a | 28999 // for details. All rights reserved. Use of this source code is governed by a |
| 29043 // BSD-style license that can be found in the LICENSE file. | 29000 // BSD-style license that can be found in the LICENSE file. |
| 29044 | 29001 |
| 29045 | 29002 |
| 29046 // TODO(vsm): Unify with Dartium version. | 29003 // TODO(vsm): Unify with Dartium version. |
| 29047 class _DOMWindowCrossFrame implements WindowBase { | 29004 class _DOMWindowCrossFrame implements WindowBase { |
| 29048 // Private window. Note, this is a window in another frame, so it | 29005 // Private window. Note, this is a window in another frame, so it |
| 29049 // cannot be typed as "Window" as its prototype is not patched | 29006 // cannot be typed as "Window" as its prototype is not patched |
| 29050 // properly. Its fields and methods can only be accessed via JavaScript. | 29007 // properly. Its fields and methods can only be accessed via JavaScript. |
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 29400 _position = nextPosition; | 29357 _position = nextPosition; |
| 29401 return true; | 29358 return true; |
| 29402 } | 29359 } |
| 29403 _current = null; | 29360 _current = null; |
| 29404 _position = _array.length; | 29361 _position = _array.length; |
| 29405 return false; | 29362 return false; |
| 29406 } | 29363 } |
| 29407 | 29364 |
| 29408 T get current => _current; | 29365 T get current => _current; |
| 29409 } | 29366 } |
| OLD | NEW |