| 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 395399f64c9ca453d89c7182bfd5d8f4b619550f..09f9f04a2c80669806c812e68ce538697551ddf3 100644
|
| --- a/sdk/lib/html/dart2js/html_dart2js.dart
|
| +++ b/sdk/lib/html/dart2js/html_dart2js.dart
|
| @@ -1,6 +1,5 @@
|
| library html;
|
|
|
| -import 'dart:html_common';
|
| import 'dart:isolate';
|
| import 'dart:json';
|
| import 'dart:svg' as svg;
|
| @@ -4764,7 +4763,8 @@ class Clipboard native "*Clipboard" {
|
| String effectAllowed;
|
|
|
| /// @domName Clipboard.files; @docsEditable true
|
| - final FileList files;
|
| + @Returns('_FileList') @Creates('_FileList')
|
| + final List<File> files;
|
|
|
| /// @domName Clipboard.items; @docsEditable true
|
| final DataTransferItemList items;
|
| @@ -5266,18 +5266,18 @@ class DOMMimeTypeArray implements JavaScriptIndexingBehavior, List<DOMMimeType>
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(DOMMimeType element) => Collections.contains(this, element);
|
| + bool contains(DOMMimeType element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(DOMMimeType element)) => Collections.forEach(this, f);
|
| + void forEach(void f(DOMMimeType element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(DOMMimeType element)) => Collections.map(this, [], f);
|
| + Collection map(f(DOMMimeType element)) => _Collections.map(this, [], f);
|
|
|
| Collection<DOMMimeType> filter(bool f(DOMMimeType element)) =>
|
| - Collections.filter(this, <DOMMimeType>[], f);
|
| + _Collections.filter(this, <DOMMimeType>[], f);
|
|
|
| - bool every(bool f(DOMMimeType element)) => Collections.every(this, f);
|
| + bool every(bool f(DOMMimeType element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(DOMMimeType element)) => Collections.some(this, f);
|
| + bool some(bool f(DOMMimeType element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -5407,18 +5407,18 @@ class DOMPluginArray implements JavaScriptIndexingBehavior, List<DOMPlugin> nati
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(DOMPlugin element) => Collections.contains(this, element);
|
| + bool contains(DOMPlugin element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(DOMPlugin element)) => Collections.forEach(this, f);
|
| + void forEach(void f(DOMPlugin element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(DOMPlugin element)) => Collections.map(this, [], f);
|
| + Collection map(f(DOMPlugin element)) => _Collections.map(this, [], f);
|
|
|
| Collection<DOMPlugin> filter(bool f(DOMPlugin element)) =>
|
| - Collections.filter(this, <DOMPlugin>[], f);
|
| + _Collections.filter(this, <DOMPlugin>[], f);
|
|
|
| - bool every(bool f(DOMPlugin element)) => Collections.every(this, f);
|
| + bool every(bool f(DOMPlugin element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(DOMPlugin element)) => Collections.some(this, f);
|
| + bool some(bool f(DOMPlugin element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -5786,11 +5786,11 @@ class DedicatedWorkerContext extends WorkerContext native "*DedicatedWorkerConte
|
| /// @domName DedicatedWorkerContext.postMessage; @docsEditable true
|
| void postMessage(/*any*/ message, [List messagePorts]) {
|
| if (?messagePorts) {
|
| - var message_1 = convertDartToNative_SerializedScriptValue(message);
|
| + var message_1 = _convertDartToNative_SerializedScriptValue(message);
|
| _postMessage_1(message_1, messagePorts);
|
| return;
|
| }
|
| - var message_2 = convertDartToNative_SerializedScriptValue(message);
|
| + var message_2 = _convertDartToNative_SerializedScriptValue(message);
|
| _postMessage_2(message_2);
|
| return;
|
| }
|
| @@ -5875,17 +5875,17 @@ class DirectoryEntry extends Entry native "*DirectoryEntry" {
|
| /// @domName DirectoryEntry.getDirectory; @docsEditable true
|
| void getDirectory(String path, {Map options, EntryCallback successCallback, ErrorCallback errorCallback}) {
|
| if (?errorCallback) {
|
| - var options_1 = convertDartToNative_Dictionary(options);
|
| + var options_1 = _convertDartToNative_Dictionary(options);
|
| _getDirectory_1(path, options_1, successCallback, errorCallback);
|
| return;
|
| }
|
| if (?successCallback) {
|
| - var options_2 = convertDartToNative_Dictionary(options);
|
| + var options_2 = _convertDartToNative_Dictionary(options);
|
| _getDirectory_2(path, options_2, successCallback);
|
| return;
|
| }
|
| if (?options) {
|
| - var options_3 = convertDartToNative_Dictionary(options);
|
| + var options_3 = _convertDartToNative_Dictionary(options);
|
| _getDirectory_3(path, options_3);
|
| return;
|
| }
|
| @@ -5900,17 +5900,17 @@ class DirectoryEntry extends Entry native "*DirectoryEntry" {
|
| /// @domName DirectoryEntry.getFile; @docsEditable true
|
| void getFile(String path, {Map options, EntryCallback successCallback, ErrorCallback errorCallback}) {
|
| if (?errorCallback) {
|
| - var options_1 = convertDartToNative_Dictionary(options);
|
| + var options_1 = _convertDartToNative_Dictionary(options);
|
| _getFile_1(path, options_1, successCallback, errorCallback);
|
| return;
|
| }
|
| if (?successCallback) {
|
| - var options_2 = convertDartToNative_Dictionary(options);
|
| + var options_2 = _convertDartToNative_Dictionary(options);
|
| _getFile_2(path, options_2, successCallback);
|
| return;
|
| }
|
| if (?options) {
|
| - var options_3 = convertDartToNative_Dictionary(options);
|
| + var options_3 = _convertDartToNative_Dictionary(options);
|
| _getFile_3(path, options_3);
|
| return;
|
| }
|
| @@ -5938,14 +5938,14 @@ class DirectoryEntrySync extends EntrySync native "*DirectoryEntrySync" {
|
|
|
| /// @domName DirectoryEntrySync.getDirectory; @docsEditable true
|
| DirectoryEntrySync getDirectory(String path, Map flags) {
|
| - var flags_1 = convertDartToNative_Dictionary(flags);
|
| + var flags_1 = _convertDartToNative_Dictionary(flags);
|
| return _getDirectory_1(path, flags_1);
|
| }
|
| DirectoryEntrySync _getDirectory_1(path, flags) native "getDirectory";
|
|
|
| /// @domName DirectoryEntrySync.getFile; @docsEditable true
|
| FileEntrySync getFile(String path, Map flags) {
|
| - var flags_1 = convertDartToNative_Dictionary(flags);
|
| + var flags_1 = _convertDartToNative_Dictionary(flags);
|
| return _getFile_1(path, flags_1);
|
| }
|
| FileEntrySync _getFile_1(path, flags) native "getFile";
|
| @@ -8050,105 +8050,6 @@ class FileException native "*FileException" {
|
| // BSD-style license that can be found in the LICENSE file.
|
|
|
|
|
| -/// @domName FileList; @docsEditable true
|
| -class FileList implements JavaScriptIndexingBehavior, List<File> native "*FileList" {
|
| -
|
| - /// @domName FileList.length; @docsEditable true
|
| - final int length;
|
| -
|
| - File operator[](int index) => JS("File", "#[#]", this, index);
|
| -
|
| - void operator[]=(int index, File value) {
|
| - throw new UnsupportedError("Cannot assign element of immutable List.");
|
| - }
|
| - // -- start List<File> mixins.
|
| - // File is the element type.
|
| -
|
| - // From Iterable<File>:
|
| -
|
| - Iterator<File> iterator() {
|
| - // Note: NodeLists are not fixed size. And most probably length shouldn't
|
| - // be cached in both iterator _and_ forEach method. For now caching it
|
| - // for consistency.
|
| - return new FixedSizeListIterator<File>(this);
|
| - }
|
| -
|
| - // From Collection<File>:
|
| -
|
| - void add(File value) {
|
| - throw new UnsupportedError("Cannot add to immutable List.");
|
| - }
|
| -
|
| - void addLast(File value) {
|
| - throw new UnsupportedError("Cannot add to immutable List.");
|
| - }
|
| -
|
| - void addAll(Collection<File> collection) {
|
| - throw new UnsupportedError("Cannot add to immutable List.");
|
| - }
|
| -
|
| - bool contains(File element) => Collections.contains(this, element);
|
| -
|
| - void forEach(void f(File element)) => Collections.forEach(this, f);
|
| -
|
| - Collection map(f(File element)) => Collections.map(this, [], f);
|
| -
|
| - Collection<File> filter(bool f(File element)) =>
|
| - Collections.filter(this, <File>[], f);
|
| -
|
| - bool every(bool f(File element)) => Collections.every(this, f);
|
| -
|
| - bool some(bool f(File element)) => Collections.some(this, f);
|
| -
|
| - bool get isEmpty => this.length == 0;
|
| -
|
| - // From List<File>:
|
| -
|
| - void sort([Comparator<File> compare = Comparable.compare]) {
|
| - throw new UnsupportedError("Cannot sort immutable List.");
|
| - }
|
| -
|
| - int indexOf(File element, [int start = 0]) =>
|
| - _Lists.indexOf(this, element, start, this.length);
|
| -
|
| - int lastIndexOf(File element, [int start]) {
|
| - if (start == null) start = length - 1;
|
| - return _Lists.lastIndexOf(this, element, start);
|
| - }
|
| -
|
| - File get first => this[0];
|
| -
|
| - File get last => this[length - 1];
|
| -
|
| - File removeLast() {
|
| - throw new UnsupportedError("Cannot removeLast on immutable List.");
|
| - }
|
| -
|
| - void setRange(int start, int rangeLength, List<File> from, [int startFrom]) {
|
| - throw new UnsupportedError("Cannot setRange on immutable List.");
|
| - }
|
| -
|
| - void removeRange(int start, int rangeLength) {
|
| - throw new UnsupportedError("Cannot removeRange on immutable List.");
|
| - }
|
| -
|
| - void insertRange(int start, int rangeLength, [File initialValue]) {
|
| - throw new UnsupportedError("Cannot insertRange on immutable List.");
|
| - }
|
| -
|
| - List<File> getRange(int start, int rangeLength) =>
|
| - _Lists.getRange(this, start, rangeLength, <File>[]);
|
| -
|
| - // -- end List<File> mixins.
|
| -
|
| - /// @domName FileList.item; @docsEditable true
|
| - File item(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
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -
|
| /// @domName FileReader; @docsEditable true
|
| class FileReader extends EventTarget native "*FileReader" {
|
|
|
| @@ -8392,18 +8293,18 @@ class Float32Array extends ArrayBufferView implements JavaScriptIndexingBehavior
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(num element) => Collections.contains(this, element);
|
| + bool contains(num element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(num element)) => Collections.forEach(this, f);
|
| + void forEach(void f(num element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(num element)) => Collections.map(this, [], f);
|
| + Collection map(f(num element)) => _Collections.map(this, [], f);
|
|
|
| Collection<num> filter(bool f(num element)) =>
|
| - Collections.filter(this, <num>[], f);
|
| + _Collections.filter(this, <num>[], f);
|
|
|
| - bool every(bool f(num element)) => Collections.every(this, f);
|
| + bool every(bool f(num element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(num element)) => Collections.some(this, f);
|
| + bool some(bool f(num element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -8502,18 +8403,18 @@ class Float64Array extends ArrayBufferView implements JavaScriptIndexingBehavior
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(num element) => Collections.contains(this, element);
|
| + bool contains(num element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(num element)) => Collections.forEach(this, f);
|
| + void forEach(void f(num element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(num element)) => Collections.map(this, [], f);
|
| + Collection map(f(num element)) => _Collections.map(this, [], f);
|
|
|
| Collection<num> filter(bool f(num element)) =>
|
| - Collections.filter(this, <num>[], f);
|
| + _Collections.filter(this, <num>[], f);
|
|
|
| - bool every(bool f(num element)) => Collections.every(this, f);
|
| + bool every(bool f(num element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(num element)) => Collections.some(this, f);
|
| + bool some(bool f(num element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -8857,18 +8758,18 @@ class HTMLAllCollection implements JavaScriptIndexingBehavior, List<Node> native
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(Node element) => Collections.contains(this, element);
|
| + bool contains(Node element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(Node element)) => Collections.forEach(this, f);
|
| + void forEach(void f(Node element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(Node element)) => Collections.map(this, [], f);
|
| + Collection map(f(Node element)) => _Collections.map(this, [], f);
|
|
|
| Collection<Node> filter(bool f(Node element)) =>
|
| - Collections.filter(this, <Node>[], f);
|
| + _Collections.filter(this, <Node>[], f);
|
|
|
| - bool every(bool f(Node element)) => Collections.every(this, f);
|
| + bool every(bool f(Node element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(Node element)) => Collections.some(this, f);
|
| + bool some(bool f(Node element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -8963,18 +8864,18 @@ class HTMLCollection implements JavaScriptIndexingBehavior, List<Node> native "*
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(Node element) => Collections.contains(this, element);
|
| + bool contains(Node element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(Node element)) => Collections.forEach(this, f);
|
| + void forEach(void f(Node element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(Node element)) => Collections.map(this, [], f);
|
| + Collection map(f(Node element)) => _Collections.map(this, [], f);
|
|
|
| Collection<Node> filter(bool f(Node element)) =>
|
| - Collections.filter(this, <Node>[], f);
|
| + _Collections.filter(this, <Node>[], f);
|
|
|
| - bool every(bool f(Node element)) => Collections.every(this, f);
|
| + bool every(bool f(Node element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(Node element)) => Collections.some(this, f);
|
| + bool some(bool f(Node element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -9436,7 +9337,7 @@ class IDBCursor native "*IDBCursor" {
|
|
|
| /// @domName IDBCursor.update; @docsEditable true
|
| IDBRequest update(/*any*/ value) {
|
| - var value_1 = convertDartToNative_SerializedScriptValue(value);
|
| + var value_1 = _convertDartToNative_SerializedScriptValue(value);
|
| return _update_1(value_1);
|
| }
|
| IDBRequest _update_1(value) native "update";
|
| @@ -9450,7 +9351,7 @@ class IDBCursor native "*IDBCursor" {
|
| class IDBCursorWithValue extends IDBCursor native "*IDBCursorWithValue" {
|
|
|
| /// @domName IDBCursorWithValue.value; @docsEditable true
|
| - @annotation_Creates_SerializedScriptValue @annotation_Returns_SerializedScriptValue
|
| + @_annotation_Creates_SerializedScriptValue @_annotation_Returns_SerializedScriptValue
|
| final Object value;
|
| }
|
| // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
| @@ -9526,7 +9427,7 @@ class IDBDatabase extends EventTarget native "*IDBDatabase" {
|
| /// @domName IDBDatabase.createObjectStore; @docsEditable true
|
| IDBObjectStore createObjectStore(String name, [Map options]) {
|
| if (?options) {
|
| - var options_1 = convertDartToNative_Dictionary(options);
|
| + var options_1 = _convertDartToNative_Dictionary(options);
|
| return _createObjectStore_1(name, options_1);
|
| }
|
| return _createObjectStore_2(name);
|
| @@ -9684,9 +9585,9 @@ class IDBIndex native "*IDBIndex" {
|
| }
|
| throw new ArgumentError("Incorrect number or type of arguments");
|
| }
|
| - @Returns('IDBRequest') @Creates('IDBRequest') @annotation_Creates_SerializedScriptValue
|
| + @Returns('IDBRequest') @Creates('IDBRequest') @_annotation_Creates_SerializedScriptValue
|
| IDBRequest _get_1(IDBKeyRange key) native "get";
|
| - @Returns('IDBRequest') @Creates('IDBRequest') @annotation_Creates_SerializedScriptValue
|
| + @Returns('IDBRequest') @Creates('IDBRequest') @_annotation_Creates_SerializedScriptValue
|
| IDBRequest _get_2(key) native "get";
|
|
|
| /// @domName IDBIndex.getKey; @docsEditable true
|
| @@ -9700,9 +9601,9 @@ class IDBIndex native "*IDBIndex" {
|
| }
|
| throw new ArgumentError("Incorrect number or type of arguments");
|
| }
|
| - @Returns('IDBRequest') @Creates('IDBRequest') @annotation_Creates_SerializedScriptValue @Creates('IDBObjectStore')
|
| + @Returns('IDBRequest') @Creates('IDBRequest') @_annotation_Creates_SerializedScriptValue @Creates('IDBObjectStore')
|
| IDBRequest _getKey_1(IDBKeyRange key) native "getKey";
|
| - @Returns('IDBRequest') @Creates('IDBRequest') @annotation_Creates_SerializedScriptValue @Creates('IDBObjectStore')
|
| + @Returns('IDBRequest') @Creates('IDBRequest') @_annotation_Creates_SerializedScriptValue @Creates('IDBObjectStore')
|
| IDBRequest _getKey_2(key) native "getKey";
|
|
|
| /// @domName IDBIndex.openCursor; @docsEditable true
|
| @@ -9910,11 +9811,11 @@ class IDBObjectStore native "*IDBObjectStore" {
|
| /// @domName IDBObjectStore.add; @docsEditable true
|
| IDBRequest add(/*any*/ value, [/*IDBKey*/ key]) {
|
| if (?key) {
|
| - var value_1 = convertDartToNative_SerializedScriptValue(value);
|
| + var value_1 = _convertDartToNative_SerializedScriptValue(value);
|
| var key_2 = _convertDartToNative_IDBKey(key);
|
| return _add_1(value_1, key_2);
|
| }
|
| - var value_3 = convertDartToNative_SerializedScriptValue(value);
|
| + var value_3 = _convertDartToNative_SerializedScriptValue(value);
|
| return _add_2(value_3);
|
| }
|
| @Returns('IDBRequest') @Creates('IDBRequest') @_annotation_Creates_IDBKey
|
| @@ -9947,12 +9848,12 @@ class IDBObjectStore native "*IDBObjectStore" {
|
| IDBIndex createIndex(String name, keyPath, [Map options]) {
|
| if ((?keyPath && (keyPath is List<String> || keyPath == null)) &&
|
| !?options) {
|
| - List keyPath_1 = convertDartToNative_StringArray(keyPath);
|
| + List keyPath_1 = _convertDartToNative_StringArray(keyPath);
|
| return _createIndex_1(name, keyPath_1);
|
| }
|
| if ((?keyPath && (keyPath is List<String> || keyPath == null))) {
|
| - List keyPath_2 = convertDartToNative_StringArray(keyPath);
|
| - var options_3 = convertDartToNative_Dictionary(options);
|
| + List keyPath_2 = _convertDartToNative_StringArray(keyPath);
|
| + var options_3 = _convertDartToNative_Dictionary(options);
|
| return _createIndex_2(name, keyPath_2, options_3);
|
| }
|
| if ((?keyPath && (keyPath is String || keyPath == null)) &&
|
| @@ -9960,7 +9861,7 @@ class IDBObjectStore native "*IDBObjectStore" {
|
| return _createIndex_3(name, keyPath);
|
| }
|
| if ((?keyPath && (keyPath is String || keyPath == null))) {
|
| - var options_4 = convertDartToNative_Dictionary(options);
|
| + var options_4 = _convertDartToNative_Dictionary(options);
|
| return _createIndex_4(name, keyPath, options_4);
|
| }
|
| throw new ArgumentError("Incorrect number or type of arguments");
|
| @@ -9998,9 +9899,9 @@ class IDBObjectStore native "*IDBObjectStore" {
|
| }
|
| throw new ArgumentError("Incorrect number or type of arguments");
|
| }
|
| - @Returns('IDBRequest') @Creates('IDBRequest') @annotation_Creates_SerializedScriptValue
|
| + @Returns('IDBRequest') @Creates('IDBRequest') @_annotation_Creates_SerializedScriptValue
|
| IDBRequest _getObject_1(IDBKeyRange key) native "get";
|
| - @Returns('IDBRequest') @Creates('IDBRequest') @annotation_Creates_SerializedScriptValue
|
| + @Returns('IDBRequest') @Creates('IDBRequest') @_annotation_Creates_SerializedScriptValue
|
| IDBRequest _getObject_2(key) native "get";
|
|
|
| /// @domName IDBObjectStore.index; @docsEditable true
|
| @@ -10044,11 +9945,11 @@ class IDBObjectStore native "*IDBObjectStore" {
|
| /// @domName IDBObjectStore.put; @docsEditable true
|
| IDBRequest put(/*any*/ value, [/*IDBKey*/ key]) {
|
| if (?key) {
|
| - var value_1 = convertDartToNative_SerializedScriptValue(value);
|
| + var value_1 = _convertDartToNative_SerializedScriptValue(value);
|
| var key_2 = _convertDartToNative_IDBKey(key);
|
| return _put_1(value_1, key_2);
|
| }
|
| - var value_3 = convertDartToNative_SerializedScriptValue(value);
|
| + var value_3 = _convertDartToNative_SerializedScriptValue(value);
|
| return _put_2(value_3);
|
| }
|
| @Returns('IDBRequest') @Creates('IDBRequest') @_annotation_Creates_IDBKey
|
| @@ -10436,7 +10337,8 @@ class InputElement extends Element implements Element native "*HTMLInputElement"
|
| bool disabled;
|
|
|
| /// @domName HTMLInputElement.files; @docsEditable true
|
| - FileList files;
|
| + @Returns('_FileList') @Creates('_FileList')
|
| + List<File> files;
|
|
|
| /// @domName HTMLInputElement.form; @docsEditable true
|
| final FormElement form;
|
| @@ -10634,18 +10536,18 @@ class Int16Array extends ArrayBufferView implements JavaScriptIndexingBehavior,
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(int element) => Collections.contains(this, element);
|
| + bool contains(int element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(int element)) => Collections.forEach(this, f);
|
| + void forEach(void f(int element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(int element)) => Collections.map(this, [], f);
|
| + Collection map(f(int element)) => _Collections.map(this, [], f);
|
|
|
| Collection<int> filter(bool f(int element)) =>
|
| - Collections.filter(this, <int>[], f);
|
| + _Collections.filter(this, <int>[], f);
|
|
|
| - bool every(bool f(int element)) => Collections.every(this, f);
|
| + bool every(bool f(int element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(int element)) => Collections.some(this, f);
|
| + bool some(bool f(int element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -10744,18 +10646,18 @@ class Int32Array extends ArrayBufferView implements JavaScriptIndexingBehavior,
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(int element) => Collections.contains(this, element);
|
| + bool contains(int element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(int element)) => Collections.forEach(this, f);
|
| + void forEach(void f(int element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(int element)) => Collections.map(this, [], f);
|
| + Collection map(f(int element)) => _Collections.map(this, [], f);
|
|
|
| Collection<int> filter(bool f(int element)) =>
|
| - Collections.filter(this, <int>[], f);
|
| + _Collections.filter(this, <int>[], f);
|
|
|
| - bool every(bool f(int element)) => Collections.every(this, f);
|
| + bool every(bool f(int element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(int element)) => Collections.some(this, f);
|
| + bool some(bool f(int element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -10854,18 +10756,18 @@ class Int8Array extends ArrayBufferView implements JavaScriptIndexingBehavior, L
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(int element) => Collections.contains(this, element);
|
| + bool contains(int element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(int element)) => Collections.forEach(this, f);
|
| + void forEach(void f(int element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(int element)) => Collections.map(this, [], f);
|
| + Collection map(f(int element)) => _Collections.map(this, [], f);
|
|
|
| Collection<int> filter(bool f(int element)) =>
|
| - Collections.filter(this, <int>[], f);
|
| + _Collections.filter(this, <int>[], f);
|
|
|
| - bool every(bool f(int element)) => Collections.every(this, f);
|
| + bool every(bool f(int element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(int element)) => Collections.some(this, f);
|
| + bool some(bool f(int element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -11616,12 +11518,12 @@ class LocalWindow extends EventTarget implements Window native "@*DOMWindow" {
|
| void postMessage(/*SerializedScriptValue*/ message, String targetOrigin, [List messagePorts]) {
|
| if (?message &&
|
| !?messagePorts) {
|
| - var message_1 = convertDartToNative_SerializedScriptValue(message);
|
| + var message_1 = _convertDartToNative_SerializedScriptValue(message);
|
| _postMessage_1(message_1, targetOrigin);
|
| return;
|
| }
|
| if (?message) {
|
| - var message_2 = convertDartToNative_SerializedScriptValue(message);
|
| + var message_2 = _convertDartToNative_SerializedScriptValue(message);
|
| _postMessage_2(message_2, targetOrigin, messagePorts);
|
| return;
|
| }
|
| @@ -12527,7 +12429,7 @@ class MessageChannel native "*MessageChannel" {
|
| class MessageEvent extends Event native "*MessageEvent" {
|
|
|
| /// @domName MessageEvent.data; @docsEditable true
|
| - dynamic get data => convertNativeToDart_SerializedScriptValue(this._data);
|
| + dynamic get data => _convertNativeToDart_SerializedScriptValue(this._data);
|
| dynamic get _data => JS("dynamic", "#.data", this);
|
|
|
| /// @domName MessageEvent.lastEventId; @docsEditable true
|
| @@ -12574,11 +12476,11 @@ class MessagePort extends EventTarget native "*MessagePort" {
|
| /// @domName MessagePort.postMessage; @docsEditable true
|
| void postMessage(/*any*/ message, [List messagePorts]) {
|
| if (?messagePorts) {
|
| - var message_1 = convertDartToNative_SerializedScriptValue(message);
|
| + var message_1 = _convertDartToNative_SerializedScriptValue(message);
|
| _postMessage_1(message_1, messagePorts);
|
| return;
|
| }
|
| - var message_2 = convertDartToNative_SerializedScriptValue(message);
|
| + var message_2 = _convertDartToNative_SerializedScriptValue(message);
|
| _postMessage_2(message_2);
|
| return;
|
| }
|
| @@ -12847,7 +12749,7 @@ class MutationObserver native "*MutationObserver" {
|
|
|
| /// @domName MutationObserver._observe; @docsEditable true
|
| void _observe(Node target, Map options) {
|
| - var options_1 = convertDartToNative_Dictionary(options);
|
| + var options_1 = _convertDartToNative_Dictionary(options);
|
| __observe_1(target, options_1);
|
| return;
|
| }
|
| @@ -12996,18 +12898,18 @@ class NamedNodeMap implements JavaScriptIndexingBehavior, List<Node> native "*Na
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(Node element) => Collections.contains(this, element);
|
| + bool contains(Node element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(Node element)) => Collections.forEach(this, f);
|
| + void forEach(void f(Node element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(Node element)) => Collections.map(this, [], f);
|
| + Collection map(f(Node element)) => _Collections.map(this, [], f);
|
|
|
| Collection<Node> filter(bool f(Node element)) =>
|
| - Collections.filter(this, <Node>[], f);
|
| + _Collections.filter(this, <Node>[], f);
|
|
|
| - bool every(bool f(Node element)) => Collections.every(this, f);
|
| + bool every(bool f(Node element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(Node element)) => Collections.some(this, f);
|
| + bool some(bool f(Node element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -13140,11 +13042,11 @@ class Navigator native "*Navigator" {
|
| /// @domName Navigator.webkitGetUserMedia; @docsEditable true
|
| void webkitGetUserMedia(Map options, NavigatorUserMediaSuccessCallback successCallback, [NavigatorUserMediaErrorCallback errorCallback]) {
|
| if (?errorCallback) {
|
| - var options_1 = convertDartToNative_Dictionary(options);
|
| + var options_1 = _convertDartToNative_Dictionary(options);
|
| _webkitGetUserMedia_1(options_1, successCallback, errorCallback);
|
| return;
|
| }
|
| - var options_2 = convertDartToNative_Dictionary(options);
|
| + var options_2 = _convertDartToNative_Dictionary(options);
|
| _webkitGetUserMedia_2(options_2, successCallback);
|
| return;
|
| }
|
| @@ -13234,18 +13136,18 @@ class _ChildNodeListLazy implements List {
|
|
|
| // TODO(jacobr): We can implement these methods much more efficiently by
|
| // looking up the nodeList only once instead of once per iteration.
|
| - bool contains(Node element) => Collections.contains(this, element);
|
| + bool contains(Node element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(Node element)) => Collections.forEach(this, f);
|
| + void forEach(void f(Node element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(Node element)) => Collections.map(this, [], f);
|
| + Collection map(f(Node element)) => _Collections.map(this, [], f);
|
|
|
| Collection<Node> filter(bool f(Node element)) =>
|
| - Collections.filter(this, <Node>[], f);
|
| + _Collections.filter(this, <Node>[], f);
|
|
|
| - bool every(bool f(Node element)) => Collections.every(this, f);
|
| + bool every(bool f(Node element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(Node element)) => Collections.some(this, f);
|
| + bool some(bool f(Node element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -14031,7 +13933,7 @@ class PeerConnection00 extends EventTarget native "*PeerConnection00" {
|
| /// @domName PeerConnection00.addStream; @docsEditable true
|
| void addStream(MediaStream stream, [Map mediaStreamHints]) {
|
| if (?mediaStreamHints) {
|
| - var mediaStreamHints_1 = convertDartToNative_Dictionary(mediaStreamHints);
|
| + var mediaStreamHints_1 = _convertDartToNative_Dictionary(mediaStreamHints);
|
| _addStream_1(stream, mediaStreamHints_1);
|
| return;
|
| }
|
| @@ -14047,7 +13949,7 @@ class PeerConnection00 extends EventTarget native "*PeerConnection00" {
|
| /// @domName PeerConnection00.createAnswer; @docsEditable true
|
| SessionDescription createAnswer(String offer, [Map mediaHints]) {
|
| if (?mediaHints) {
|
| - var mediaHints_1 = convertDartToNative_Dictionary(mediaHints);
|
| + var mediaHints_1 = _convertDartToNative_Dictionary(mediaHints);
|
| return _createAnswer_1(offer, mediaHints_1);
|
| }
|
| return _createAnswer_2(offer);
|
| @@ -14058,7 +13960,7 @@ class PeerConnection00 extends EventTarget native "*PeerConnection00" {
|
| /// @domName PeerConnection00.createOffer; @docsEditable true
|
| SessionDescription createOffer([Map mediaHints]) {
|
| if (?mediaHints) {
|
| - var mediaHints_1 = convertDartToNative_Dictionary(mediaHints);
|
| + var mediaHints_1 = _convertDartToNative_Dictionary(mediaHints);
|
| return _createOffer_1(mediaHints_1);
|
| }
|
| return _createOffer_2();
|
| @@ -14087,7 +13989,7 @@ class PeerConnection00 extends EventTarget native "*PeerConnection00" {
|
| /// @domName PeerConnection00.startIce; @docsEditable true
|
| void startIce([Map iceOptions]) {
|
| if (?iceOptions) {
|
| - var iceOptions_1 = convertDartToNative_Dictionary(iceOptions);
|
| + var iceOptions_1 = _convertDartToNative_Dictionary(iceOptions);
|
| _startIce_1(iceOptions_1);
|
| return;
|
| }
|
| @@ -14251,7 +14153,7 @@ class Point native "*WebKitPoint" {
|
| class PopStateEvent extends Event native "*PopStateEvent" {
|
|
|
| /// @domName PopStateEvent.state; @docsEditable true
|
| - dynamic get state => convertNativeToDart_SerializedScriptValue(this._state);
|
| + dynamic get state => _convertNativeToDart_SerializedScriptValue(this._state);
|
| dynamic get _state => JS("dynamic", "#.state", this);
|
| }
|
| // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
| @@ -14542,7 +14444,7 @@ class RTCPeerConnection extends EventTarget native "*RTCPeerConnection" {
|
| /// @domName RTCPeerConnection.addStream; @docsEditable true
|
| void addStream(MediaStream stream, [Map mediaConstraints]) {
|
| if (?mediaConstraints) {
|
| - var mediaConstraints_1 = convertDartToNative_Dictionary(mediaConstraints);
|
| + var mediaConstraints_1 = _convertDartToNative_Dictionary(mediaConstraints);
|
| _addStream_1(stream, mediaConstraints_1);
|
| return;
|
| }
|
| @@ -14558,7 +14460,7 @@ class RTCPeerConnection extends EventTarget native "*RTCPeerConnection" {
|
| /// @domName RTCPeerConnection.createAnswer; @docsEditable true
|
| void createAnswer(RTCSessionDescriptionCallback successCallback, [RTCErrorCallback failureCallback, Map mediaConstraints]) {
|
| if (?mediaConstraints) {
|
| - var mediaConstraints_1 = convertDartToNative_Dictionary(mediaConstraints);
|
| + var mediaConstraints_1 = _convertDartToNative_Dictionary(mediaConstraints);
|
| _createAnswer_1(successCallback, failureCallback, mediaConstraints_1);
|
| return;
|
| }
|
| @@ -14571,7 +14473,7 @@ class RTCPeerConnection extends EventTarget native "*RTCPeerConnection" {
|
| /// @domName RTCPeerConnection.createDataChannel; @docsEditable true
|
| RTCDataChannel createDataChannel(String label, [Map options]) {
|
| if (?options) {
|
| - var options_1 = convertDartToNative_Dictionary(options);
|
| + var options_1 = _convertDartToNative_Dictionary(options);
|
| return _createDataChannel_1(label, options_1);
|
| }
|
| return _createDataChannel_2(label);
|
| @@ -14582,7 +14484,7 @@ class RTCPeerConnection extends EventTarget native "*RTCPeerConnection" {
|
| /// @domName RTCPeerConnection.createOffer; @docsEditable true
|
| void createOffer(RTCSessionDescriptionCallback successCallback, [RTCErrorCallback failureCallback, Map mediaConstraints]) {
|
| if (?mediaConstraints) {
|
| - var mediaConstraints_1 = convertDartToNative_Dictionary(mediaConstraints);
|
| + var mediaConstraints_1 = _convertDartToNative_Dictionary(mediaConstraints);
|
| _createOffer_1(successCallback, failureCallback, mediaConstraints_1);
|
| return;
|
| }
|
| @@ -14613,13 +14515,13 @@ class RTCPeerConnection extends EventTarget native "*RTCPeerConnection" {
|
| /// @domName RTCPeerConnection.updateIce; @docsEditable true
|
| void updateIce([Map configuration, Map mediaConstraints]) {
|
| if (?mediaConstraints) {
|
| - var configuration_1 = convertDartToNative_Dictionary(configuration);
|
| - var mediaConstraints_2 = convertDartToNative_Dictionary(mediaConstraints);
|
| + var configuration_1 = _convertDartToNative_Dictionary(configuration);
|
| + var mediaConstraints_2 = _convertDartToNative_Dictionary(mediaConstraints);
|
| _updateIce_1(configuration_1, mediaConstraints_2);
|
| return;
|
| }
|
| if (?configuration) {
|
| - var configuration_3 = convertDartToNative_Dictionary(configuration);
|
| + var configuration_3 = _convertDartToNative_Dictionary(configuration);
|
| _updateIce_2(configuration_3);
|
| return;
|
| }
|
| @@ -15019,18 +14921,18 @@ class SQLResultSetRowList implements JavaScriptIndexingBehavior, List<Map> nativ
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(Map element) => Collections.contains(this, element);
|
| + bool contains(Map element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(Map element)) => Collections.forEach(this, f);
|
| + void forEach(void f(Map element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(Map element)) => Collections.map(this, [], f);
|
| + Collection map(f(Map element)) => _Collections.map(this, [], f);
|
|
|
| Collection<Map> filter(bool f(Map element)) =>
|
| - Collections.filter(this, <Map>[], f);
|
| + _Collections.filter(this, <Map>[], f);
|
|
|
| - bool every(bool f(Map element)) => Collections.every(this, f);
|
| + bool every(bool f(Map element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(Map element)) => Collections.some(this, f);
|
| + bool some(bool f(Map element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -15075,7 +14977,7 @@ class SQLResultSetRowList implements JavaScriptIndexingBehavior, List<Map> nativ
|
|
|
| /// @domName SQLResultSetRowList.item; @docsEditable true
|
| Map item(int index) {
|
| - return convertNativeToDart_Dictionary(_item_1(index));
|
| + return _convertNativeToDart_Dictionary(_item_1(index));
|
| }
|
| @Creates('=Object')
|
| _item_1(index) native "item";
|
| @@ -15521,18 +15423,18 @@ class SourceBufferList extends EventTarget implements JavaScriptIndexingBehavior
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(SourceBuffer element) => Collections.contains(this, element);
|
| + bool contains(SourceBuffer element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(SourceBuffer element)) => Collections.forEach(this, f);
|
| + void forEach(void f(SourceBuffer element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(SourceBuffer element)) => Collections.map(this, [], f);
|
| + Collection map(f(SourceBuffer element)) => _Collections.map(this, [], f);
|
|
|
| Collection<SourceBuffer> filter(bool f(SourceBuffer element)) =>
|
| - Collections.filter(this, <SourceBuffer>[], f);
|
| + _Collections.filter(this, <SourceBuffer>[], f);
|
|
|
| - bool every(bool f(SourceBuffer element)) => Collections.every(this, f);
|
| + bool every(bool f(SourceBuffer element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(SourceBuffer element)) => Collections.some(this, f);
|
| + bool some(bool f(SourceBuffer element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -15676,18 +15578,18 @@ class SpeechGrammarList implements JavaScriptIndexingBehavior, List<SpeechGramma
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(SpeechGrammar element) => Collections.contains(this, element);
|
| + bool contains(SpeechGrammar element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(SpeechGrammar element)) => Collections.forEach(this, f);
|
| + void forEach(void f(SpeechGrammar element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(SpeechGrammar element)) => Collections.map(this, [], f);
|
| + Collection map(f(SpeechGrammar element)) => _Collections.map(this, [], f);
|
|
|
| Collection<SpeechGrammar> filter(bool f(SpeechGrammar element)) =>
|
| - Collections.filter(this, <SpeechGrammar>[], f);
|
| + _Collections.filter(this, <SpeechGrammar>[], f);
|
|
|
| - bool every(bool f(SpeechGrammar element)) => Collections.every(this, f);
|
| + bool every(bool f(SpeechGrammar element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(SpeechGrammar element)) => Collections.some(this, f);
|
| + bool some(bool f(SpeechGrammar element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -16697,18 +16599,18 @@ class TextTrackCueList implements List<TextTrackCue>, JavaScriptIndexingBehavior
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(TextTrackCue element) => Collections.contains(this, element);
|
| + bool contains(TextTrackCue element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(TextTrackCue element)) => Collections.forEach(this, f);
|
| + void forEach(void f(TextTrackCue element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(TextTrackCue element)) => Collections.map(this, [], f);
|
| + Collection map(f(TextTrackCue element)) => _Collections.map(this, [], f);
|
|
|
| Collection<TextTrackCue> filter(bool f(TextTrackCue element)) =>
|
| - Collections.filter(this, <TextTrackCue>[], f);
|
| + _Collections.filter(this, <TextTrackCue>[], f);
|
|
|
| - bool every(bool f(TextTrackCue element)) => Collections.every(this, f);
|
| + bool every(bool f(TextTrackCue element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(TextTrackCue element)) => Collections.some(this, f);
|
| + bool some(bool f(TextTrackCue element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -16803,18 +16705,18 @@ class TextTrackList extends EventTarget implements JavaScriptIndexingBehavior, L
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(TextTrack element) => Collections.contains(this, element);
|
| + bool contains(TextTrack element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(TextTrack element)) => Collections.forEach(this, f);
|
| + void forEach(void f(TextTrack element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(TextTrack element)) => Collections.map(this, [], f);
|
| + Collection map(f(TextTrack element)) => _Collections.map(this, [], f);
|
|
|
| Collection<TextTrack> filter(bool f(TextTrack element)) =>
|
| - Collections.filter(this, <TextTrack>[], f);
|
| + _Collections.filter(this, <TextTrack>[], f);
|
|
|
| - bool every(bool f(TextTrack element)) => Collections.every(this, f);
|
| + bool every(bool f(TextTrack element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(TextTrack element)) => Collections.some(this, f);
|
| + bool some(bool f(TextTrack element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -17029,18 +16931,18 @@ class TouchList implements JavaScriptIndexingBehavior, List<Touch> native "*Touc
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(Touch element) => Collections.contains(this, element);
|
| + bool contains(Touch element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(Touch element)) => Collections.forEach(this, f);
|
| + void forEach(void f(Touch element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(Touch element)) => Collections.map(this, [], f);
|
| + Collection map(f(Touch element)) => _Collections.map(this, [], f);
|
|
|
| Collection<Touch> filter(bool f(Touch element)) =>
|
| - Collections.filter(this, <Touch>[], f);
|
| + _Collections.filter(this, <Touch>[], f);
|
|
|
| - bool every(bool f(Touch element)) => Collections.every(this, f);
|
| + bool every(bool f(Touch element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(Touch element)) => Collections.some(this, f);
|
| + bool some(bool f(Touch element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -17319,18 +17221,18 @@ class Uint16Array extends ArrayBufferView implements JavaScriptIndexingBehavior,
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(int element) => Collections.contains(this, element);
|
| + bool contains(int element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(int element)) => Collections.forEach(this, f);
|
| + void forEach(void f(int element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(int element)) => Collections.map(this, [], f);
|
| + Collection map(f(int element)) => _Collections.map(this, [], f);
|
|
|
| Collection<int> filter(bool f(int element)) =>
|
| - Collections.filter(this, <int>[], f);
|
| + _Collections.filter(this, <int>[], f);
|
|
|
| - bool every(bool f(int element)) => Collections.every(this, f);
|
| + bool every(bool f(int element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(int element)) => Collections.some(this, f);
|
| + bool some(bool f(int element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -17429,18 +17331,18 @@ class Uint32Array extends ArrayBufferView implements JavaScriptIndexingBehavior,
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(int element) => Collections.contains(this, element);
|
| + bool contains(int element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(int element)) => Collections.forEach(this, f);
|
| + void forEach(void f(int element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(int element)) => Collections.map(this, [], f);
|
| + Collection map(f(int element)) => _Collections.map(this, [], f);
|
|
|
| Collection<int> filter(bool f(int element)) =>
|
| - Collections.filter(this, <int>[], f);
|
| + _Collections.filter(this, <int>[], f);
|
|
|
| - bool every(bool f(int element)) => Collections.every(this, f);
|
| + bool every(bool f(int element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(int element)) => Collections.some(this, f);
|
| + bool some(bool f(int element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -17539,18 +17441,18 @@ class Uint8Array extends ArrayBufferView implements JavaScriptIndexingBehavior,
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(int element) => Collections.contains(this, element);
|
| + bool contains(int element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(int element)) => Collections.forEach(this, f);
|
| + void forEach(void f(int element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(int element)) => Collections.map(this, [], f);
|
| + Collection map(f(int element)) => _Collections.map(this, [], f);
|
|
|
| Collection<int> filter(bool f(int element)) =>
|
| - Collections.filter(this, <int>[], f);
|
| + _Collections.filter(this, <int>[], f);
|
|
|
| - bool every(bool f(int element)) => Collections.every(this, f);
|
| + bool every(bool f(int element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(int element)) => Collections.some(this, f);
|
| + bool some(bool f(int element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -19290,11 +19192,11 @@ class Worker extends AbstractWorker native "*Worker" {
|
| /// @domName Worker.postMessage; @docsEditable true
|
| void postMessage(/*SerializedScriptValue*/ message, [List messagePorts]) {
|
| if (?messagePorts) {
|
| - var message_1 = convertDartToNative_SerializedScriptValue(message);
|
| + var message_1 = _convertDartToNative_SerializedScriptValue(message);
|
| _postMessage_1(message_1, messagePorts);
|
| return;
|
| }
|
| - var message_2 = convertDartToNative_SerializedScriptValue(message);
|
| + var message_2 = _convertDartToNative_SerializedScriptValue(message);
|
| _postMessage_2(message_2);
|
| return;
|
| }
|
| @@ -19705,18 +19607,18 @@ class _CSSRuleList implements JavaScriptIndexingBehavior, List<CSSRule> native "
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(CSSRule element) => Collections.contains(this, element);
|
| + bool contains(CSSRule element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(CSSRule element)) => Collections.forEach(this, f);
|
| + void forEach(void f(CSSRule element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(CSSRule element)) => Collections.map(this, [], f);
|
| + Collection map(f(CSSRule element)) => _Collections.map(this, [], f);
|
|
|
| Collection<CSSRule> filter(bool f(CSSRule element)) =>
|
| - Collections.filter(this, <CSSRule>[], f);
|
| + _Collections.filter(this, <CSSRule>[], f);
|
|
|
| - bool every(bool f(CSSRule element)) => Collections.every(this, f);
|
| + bool every(bool f(CSSRule element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(CSSRule element)) => Collections.some(this, f);
|
| + bool some(bool f(CSSRule element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -19804,18 +19706,18 @@ class _CSSValueList extends CSSValue implements List<CSSValue>, JavaScriptIndexi
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(CSSValue element) => Collections.contains(this, element);
|
| + bool contains(CSSValue element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(CSSValue element)) => Collections.forEach(this, f);
|
| + void forEach(void f(CSSValue element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(CSSValue element)) => Collections.map(this, [], f);
|
| + Collection map(f(CSSValue element)) => _Collections.map(this, [], f);
|
|
|
| Collection<CSSValue> filter(bool f(CSSValue element)) =>
|
| - Collections.filter(this, <CSSValue>[], f);
|
| + _Collections.filter(this, <CSSValue>[], f);
|
|
|
| - bool every(bool f(CSSValue element)) => Collections.every(this, f);
|
| + bool every(bool f(CSSValue element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(CSSValue element)) => Collections.some(this, f);
|
| + bool some(bool f(CSSValue element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -19903,18 +19805,18 @@ class _ClientRectList implements JavaScriptIndexingBehavior, List<ClientRect> na
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(ClientRect element) => Collections.contains(this, element);
|
| + bool contains(ClientRect element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(ClientRect element)) => Collections.forEach(this, f);
|
| + void forEach(void f(ClientRect element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(ClientRect element)) => Collections.map(this, [], f);
|
| + Collection map(f(ClientRect element)) => _Collections.map(this, [], f);
|
|
|
| Collection<ClientRect> filter(bool f(ClientRect element)) =>
|
| - Collections.filter(this, <ClientRect>[], f);
|
| + _Collections.filter(this, <ClientRect>[], f);
|
|
|
| - bool every(bool f(ClientRect element)) => Collections.every(this, f);
|
| + bool every(bool f(ClientRect element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(ClientRect element)) => Collections.some(this, f);
|
| + bool some(bool f(ClientRect element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -20013,16 +19915,16 @@ class _DOMStringList implements JavaScriptIndexingBehavior, List<String> native
|
|
|
| // contains() defined by IDL.
|
|
|
| - void forEach(void f(String element)) => Collections.forEach(this, f);
|
| + void forEach(void f(String element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(String element)) => Collections.map(this, [], f);
|
| + Collection map(f(String element)) => _Collections.map(this, [], f);
|
|
|
| Collection<String> filter(bool f(String element)) =>
|
| - Collections.filter(this, <String>[], f);
|
| + _Collections.filter(this, <String>[], f);
|
|
|
| - bool every(bool f(String element)) => Collections.every(this, f);
|
| + bool every(bool f(String element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(String element)) => Collections.some(this, f);
|
| + bool some(bool f(String element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -20130,18 +20032,18 @@ class _EntryArray implements JavaScriptIndexingBehavior, List<Entry> native "*En
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(Entry element) => Collections.contains(this, element);
|
| + bool contains(Entry element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(Entry element)) => Collections.forEach(this, f);
|
| + void forEach(void f(Entry element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(Entry element)) => Collections.map(this, [], f);
|
| + Collection map(f(Entry element)) => _Collections.map(this, [], f);
|
|
|
| Collection<Entry> filter(bool f(Entry element)) =>
|
| - Collections.filter(this, <Entry>[], f);
|
| + _Collections.filter(this, <Entry>[], f);
|
|
|
| - bool every(bool f(Entry element)) => Collections.every(this, f);
|
| + bool every(bool f(Entry element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(Entry element)) => Collections.some(this, f);
|
| + bool some(bool f(Entry element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -20229,18 +20131,18 @@ class _EntryArraySync implements JavaScriptIndexingBehavior, List<EntrySync> nat
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(EntrySync element) => Collections.contains(this, element);
|
| + bool contains(EntrySync element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(EntrySync element)) => Collections.forEach(this, f);
|
| + void forEach(void f(EntrySync element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(EntrySync element)) => Collections.map(this, [], f);
|
| + Collection map(f(EntrySync element)) => _Collections.map(this, [], f);
|
|
|
| Collection<EntrySync> filter(bool f(EntrySync element)) =>
|
| - Collections.filter(this, <EntrySync>[], f);
|
| + _Collections.filter(this, <EntrySync>[], f);
|
|
|
| - bool every(bool f(EntrySync element)) => Collections.every(this, f);
|
| + bool every(bool f(EntrySync element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(EntrySync element)) => Collections.some(this, f);
|
| + bool some(bool f(EntrySync element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -20300,6 +20202,105 @@ class _EventSourceFactoryProvider {
|
| // BSD-style license that can be found in the LICENSE file.
|
|
|
|
|
| +/// @domName FileList; @docsEditable true
|
| +class _FileList implements JavaScriptIndexingBehavior, List<File> native "*FileList" {
|
| +
|
| + /// @domName FileList.length; @docsEditable true
|
| + final int length;
|
| +
|
| + File operator[](int index) => JS("File", "#[#]", this, index);
|
| +
|
| + void operator[]=(int index, File value) {
|
| + throw new UnsupportedError("Cannot assign element of immutable List.");
|
| + }
|
| + // -- start List<File> mixins.
|
| + // File is the element type.
|
| +
|
| + // From Iterable<File>:
|
| +
|
| + Iterator<File> iterator() {
|
| + // Note: NodeLists are not fixed size. And most probably length shouldn't
|
| + // be cached in both iterator _and_ forEach method. For now caching it
|
| + // for consistency.
|
| + return new FixedSizeListIterator<File>(this);
|
| + }
|
| +
|
| + // From Collection<File>:
|
| +
|
| + void add(File value) {
|
| + throw new UnsupportedError("Cannot add to immutable List.");
|
| + }
|
| +
|
| + void addLast(File value) {
|
| + throw new UnsupportedError("Cannot add to immutable List.");
|
| + }
|
| +
|
| + void addAll(Collection<File> collection) {
|
| + throw new UnsupportedError("Cannot add to immutable List.");
|
| + }
|
| +
|
| + bool contains(File element) => _Collections.contains(this, element);
|
| +
|
| + void forEach(void f(File element)) => _Collections.forEach(this, f);
|
| +
|
| + Collection map(f(File element)) => _Collections.map(this, [], f);
|
| +
|
| + Collection<File> filter(bool f(File element)) =>
|
| + _Collections.filter(this, <File>[], f);
|
| +
|
| + bool every(bool f(File element)) => _Collections.every(this, f);
|
| +
|
| + bool some(bool f(File element)) => _Collections.some(this, f);
|
| +
|
| + bool get isEmpty => this.length == 0;
|
| +
|
| + // From List<File>:
|
| +
|
| + void sort([Comparator<File> compare = Comparable.compare]) {
|
| + throw new UnsupportedError("Cannot sort immutable List.");
|
| + }
|
| +
|
| + int indexOf(File element, [int start = 0]) =>
|
| + _Lists.indexOf(this, element, start, this.length);
|
| +
|
| + int lastIndexOf(File element, [int start]) {
|
| + if (start == null) start = length - 1;
|
| + return _Lists.lastIndexOf(this, element, start);
|
| + }
|
| +
|
| + File get first => this[0];
|
| +
|
| + File get last => this[length - 1];
|
| +
|
| + File removeLast() {
|
| + throw new UnsupportedError("Cannot removeLast on immutable List.");
|
| + }
|
| +
|
| + void setRange(int start, int rangeLength, List<File> from, [int startFrom]) {
|
| + throw new UnsupportedError("Cannot setRange on immutable List.");
|
| + }
|
| +
|
| + void removeRange(int start, int rangeLength) {
|
| + throw new UnsupportedError("Cannot removeRange on immutable List.");
|
| + }
|
| +
|
| + void insertRange(int start, int rangeLength, [File initialValue]) {
|
| + throw new UnsupportedError("Cannot insertRange on immutable List.");
|
| + }
|
| +
|
| + List<File> getRange(int start, int rangeLength) =>
|
| + _Lists.getRange(this, start, rangeLength, <File>[]);
|
| +
|
| + // -- end List<File> mixins.
|
| +
|
| + /// @domName FileList.item; @docsEditable true
|
| + File item(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
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +
|
| +
|
| class _FileReaderFactoryProvider {
|
| static FileReader createFileReader() =>
|
| JS('FileReader', 'new FileReader()' );
|
| @@ -20366,18 +20367,18 @@ class _GamepadList implements JavaScriptIndexingBehavior, List<Gamepad> native "
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(Gamepad element) => Collections.contains(this, element);
|
| + bool contains(Gamepad element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(Gamepad element)) => Collections.forEach(this, f);
|
| + void forEach(void f(Gamepad element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(Gamepad element)) => Collections.map(this, [], f);
|
| + Collection map(f(Gamepad element)) => _Collections.map(this, [], f);
|
|
|
| Collection<Gamepad> filter(bool f(Gamepad element)) =>
|
| - Collections.filter(this, <Gamepad>[], f);
|
| + _Collections.filter(this, <Gamepad>[], f);
|
|
|
| - bool every(bool f(Gamepad element)) => Collections.every(this, f);
|
| + bool every(bool f(Gamepad element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(Gamepad element)) => Collections.some(this, f);
|
| + bool some(bool f(Gamepad element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -20518,18 +20519,18 @@ class _MediaStreamList implements JavaScriptIndexingBehavior, List<MediaStream>
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(MediaStream element) => Collections.contains(this, element);
|
| + bool contains(MediaStream element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(MediaStream element)) => Collections.forEach(this, f);
|
| + void forEach(void f(MediaStream element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(MediaStream element)) => Collections.map(this, [], f);
|
| + Collection map(f(MediaStream element)) => _Collections.map(this, [], f);
|
|
|
| Collection<MediaStream> filter(bool f(MediaStream element)) =>
|
| - Collections.filter(this, <MediaStream>[], f);
|
| + _Collections.filter(this, <MediaStream>[], f);
|
|
|
| - bool every(bool f(MediaStream element)) => Collections.every(this, f);
|
| + bool every(bool f(MediaStream element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(MediaStream element)) => Collections.some(this, f);
|
| + bool some(bool f(MediaStream element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -20652,18 +20653,18 @@ class _NodeList implements JavaScriptIndexingBehavior, List<Node> native "*NodeL
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(Node element) => Collections.contains(this, element);
|
| + bool contains(Node element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(Node element)) => Collections.forEach(this, f);
|
| + void forEach(void f(Node element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(Node element)) => Collections.map(this, [], f);
|
| + Collection map(f(Node element)) => _Collections.map(this, [], f);
|
|
|
| Collection<Node> filter(bool f(Node element)) =>
|
| - Collections.filter(this, <Node>[], f);
|
| + _Collections.filter(this, <Node>[], f);
|
|
|
| - bool every(bool f(Node element)) => Collections.every(this, f);
|
| + bool every(bool f(Node element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(Node element)) => Collections.some(this, f);
|
| + bool some(bool f(Node element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -20869,18 +20870,18 @@ class _SpeechInputResultList implements JavaScriptIndexingBehavior, List<SpeechI
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(SpeechInputResult element) => Collections.contains(this, element);
|
| + bool contains(SpeechInputResult element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(SpeechInputResult element)) => Collections.forEach(this, f);
|
| + void forEach(void f(SpeechInputResult element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(SpeechInputResult element)) => Collections.map(this, [], f);
|
| + Collection map(f(SpeechInputResult element)) => _Collections.map(this, [], f);
|
|
|
| Collection<SpeechInputResult> filter(bool f(SpeechInputResult element)) =>
|
| - Collections.filter(this, <SpeechInputResult>[], f);
|
| + _Collections.filter(this, <SpeechInputResult>[], f);
|
|
|
| - bool every(bool f(SpeechInputResult element)) => Collections.every(this, f);
|
| + bool every(bool f(SpeechInputResult element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(SpeechInputResult element)) => Collections.some(this, f);
|
| + bool some(bool f(SpeechInputResult element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -20977,18 +20978,18 @@ class _SpeechRecognitionResultList implements JavaScriptIndexingBehavior, List<S
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(SpeechRecognitionResult element) => Collections.contains(this, element);
|
| + bool contains(SpeechRecognitionResult element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(SpeechRecognitionResult element)) => Collections.forEach(this, f);
|
| + void forEach(void f(SpeechRecognitionResult element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(SpeechRecognitionResult element)) => Collections.map(this, [], f);
|
| + Collection map(f(SpeechRecognitionResult element)) => _Collections.map(this, [], f);
|
|
|
| Collection<SpeechRecognitionResult> filter(bool f(SpeechRecognitionResult element)) =>
|
| - Collections.filter(this, <SpeechRecognitionResult>[], f);
|
| + _Collections.filter(this, <SpeechRecognitionResult>[], f);
|
|
|
| - bool every(bool f(SpeechRecognitionResult element)) => Collections.every(this, f);
|
| + bool every(bool f(SpeechRecognitionResult element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(SpeechRecognitionResult element)) => Collections.some(this, f);
|
| + bool some(bool f(SpeechRecognitionResult element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -21076,18 +21077,18 @@ class _StyleSheetList implements JavaScriptIndexingBehavior, List<StyleSheet> na
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(StyleSheet element) => Collections.contains(this, element);
|
| + bool contains(StyleSheet element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(StyleSheet element)) => Collections.forEach(this, f);
|
| + void forEach(void f(StyleSheet element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(StyleSheet element)) => Collections.map(this, [], f);
|
| + Collection map(f(StyleSheet element)) => _Collections.map(this, [], f);
|
|
|
| Collection<StyleSheet> filter(bool f(StyleSheet element)) =>
|
| - Collections.filter(this, <StyleSheet>[], f);
|
| + _Collections.filter(this, <StyleSheet>[], f);
|
|
|
| - bool every(bool f(StyleSheet element)) => Collections.every(this, f);
|
| + bool every(bool f(StyleSheet element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(StyleSheet element)) => Collections.some(this, f);
|
| + bool some(bool f(StyleSheet element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -21199,18 +21200,18 @@ class _WebKitAnimationList implements JavaScriptIndexingBehavior, List<Animation
|
| throw new UnsupportedError("Cannot add to immutable List.");
|
| }
|
|
|
| - bool contains(Animation element) => Collections.contains(this, element);
|
| + bool contains(Animation element) => _Collections.contains(this, element);
|
|
|
| - void forEach(void f(Animation element)) => Collections.forEach(this, f);
|
| + void forEach(void f(Animation element)) => _Collections.forEach(this, f);
|
|
|
| - Collection map(f(Animation element)) => Collections.map(this, [], f);
|
| + Collection map(f(Animation element)) => _Collections.map(this, [], f);
|
|
|
| Collection<Animation> filter(bool f(Animation element)) =>
|
| - Collections.filter(this, <Animation>[], f);
|
| + _Collections.filter(this, <Animation>[], f);
|
|
|
| - bool every(bool f(Animation element)) => Collections.every(this, f);
|
| + bool every(bool f(Animation element)) => _Collections.every(this, f);
|
|
|
| - bool some(bool f(Animation element)) => Collections.some(this, f);
|
| + bool some(bool f(Animation element)) => _Collections.some(this, f);
|
|
|
| bool get isEmpty => this.length == 0;
|
|
|
| @@ -23138,6 +23139,66 @@ get _timerFactoryClosure => (int milliSeconds, void callback(Timer timer), bool
|
| timer = new _Timer(() { canceller(id); });
|
| return timer;
|
| };
|
| +// Copyright (c) 2011, 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.
|
| +
|
| +
|
| +/**
|
| + * The [Collections] class implements static methods useful when
|
| + * writing a class that implements [Collection] and the [iterator]
|
| + * method.
|
| + */
|
| +class _Collections {
|
| + static bool contains(Iterable<Object> iterable, Object element) {
|
| + for (final e in iterable) {
|
| + if (e == element) return true;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + static void forEach(Iterable<Object> iterable, void f(Object o)) {
|
| + for (final e in iterable) {
|
| + f(e);
|
| + }
|
| + }
|
| +
|
| + static List map(Iterable<Object> source,
|
| + List<Object> destination,
|
| + f(o)) {
|
| + for (final e in source) {
|
| + destination.add(f(e));
|
| + }
|
| + return destination;
|
| + }
|
| +
|
| + static bool some(Iterable<Object> iterable, bool f(Object o)) {
|
| + for (final e in iterable) {
|
| + if (f(e)) return true;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + static bool every(Iterable<Object> iterable, bool f(Object o)) {
|
| + for (final e in iterable) {
|
| + if (!f(e)) return false;
|
| + }
|
| + return true;
|
| + }
|
| +
|
| + static List filter(Iterable<Object> source,
|
| + List<Object> destination,
|
| + bool f(o)) {
|
| + for (final e in source) {
|
| + if (f(e)) destination.add(e);
|
| + }
|
| + return destination;
|
| + }
|
| +
|
| + static bool isEmpty(Iterable<Object> iterable) {
|
| + return !iterable.iterator().hasNext;
|
| + }
|
| +}
|
| // 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.
|
| @@ -23960,6 +24021,39 @@ _convertDartToNative_ImageData(ImageData imageData) {
|
| }
|
|
|
|
|
| +/// Converts a JavaScript object with properties into a Dart Map.
|
| +/// Not suitable for nested objects.
|
| +Map _convertNativeToDart_Dictionary(object) {
|
| + if (object == null) return null;
|
| + var dict = {};
|
| + for (final key in JS('=List', 'Object.getOwnPropertyNames(#)', object)) {
|
| + dict[key] = JS('var', '#[#]', object, key);
|
| + }
|
| + return dict;
|
| +}
|
| +
|
| +/// Converts a flat Dart map into a JavaScript object with properties.
|
| +_convertDartToNative_Dictionary(Map dict) {
|
| + if (dict == null) return null;
|
| + var object = JS('var', '{}');
|
| + dict.forEach((String key, value) {
|
| + JS('void', '#[#] = #', object, key, value);
|
| + });
|
| + return object;
|
| +}
|
| +
|
| +
|
| +/**
|
| + * Ensures that the input is a JavaScript Array.
|
| + *
|
| + * Creates a new JavaScript array if necessary, otherwise returns the original.
|
| + */
|
| +List _convertDartToNative_StringArray(List<String> input) {
|
| + // TODO(sra). Implement this.
|
| + return input;
|
| +}
|
| +
|
| +
|
| // -----------------------------------------------------------------------------
|
|
|
| /**
|
| @@ -23973,7 +24067,7 @@ _convertDartToNative_ImageData(ImageData imageData) {
|
| */
|
| _convertNativeToDart_IDBKey(nativeKey) {
|
| containsDate(object) {
|
| - if (isJavaScriptDate(object)) return true;
|
| + if (_isJavaScriptDate(object)) return true;
|
| if (object is List) {
|
| for (int i = 0; i < object.length; i++) {
|
| if (containsDate(object[i])) return true;
|
| @@ -24005,9 +24099,280 @@ _convertDartToNative_IDBKey(dartKey) {
|
|
|
| /// May modify original. If so, action is idempotent.
|
| _convertNativeToDart_IDBAny(object) {
|
| - return convertNativeToDart_AcceptStructuredClone(object, mustCopy: false);
|
| + return _convertNativeToDart_AcceptStructuredClone(object, mustCopy: false);
|
| +}
|
| +
|
| +/// Converts a Dart value into a JavaScript SerializedScriptValue.
|
| +_convertDartToNative_SerializedScriptValue(value) {
|
| + return _convertDartToNative_PrepareForStructuredClone(value);
|
| +}
|
| +
|
| +/// Since the source object may be viewed via a JavaScript event listener the
|
| +/// original may not be modified.
|
| +_convertNativeToDart_SerializedScriptValue(object) {
|
| + return _convertNativeToDart_AcceptStructuredClone(object, mustCopy: true);
|
| +}
|
| +
|
| +
|
| +/**
|
| + * Converts a Dart value into a JavaScript SerializedScriptValue. Returns the
|
| + * original input or a functional 'copy'. Does not mutate the original.
|
| + *
|
| + * The main transformation is the translation of Dart Maps are converted to
|
| + * JavaScript Objects.
|
| + *
|
| + * The algorithm is essentially a dry-run of the structured clone algorithm
|
| + * described at
|
| + * http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#structured-clone
|
| + * https://www.khronos.org/registry/typedarray/specs/latest/#9
|
| + *
|
| + * Since the result of this function is expected to be passed only to JavaScript
|
| + * operations that perform the structured clone algorithm which does not mutate
|
| + * its output, the result may share structure with the input [value].
|
| + */
|
| +_convertDartToNative_PrepareForStructuredClone(value) {
|
| +
|
| + // TODO(sra): Replace slots with identity hash table.
|
| + var values = [];
|
| + var copies = []; // initially 'null', 'true' during initial DFS, then a copy.
|
| +
|
| + int findSlot(value) {
|
| + int length = values.length;
|
| + for (int i = 0; i < length; i++) {
|
| + if (identical(values[i], value)) return i;
|
| + }
|
| + values.add(value);
|
| + copies.add(null);
|
| + return length;
|
| + }
|
| + readSlot(int i) => copies[i];
|
| + writeSlot(int i, x) { copies[i] = x; }
|
| + cleanupSlots() {} // Will be needed if we mark objects with a property.
|
| +
|
| + // Returns the input, or a clone of the input.
|
| + walk(e) {
|
| + if (e == null) return e;
|
| + if (e is bool) return e;
|
| + if (e is num) return e;
|
| + if (e is String) return e;
|
| + if (e is Date) {
|
| + // TODO(sra).
|
| + throw new UnimplementedError('structured clone of Date');
|
| + }
|
| + if (e is RegExp) {
|
| + // TODO(sra).
|
| + throw new UnimplementedError('structured clone of RegExp');
|
| + }
|
| +
|
| + // The browser's internal structured cloning algorithm will copy certain
|
| + // types of object, but it will copy only its own implementations and not
|
| + // just any Dart implementations of the interface.
|
| +
|
| + // TODO(sra): The JavaScript objects suitable for direct cloning by the
|
| + // structured clone algorithm could be tagged with an private interface.
|
| +
|
| + if (e is File) return e;
|
| + if (e is Blob) return e;
|
| + if (e is _FileList) return e;
|
| +
|
| + // TODO(sra): Firefox: How to convert _TypedImageData on the other end?
|
| + if (e is ImageData) return e;
|
| + if (e is ArrayBuffer) return e;
|
| +
|
| + if (e is ArrayBufferView) return e;
|
| +
|
| + if (e is Map) {
|
| + var slot = findSlot(e);
|
| + var copy = readSlot(slot);
|
| + if (copy != null) return copy;
|
| + copy = JS('var', '{}');
|
| + writeSlot(slot, copy);
|
| + e.forEach((key, value) {
|
| + JS('void', '#[#] = #', copy, key, walk(value));
|
| + });
|
| + return copy;
|
| + }
|
| +
|
| + if (e is List) {
|
| + // Since a JavaScript Array is an instance of Dart List it is possible to
|
| + // avoid making a copy of the list if there is no need to copy anything
|
| + // reachable from the array. We defer creating a new array until a cycle
|
| + // is detected or a subgraph was copied.
|
| + int length = e.length;
|
| + var slot = findSlot(e);
|
| + var copy = readSlot(slot);
|
| + if (copy != null) {
|
| + if (true == copy) { // Cycle, so commit to making a copy.
|
| + copy = JS('=List', 'new Array(#)', length);
|
| + writeSlot(slot, copy);
|
| + }
|
| + return copy;
|
| + }
|
| +
|
| + int i = 0;
|
| +
|
| + if (_isJavaScriptArray(e) &&
|
| + // We have to copy immutable lists, otherwise the structured clone
|
| + // algorithm will copy the .immutable$list marker property, making the
|
| + // list immutable when received!
|
| + !_isImmutableJavaScriptArray(e)) {
|
| + writeSlot(slot, true); // Deferred copy.
|
| + for ( ; i < length; i++) {
|
| + var element = e[i];
|
| + var elementCopy = walk(element);
|
| + if (!identical(elementCopy, element)) {
|
| + copy = readSlot(slot); // Cyclic reference may have created it.
|
| + if (true == copy) {
|
| + copy = JS('=List', 'new Array(#)', length);
|
| + writeSlot(slot, copy);
|
| + }
|
| + for (int j = 0; j < i; j++) {
|
| + copy[j] = e[j];
|
| + }
|
| + copy[i] = elementCopy;
|
| + i++;
|
| + break;
|
| + }
|
| + }
|
| + if (copy == null) {
|
| + copy = e;
|
| + writeSlot(slot, copy);
|
| + }
|
| + } else {
|
| + // Not a JavaScript Array. We are forced to make a copy.
|
| + copy = JS('=List', 'new Array(#)', length);
|
| + writeSlot(slot, copy);
|
| + }
|
| +
|
| + for ( ; i < length; i++) {
|
| + copy[i] = walk(e[i]);
|
| + }
|
| + return copy;
|
| + }
|
| +
|
| + throw new UnimplementedError('structured clone of other type');
|
| + }
|
| +
|
| + var copy = walk(value);
|
| + cleanupSlots();
|
| + return copy;
|
| }
|
|
|
| +/**
|
| + * Converts a native value into a Dart object.
|
| + *
|
| + * If [mustCopy] is [:false:], may return the original input. May mutate the
|
| + * original input (but will be idempotent if mutation occurs). It is assumed
|
| + * that this conversion happens on native serializable script values such values
|
| + * from native DOM calls.
|
| + *
|
| + * [object] is the result of a structured clone operation.
|
| + *
|
| + * If necessary, JavaScript Dates are converted into Dart Dates.
|
| + *
|
| + * If [mustCopy] is [:true:], the entire object is copied and the original input
|
| + * is not mutated. This should be the case where Dart and JavaScript code can
|
| + * access the value, for example, via multiple event listeners for
|
| + * MessageEvents. Mutating the object to make it more 'Dart-like' would corrupt
|
| + * the value as seen from the JavaScript listeners.
|
| + */
|
| +_convertNativeToDart_AcceptStructuredClone(object, {mustCopy = false}) {
|
| +
|
| + // TODO(sra): Replace slots with identity hash table that works on non-dart
|
| + // objects.
|
| + var values = [];
|
| + var copies = [];
|
| +
|
| + int findSlot(value) {
|
| + int length = values.length;
|
| + for (int i = 0; i < length; i++) {
|
| + if (identical(values[i], value)) return i;
|
| + }
|
| + values.add(value);
|
| + copies.add(null);
|
| + return length;
|
| + }
|
| + readSlot(int i) => copies[i];
|
| + writeSlot(int i, x) { copies[i] = x; }
|
| +
|
| + walk(e) {
|
| + if (e == null) return e;
|
| + if (e is bool) return e;
|
| + if (e is num) return e;
|
| + if (e is String) return e;
|
| +
|
| + if (_isJavaScriptDate(e)) {
|
| + // TODO(sra).
|
| + throw new UnimplementedError('structured clone of Date');
|
| + }
|
| +
|
| + if (_isJavaScriptRegExp(e)) {
|
| + // TODO(sra).
|
| + throw new UnimplementedError('structured clone of RegExp');
|
| + }
|
| +
|
| + if (_isJavaScriptSimpleObject(e)) {
|
| + // TODO(sra): If mustCopy is false, swizzle the prototype for one of a Map
|
| + // implementation that uses the properies as storage.
|
| + var slot = findSlot(e);
|
| + var copy = readSlot(slot);
|
| + if (copy != null) return copy;
|
| + copy = {};
|
| +
|
| + writeSlot(slot, copy);
|
| + for (final key in JS('=List', 'Object.keys(#)', e)) {
|
| + copy[key] = walk(JS('var', '#[#]', e, key));
|
| + }
|
| + return copy;
|
| + }
|
| +
|
| + if (_isJavaScriptArray(e)) {
|
| + var slot = findSlot(e);
|
| + var copy = readSlot(slot);
|
| + if (copy != null) return copy;
|
| +
|
| + int length = e.length;
|
| + // Since a JavaScript Array is an instance of Dart List, we can modify it
|
| + // in-place unless we must copy.
|
| + copy = mustCopy ? JS('=List', 'new Array(#)', length) : e;
|
| + writeSlot(slot, copy);
|
| +
|
| + for (int i = 0; i < length; i++) {
|
| + copy[i] = walk(e[i]);
|
| + }
|
| + return copy;
|
| + }
|
| +
|
| + // Assume anything else is already a valid Dart object, either by having
|
| + // already been processed, or e.g. a clonable native class.
|
| + return e;
|
| + }
|
| +
|
| + var copy = walk(object);
|
| + return copy;
|
| +}
|
| +
|
| +
|
| +bool _isJavaScriptDate(value) => JS('bool', '# instanceof Date', value);
|
| +bool _isJavaScriptRegExp(value) => JS('bool', '# instanceof RegExp', value);
|
| +bool _isJavaScriptArray(value) => JS('bool', '# instanceof Array', value);
|
| +bool _isJavaScriptSimpleObject(value) =>
|
| + JS('bool', 'Object.getPrototypeOf(#) === Object.prototype', value);
|
| +bool _isImmutableJavaScriptArray(value) =>
|
| + JS('bool', r'!!(#.immutable$list)', value);
|
| +
|
| +
|
| +
|
| +const String _serializedScriptValue =
|
| + 'num|String|bool|'
|
| + '=List|=Object|'
|
| + 'Blob|File|ArrayBuffer|ArrayBufferView'
|
| + // TODO(sra): Add Date, RegExp.
|
| + ;
|
| +const _annotation_Creates_SerializedScriptValue =
|
| + const Creates(_serializedScriptValue);
|
| +const _annotation_Returns_SerializedScriptValue =
|
| + const Returns(_serializedScriptValue);
|
|
|
| const String _idbKey = '=List|=Object|num|String'; // TODO(sra): Add Date.
|
| const _annotation_Creates_IDBKey = const Creates(_idbKey);
|
|
|