| 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 021a3ca53e198019a839085e18344c8c674afc6c..3c3799c99164f12b00a14e671c1b3c0604d5c239 100644
|
| --- a/sdk/lib/html/dart2js/html_dart2js.dart
|
| +++ b/sdk/lib/html/dart2js/html_dart2js.dart
|
| @@ -5961,14 +5961,14 @@ class DialogElement extends Element native "HTMLDialogElement" {
|
| // http://www.w3.org/TR/file-system-api/#the-directoryentry-interface
|
| @Experimental
|
| class DirectoryEntry extends Entry native "DirectoryEntry" {
|
| -
|
| +
|
| /**
|
| * Create a new directory with the specified `path`. If `exclusive` is true,
|
| * the returned Future will complete with an error if a directory already
|
| * exists with the specified `path`.
|
| */
|
| Future<Entry> createDirectory(String path, {bool exclusive: false}) {
|
| - return _getDirectory(path, options:
|
| + return _getDirectory(path, options:
|
| {'create': true, 'exclusive': exclusive});
|
| }
|
|
|
| @@ -5989,7 +5989,7 @@ class DirectoryEntry extends Entry native "DirectoryEntry" {
|
| Future<Entry> createFile(String path, {bool exclusive: false}) {
|
| return _getFile(path, options: {'create': true, 'exclusive': exclusive});
|
| }
|
| -
|
| +
|
| /**
|
| * Retrieve an already existing file entry. The returned future will
|
| * result in an error if a file at `path` does not exist or if the item at
|
| @@ -10630,7 +10630,7 @@ class Geolocation native "Geolocation" {
|
|
|
| int watchId;
|
| var controller;
|
| - controller = new StreamController<Geoposition>(
|
| + controller = new StreamController<Geoposition>(sync: true,
|
| onListen: () {
|
| assert(watchId == null);
|
| watchId = $dom_watchPosition(
|
| @@ -15384,18 +15384,18 @@ class Navigator native "Navigator" {
|
| * document.body.append(video);
|
| * });
|
| *
|
| - * The user can also pass in Maps to the audio or video parameters to specify
|
| - * mandatory and optional constraints for the media stream. Not passing in a
|
| - * map, but passing in `true` will provide a MediaStream with audio or
|
| + * The user can also pass in Maps to the audio or video parameters to specify
|
| + * mandatory and optional constraints for the media stream. Not passing in a
|
| + * map, but passing in `true` will provide a MediaStream with audio or
|
| * video capabilities, but without any additional constraints. The particular
|
| - * constraint names for audio and video are still in flux, but as of this
|
| + * constraint names for audio and video are still in flux, but as of this
|
| * writing, here is an example providing more constraints.
|
| *
|
| * window.navigator.getUserMedia(
|
| - * audio: true,
|
| - * video: {'mandatory':
|
| + * audio: true,
|
| + * video: {'mandatory':
|
| * { 'minAspectRatio': 1.333, 'maxAspectRatio': 1.334 },
|
| - * 'optional':
|
| + * 'optional':
|
| * [{ 'minFrameRate': 60 },
|
| * { 'maxWidth': 640 }]
|
| * });
|
| @@ -16242,7 +16242,7 @@ class Notation extends Node native "Notation" {
|
| @Experimental // experimental
|
| class Notification extends EventTarget native "Notification" {
|
|
|
| - factory Notification(String title, {String titleDir: null, String body: null,
|
| + factory Notification(String title, {String titleDir: null, String body: null,
|
| String bodyDir: null, String tag: null, String iconUrl: null}) {
|
|
|
| var parsedOptions = {};
|
| @@ -17870,7 +17870,7 @@ class RtcIceCandidate native "RTCIceCandidate,mozRTCIceCandidate" {
|
| // the unprefixed RTCIceCandidate in Firefox (currently both are defined,
|
| // but one can't be used as a constructor).
|
| var constructorName = JS('', 'window[#]',
|
| - Device.isFirefox ? '${Device.propertyPrefix}RTCIceCandidate' :
|
| + Device.isFirefox ? '${Device.propertyPrefix}RTCIceCandidate' :
|
| 'RTCIceCandidate');
|
| return JS('RtcIceCandidate', 'new #(#)', constructorName,
|
| convertDartToNative_SerializedScriptValue(dictionary));
|
| @@ -17935,7 +17935,7 @@ class RtcPeerConnection extends EventTarget native "RTCPeerConnection,mozRTCPeer
|
| // Currently in Firefox some of the RTC elements are defined but throw an
|
| // error unless the user has specifically enabled them in their
|
| // about:config. So we have to construct an element to actually test if RTC
|
| - // is supported at the given time.
|
| + // is supported at the given time.
|
| try {
|
| new RtcPeerConnection(
|
| {"iceServers": [ {"url":"stun:localhost"}]});
|
| @@ -18238,9 +18238,9 @@ class RtcSessionDescription native "RTCSessionDescription,mozRTCSessionDescripti
|
| // the unprefixed RTCIceCandidate in Firefox (currently both are defined,
|
| // but one can't be used as a constructor).
|
| var constructorName = JS('', 'window[#]',
|
| - Device.isFirefox ? '${Device.propertyPrefix}RTCSessionDescription' :
|
| + Device.isFirefox ? '${Device.propertyPrefix}RTCSessionDescription' :
|
| 'RTCSessionDescription');
|
| - return JS('RtcSessionDescription',
|
| + return JS('RtcSessionDescription',
|
| 'new #(#)', constructorName,
|
| convertDartToNative_SerializedScriptValue(dictionary));
|
| }
|
| @@ -19915,8 +19915,8 @@ class StorageInfo native "StorageInfo" {
|
| Future<StorageInfoUsage> queryUsageAndQuota(int storageType) {
|
| var completer = new Completer<StorageInfoUsage>();
|
| _queryUsageAndQuota(storageType,
|
| - (currentUsageInBytes, currentQuotaInBytes) {
|
| - completer.complete(new StorageInfoUsage(currentUsageInBytes,
|
| + (currentUsageInBytes, currentQuotaInBytes) {
|
| + completer.complete(new StorageInfoUsage(currentUsageInBytes,
|
| currentQuotaInBytes));
|
| },
|
| (error) { completer.completeError(error); });
|
| @@ -19924,7 +19924,7 @@ class StorageInfo native "StorageInfo" {
|
| }
|
| }
|
|
|
| -/**
|
| +/**
|
| * A simple container class for the two values that are returned from the
|
| * futures in requestQuota and queryUsageAndQuota.
|
| */
|
| @@ -20367,7 +20367,7 @@ class TemplateElement extends Element native "HTMLTemplateElement" {
|
| @Experimental
|
| static Stream<DocumentFragment> get instanceCreated {
|
| if (_instanceCreated == null) {
|
| - _instanceCreated = new StreamController<DocumentFragment>();
|
| + _instanceCreated = new StreamController<DocumentFragment>(sync: true);
|
| }
|
| return _instanceCreated.stream;
|
| }
|
| @@ -23294,7 +23294,7 @@ class _BeforeUnloadEventStreamProvider implements
|
| const _BeforeUnloadEventStreamProvider(this._eventType);
|
|
|
| Stream<BeforeUnloadEvent> forTarget(EventTarget e, {bool useCapture: false}) {
|
| - var controller = new StreamController();
|
| + var controller = new StreamController(sync: true);
|
| var stream = new _EventStream(e, _eventType, useCapture);
|
| stream.listen((event) {
|
| var wrapped = new _BeforeUnloadEvent(event);
|
| @@ -25635,7 +25635,7 @@ class _KeyboardEventHandler extends EventStreamProvider<KeyEvent> {
|
| static final int _ROMAN_ALPHABET_OFFSET = "a".codeUnits[0] - "A".codeUnits[0];
|
|
|
| /** Controller to produce KeyEvents for the stream. */
|
| - final StreamController _controller = new StreamController();
|
| + final StreamController _controller = new StreamController(sync: true);
|
|
|
| static const _EVENT_TYPE = 'KeyEvent';
|
|
|
| @@ -25704,7 +25704,7 @@ class _KeyboardEventHandler extends EventStreamProvider<KeyEvent> {
|
| * Hook up all event listeners under the covers so we can estimate keycodes
|
| * and charcodes when they are not provided.
|
| */
|
| - _KeyboardEventHandler.initializeAllEventListeners(this._type, this._target) :
|
| + _KeyboardEventHandler.initializeAllEventListeners(this._type, this._target) :
|
| super(_EVENT_TYPE) {
|
| Element.keyDownEvent.forTarget(_target, useCapture: true).listen(
|
| processKeyDown);
|
| @@ -26849,7 +26849,8 @@ class PathObserver {
|
| // TODO(jmesserly): if the path is empty, or the object is! Observable, we
|
| // can optimize the PathObserver to be more lightweight.
|
|
|
| - _values = new StreamController.broadcast(onListen: _observe,
|
| + _values = new StreamController.broadcast(sync: true,
|
| + onListen: _observe,
|
| onCancel: _unobserve);
|
|
|
| if (_isValid) {
|
| @@ -29260,7 +29261,7 @@ class FixedSizeListIterator<T> implements Iterator<T> {
|
| final int _length; // Cache array length for faster access.
|
| int _position;
|
| T _current;
|
| -
|
| +
|
| FixedSizeListIterator(List<T> array)
|
| : _array = array,
|
| _position = -1,
|
|
|