mirror of
https://github.com/dart-lang/sdk
synced 2024-09-05 08:24:39 +00:00
Trying to fix SQLResultSetRowList's subscript operator to do type conversion
BUG= Review URL: https://codereview.chromium.org/1779023002 .
This commit is contained in:
parent
f56704cd41
commit
051451d7e6
|
@ -210,7 +210,7 @@ class SqlResultSet extends Interceptor {
|
|||
// http://www.w3.org/TR/webdatabase/#sqlresultsetrowlist
|
||||
@Experimental() // deprecated
|
||||
@Native("SQLResultSetRowList")
|
||||
class SqlResultSetRowList extends Interceptor with ListMixin<Map>, ImmutableListMixin<Map> implements JavaScriptIndexingBehavior, List<Map> {
|
||||
class SqlResultSetRowList extends Interceptor with ListMixin<Map>, ImmutableListMixin<Map> implements List<Map> {
|
||||
// To suppress missing implicit constructor warnings.
|
||||
factory SqlResultSetRowList._() { throw new UnsupportedError("Not supported"); }
|
||||
|
||||
|
@ -222,7 +222,7 @@ class SqlResultSetRowList extends Interceptor with ListMixin<Map>, ImmutableList
|
|||
if (JS("bool", "# >>> 0 !== # || # >= #", index,
|
||||
index, index, length))
|
||||
throw new RangeError.index(index, this);
|
||||
return JS("Map", "#[#]", this, index);
|
||||
return this.item(index);
|
||||
}
|
||||
void operator[]=(int index, Map value) {
|
||||
throw new UnsupportedError("Cannot assign element of immutable List.");
|
||||
|
@ -264,8 +264,13 @@ class SqlResultSetRowList extends Interceptor with ListMixin<Map>, ImmutableList
|
|||
|
||||
@DomName('SQLResultSetRowList.item')
|
||||
@DocsEditable()
|
||||
@Creates('=Object')
|
||||
Object item(int index) native;
|
||||
Map item(int index) {
|
||||
return convertNativeToDart_Dictionary(_item_1(index));
|
||||
}
|
||||
@JSName('item')
|
||||
@DomName('SQLResultSetRowList.item')
|
||||
@DocsEditable()
|
||||
_item_1(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
|
||||
|
|
|
@ -15095,6 +15095,12 @@
|
|||
},
|
||||
"encoding": {
|
||||
"support_level": "untriaged"
|
||||
},
|
||||
"fatal": {
|
||||
"support_level": "untriaged"
|
||||
},
|
||||
"ignoreBOM": {
|
||||
"support_level": "untriaged"
|
||||
}
|
||||
},
|
||||
"support_level": "untriaged"
|
||||
|
|
|
@ -329,8 +329,6 @@ _dart2js_annotations = monitored.Dict('dartmetadata._dart2js_annotations', {
|
|||
"@Returns('NodeList|HtmlCollection')",
|
||||
],
|
||||
|
||||
'SQLResultSetRowList.item': ["@Creates('=Object')"],
|
||||
|
||||
# Touch targets are Elements in a Document, or the Document.
|
||||
'Touch.target': [
|
||||
"@Creates('Element|Document')",
|
||||
|
|
|
@ -721,6 +721,9 @@ dart2js_conversions = monitored.Dict('generator.dart2js_conversions', {
|
|||
'any set IDBObjectStore.put': _serialize_SSV,
|
||||
'any set IDBCursor.update': _serialize_SSV,
|
||||
|
||||
'any get SQLResultSetRowList.item' :
|
||||
Conversion('convertNativeToDart_Dictionary', 'dynamic', 'Map'),
|
||||
|
||||
# postMessage
|
||||
'SerializedScriptValue set': _serialize_SSV,
|
||||
'any set CompositorWorkerGlobalScope.postMessage': _serialize_SSV,
|
||||
|
|
|
@ -828,7 +828,8 @@ class Dart2JSBackend(HtmlDartGenerator):
|
|||
ext_attrs = self._interface.ext_attrs
|
||||
has_indexed_getter = 'CustomIndexedGetter' in ext_attrs
|
||||
for operation in self._interface.operations:
|
||||
if operation.id == 'item' and 'getter' in operation.specials:
|
||||
if operation.id == 'item' and 'getter' in operation.specials \
|
||||
and not self._OperationRequiresConversions(operation):
|
||||
has_indexed_getter = True
|
||||
break
|
||||
return has_indexed_getter
|
||||
|
|
Loading…
Reference in a new issue