Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(285)

Side by Side Diff: tool/input_sdk/lib/html/ddc/html_ddc.dart

Issue 1633003002: Add --modules=node support (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: merged master Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/codegen_test.dart ('k') | tool/input_sdk/lib/html/html_common/html_common_ddc.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /** 1 /**
2 * HTML elements and other resources for web-based applications that need to 2 * HTML elements and other resources for web-based applications that need to
3 * interact with the browser and the DOM (Document Object Model). 3 * interact with the browser and the DOM (Document Object Model).
4 * 4 *
5 * This library includes DOM element types, CSS styling, local storage, 5 * This library includes DOM element types, CSS styling, local storage,
6 * media, speech, events, and more. 6 * media, speech, events, and more.
7 * To get started, 7 * To get started,
8 * check out the [Element] class, the base class for many of the HTML 8 * check out the [Element] class, the base class for many of the HTML
9 * DOM types. 9 * DOM types.
10 * 10 *
11 * ## Other resources 11 * ## Other resources
12 * 12 *
13 * * If you've never written a web app before, try our 13 * * If you've never written a web app before, try our
14 * tutorials—[A Game of Darts](http://dartlang.org/docs/tutorials). 14 * tutorials—[A Game of Darts](http://dartlang.org/docs/tutorials).
15 * 15 *
16 * * To see some web-based Dart apps in action and to play with the code, 16 * * To see some web-based Dart apps in action and to play with the code,
17 * download 17 * download
18 * [Dart Editor](http://www.dartlang.org/#get-started) 18 * [Dart Editor](http://www.dartlang.org/#get-started)
19 * and run its built-in examples. 19 * and run its built-in examples.
20 * 20 *
21 * * For even more examples, see 21 * * For even more examples, see
22 * [Dart HTML5 Samples](https://github.com/dart-lang/dart-html5-samples) 22 * [Dart HTML5 Samples](https://github.com/dart-lang/dart-html5-samples)
23 * on Github. 23 * on Github.
24 */ 24 */
25 library dart.dom.html; 25 library dart.dom.html;
26 26
27 import 'dart:_runtime' show global_;
27 import 'dart:async'; 28 import 'dart:async';
28 import 'dart:collection'; 29 import 'dart:collection';
29 import 'dart:_internal' hide Symbol; 30 import 'dart:_internal' hide Symbol;
30 import 'dart:html_common'; 31 import 'dart:html_common';
31 import 'dart:isolate'; 32 import 'dart:isolate';
32 import "dart:convert"; 33 import "dart:convert";
33 import 'dart:math'; 34 import 'dart:math';
34 import 'dart:_native_typed_data'; 35 import 'dart:_native_typed_data';
35 import 'dart:typed_data'; 36 import 'dart:typed_data';
36 import 'dart:_isolate_helper' show IsolateNatives; 37 import 'dart:_isolate_helper' show IsolateNatives;
(...skipping 4883 matching lines...) Expand 10 before | Expand all | Expand 10 after
4920 /** 4921 /**
4921 * Parses the specified text as HTML and adds the resulting node after the 4922 * Parses the specified text as HTML and adds the resulting node after the
4922 * last child of this document fragment. 4923 * last child of this document fragment.
4923 */ 4924 */
4924 void appendHtml(String text, {NodeValidator validator, 4925 void appendHtml(String text, {NodeValidator validator,
4925 NodeTreeSanitizer, treeSanitizer}) { 4926 NodeTreeSanitizer, treeSanitizer}) {
4926 this.append(new DocumentFragment.html(text, validator: validator, 4927 this.append(new DocumentFragment.html(text, validator: validator,
4927 treeSanitizer: treeSanitizer)); 4928 treeSanitizer: treeSanitizer));
4928 } 4929 }
4929 4930
4930 /** 4931 /**
4931 * Alias for [querySelector]. Note this function is deprecated because its 4932 * Alias for [querySelector]. Note this function is deprecated because its
4932 * semantics will be changing in the future. 4933 * semantics will be changing in the future.
4933 */ 4934 */
4934 @deprecated 4935 @deprecated
4935 @Experimental() 4936 @Experimental()
4936 @DomName('DocumentFragment.querySelector') 4937 @DomName('DocumentFragment.querySelector')
4937 Element query(String relativeSelectors) { 4938 Element query(String relativeSelectors) {
4938 return querySelector(relativeSelectors); 4939 return querySelector(relativeSelectors);
4939 } 4940 }
4940 4941
4941 /** 4942 /**
4942 * Alias for [querySelectorAll]. Note this function is deprecated because its 4943 * Alias for [querySelectorAll]. Note this function is deprecated because its
4943 * semantics will be changing in the future. 4944 * semantics will be changing in the future.
4944 */ 4945 */
4945 @deprecated 4946 @deprecated
4946 @Experimental() 4947 @Experimental()
4947 @DomName('DocumentFragment.querySelectorAll') 4948 @DomName('DocumentFragment.querySelectorAll')
4948 ElementList<Element> queryAll(String relativeSelectors) { 4949 ElementList<Element> queryAll(String relativeSelectors) {
4949 return querySelectorAll(relativeSelectors); 4950 return querySelectorAll(relativeSelectors);
4950 } 4951 }
4951 // To suppress missing implicit constructor warnings. 4952 // To suppress missing implicit constructor warnings.
(...skipping 2646 matching lines...) Expand 10 before | Expand all | Expand 10 after
7598 * Normally events should be created via their constructors, if available. 7599 * Normally events should be created via their constructors, if available.
7599 * 7600 *
7600 * var e = new Event.type('MouseEvent', 'mousedown', true, true); 7601 * var e = new Event.type('MouseEvent', 'mousedown', true, true);
7601 */ 7602 */
7602 factory Event.eventType(String type, String name, {bool canBubble: true, 7603 factory Event.eventType(String type, String name, {bool canBubble: true,
7603 bool cancelable: true}) { 7604 bool cancelable: true}) {
7604 final Event e = document._createEvent(type); 7605 final Event e = document._createEvent(type);
7605 e._initEvent(name, canBubble, cancelable); 7606 e._initEvent(name, canBubble, cancelable);
7606 return e; 7607 return e;
7607 } 7608 }
7608 7609
7609 /** The CSS selector involved with event delegation. */ 7610 /** The CSS selector involved with event delegation. */
7610 String _selector; 7611 String _selector;
7611 7612
7612 /** 7613 /**
7613 * A pointer to the element whose CSS selector matched within which an event 7614 * A pointer to the element whose CSS selector matched within which an event
7614 * was fired. If this Event was not associated with any Event delegation, 7615 * was fired. If this Event was not associated with any Event delegation,
7615 * accessing this value will throw an [UnsupportedError]. 7616 * accessing this value will throw an [UnsupportedError].
7616 */ 7617 */
7617 Element get matchingTarget { 7618 Element get matchingTarget {
7618 if (_selector == null) { 7619 if (_selector == null) {
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
7833 Events(this._ptr); 7834 Events(this._ptr);
7834 7835
7835 Stream operator [](String type) { 7836 Stream operator [](String type) {
7836 return new _EventStream(_ptr, type, false); 7837 return new _EventStream(_ptr, type, false);
7837 } 7838 }
7838 } 7839 }
7839 7840
7840 class ElementEvents extends Events { 7841 class ElementEvents extends Events {
7841 /* Raw event target. */ 7842 /* Raw event target. */
7842 static final webkitEvents = { 7843 static final webkitEvents = {
7843 'animationend' : 'webkitAnimationEnd', 7844 'animationend' : 'webkitAnimationEnd',
7844 'animationiteration' : 'webkitAnimationIteration', 7845 'animationiteration' : 'webkitAnimationIteration',
7845 'animationstart' : 'webkitAnimationStart', 7846 'animationstart' : 'webkitAnimationStart',
7846 'fullscreenchange' : 'webkitfullscreenchange', 7847 'fullscreenchange' : 'webkitfullscreenchange',
7847 'fullscreenerror' : 'webkitfullscreenerror', 7848 'fullscreenerror' : 'webkitfullscreenerror',
7848 'keyadded' : 'webkitkeyadded', 7849 'keyadded' : 'webkitkeyadded',
7849 'keyerror' : 'webkitkeyerror', 7850 'keyerror' : 'webkitkeyerror',
7850 'keymessage' : 'webkitkeymessage', 7851 'keymessage' : 'webkitkeymessage',
7851 'needkey' : 'webkitneedkey', 7852 'needkey' : 'webkitneedkey',
7852 'pointerlockchange' : 'webkitpointerlockchange', 7853 'pointerlockchange' : 'webkitpointerlockchange',
7853 'pointerlockerror' : 'webkitpointerlockerror', 7854 'pointerlockerror' : 'webkitpointerlockerror',
7854 'resourcetimingbufferfull' : 'webkitresourcetimingbufferfull', 7855 'resourcetimingbufferfull' : 'webkitresourcetimingbufferfull',
7855 'transitionend': 'webkitTransitionEnd', 7856 'transitionend': 'webkitTransitionEnd',
7856 'speechchange' : 'webkitSpeechChange' 7857 'speechchange' : 'webkitSpeechChange'
7857 }; 7858 };
7858 7859
7859 ElementEvents(Element ptr) : super(ptr); 7860 ElementEvents(Element ptr) : super(ptr);
7860 7861
7861 Stream operator [](String type) { 7862 Stream operator [](String type) {
7862 if (webkitEvents.keys.contains(type.toLowerCase())) { 7863 if (webkitEvents.keys.contains(type.toLowerCase())) {
7863 if (Device.isWebKit) { 7864 if (Device.isWebKit) {
7864 return new _ElementEventStreamImpl( 7865 return new _ElementEventStreamImpl(
(...skipping 809 matching lines...) Expand 10 before | Expand all | Expand 10 after
8674 responseType: responseType, 8675 responseType: responseType,
8675 requestHeaders: requestHeaders, sendData: formData, 8676 requestHeaders: requestHeaders, sendData: formData,
8676 onProgress: onProgress); 8677 onProgress: onProgress);
8677 } 8678 }
8678 8679
8679 /** 8680 /**
8680 * Creates and sends a URL request for the specified [url]. 8681 * Creates and sends a URL request for the specified [url].
8681 * 8682 *
8682 * By default `request` will perform an HTTP GET request, but a different 8683 * By default `request` will perform an HTTP GET request, but a different
8683 * method (`POST`, `PUT`, `DELETE`, etc) can be used by specifying the 8684 * method (`POST`, `PUT`, `DELETE`, etc) can be used by specifying the
8684 * [method] parameter. (See also [HttpRequest.postFormData] for `POST` 8685 * [method] parameter. (See also [HttpRequest.postFormData] for `POST`
8685 * requests only. 8686 * requests only.
8686 * 8687 *
8687 * The Future is completed when the response is available. 8688 * The Future is completed when the response is available.
8688 * 8689 *
8689 * If specified, `sendData` will send data in the form of a [ByteBuffer], 8690 * If specified, `sendData` will send data in the form of a [ByteBuffer],
8690 * [Blob], [Document], [String], or [FormData] along with the HttpRequest. 8691 * [Blob], [Document], [String], or [FormData] along with the HttpRequest.
8691 * 8692 *
8692 * If specified, [responseType] sets the desired response format for the 8693 * If specified, [responseType] sets the desired response format for the
8693 * request. By default it is [String], but can also be 'arraybuffer', 'blob', 8694 * request. By default it is [String], but can also be 'arraybuffer', 'blob',
8694 * 'document', 'json', or 'text'. See also [HttpRequest.responseType] 8695 * 'document', 'json', or 'text'. See also [HttpRequest.responseType]
8695 * for more information. 8696 * for more information.
8696 * 8697 *
8697 * The [withCredentials] parameter specified that credentials such as a cookie 8698 * The [withCredentials] parameter specified that credentials such as a cookie
8698 * (already) set in the header or 8699 * (already) set in the header or
8699 * [authorization headers](http://tools.ietf.org/html/rfc1945#section-10.2) 8700 * [authorization headers](http://tools.ietf.org/html/rfc1945#section-10.2)
8700 * should be specified for the request. Details to keep in mind when using 8701 * should be specified for the request. Details to keep in mind when using
8701 * credentials: 8702 * credentials:
8702 * 8703 *
8703 * * Using credentials is only useful for cross-origin requests. 8704 * * Using credentials is only useful for cross-origin requests.
8704 * * The `Access-Control-Allow-Origin` header of `url` cannot contain a wildca rd (*). 8705 * * The `Access-Control-Allow-Origin` header of `url` cannot contain a wildca rd (*).
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
8767 xhr.onLoad.listen((e) { 8768 xhr.onLoad.listen((e) {
8768 var accepted = xhr.status >= 200 && xhr.status < 300; 8769 var accepted = xhr.status >= 200 && xhr.status < 300;
8769 var fileUri = xhr.status == 0; // file:// URIs have status of 0. 8770 var fileUri = xhr.status == 0; // file:// URIs have status of 0.
8770 var notModified = xhr.status == 304; 8771 var notModified = xhr.status == 304;
8771 // Redirect status is specified up to 307, but others have been used in 8772 // Redirect status is specified up to 307, but others have been used in
8772 // practice. Notably Google Drive uses 308 Resume Incomplete for 8773 // practice. Notably Google Drive uses 308 Resume Incomplete for
8773 // resumable uploads, and it's also been used as a redirect. The 8774 // resumable uploads, and it's also been used as a redirect. The
8774 // redirect case will be handled by the browser before it gets to us, 8775 // redirect case will be handled by the browser before it gets to us,
8775 // so if we see it we should pass it through to the user. 8776 // so if we see it we should pass it through to the user.
8776 var unknownRedirect = xhr.status > 307 && xhr.status < 400; 8777 var unknownRedirect = xhr.status > 307 && xhr.status < 400;
8777 8778
8778 if (accepted || fileUri || notModified || unknownRedirect) { 8779 if (accepted || fileUri || notModified || unknownRedirect) {
8779 completer.complete(xhr); 8780 completer.complete(xhr);
8780 } else { 8781 } else {
8781 completer.completeError(e); 8782 completer.completeError(e);
8782 } 8783 }
8783 }); 8784 });
8784 8785
8785 xhr.onError.listen(completer.completeError); 8786 xhr.onError.listen(completer.completeError);
8786 8787
8787 if (sendData != null) { 8788 if (sendData != null) {
(...skipping 1839 matching lines...) Expand 10 before | Expand all | Expand 10 after
10627 * The [type] of the event identifies what kind of interaction occurred. 10628 * The [type] of the event identifies what kind of interaction occurred.
10628 * 10629 *
10629 * See also: 10630 * See also:
10630 * 10631 *
10631 * * [KeyboardEvent](https://developer.mozilla.org/en/DOM/KeyboardEvent) at MDN. 10632 * * [KeyboardEvent](https://developer.mozilla.org/en/DOM/KeyboardEvent) at MDN.
10632 */ 10633 */
10633 @DomName('KeyboardEvent') 10634 @DomName('KeyboardEvent')
10634 @Native("KeyboardEvent") 10635 @Native("KeyboardEvent")
10635 class KeyboardEvent extends UIEvent { 10636 class KeyboardEvent extends UIEvent {
10636 10637
10637 /** 10638 /**
10638 * Programmatically create a KeyboardEvent. 10639 * Programmatically create a KeyboardEvent.
10639 * 10640 *
10640 * Due to browser differences, keyCode, charCode, or keyIdentifier values 10641 * Due to browser differences, keyCode, charCode, or keyIdentifier values
10641 * cannot be specified in this base level constructor. This constructor 10642 * cannot be specified in this base level constructor. This constructor
10642 * enables the user to programmatically create and dispatch a [KeyboardEvent], 10643 * enables the user to programmatically create and dispatch a [KeyboardEvent],
10643 * but it will not contain any particular key content. For programmatically 10644 * but it will not contain any particular key content. For programmatically
10644 * creating keyboard events with specific key value contents, see the custom 10645 * creating keyboard events with specific key value contents, see the custom
10645 * Event [KeyEvent]. 10646 * Event [KeyEvent].
10646 */ 10647 */
10647 factory KeyboardEvent(String type, 10648 factory KeyboardEvent(String type,
10648 {Window view, bool canBubble: true, bool cancelable: true, 10649 {Window view, bool canBubble: true, bool cancelable: true,
10649 int keyLocation: 1, bool ctrlKey: false, 10650 int keyLocation: 1, bool ctrlKey: false,
10650 bool altKey: false, bool shiftKey: false, bool metaKey: false}) { 10651 bool altKey: false, bool shiftKey: false, bool metaKey: false}) {
10651 if (view == null) { 10652 if (view == null) {
10652 view = window; 10653 view = window;
10653 } 10654 }
10654 KeyboardEvent e = document._createEvent("KeyboardEvent"); 10655 KeyboardEvent e = document._createEvent("KeyboardEvent");
10655 e._initKeyboardEvent(type, canBubble, cancelable, view, "", 10656 e._initKeyboardEvent(type, canBubble, cancelable, view, "",
(...skipping 7914 matching lines...) Expand 10 before | Expand all | Expand 10 after
18570 // for details. All rights reserved. Use of this source code is governed by a 18571 // for details. All rights reserved. Use of this source code is governed by a
18571 // BSD-style license that can be found in the LICENSE file. 18572 // BSD-style license that can be found in the LICENSE file.
18572 18573
18573 18574
18574 // Iterator for arrays with fixed size. 18575 // Iterator for arrays with fixed size.
18575 class FixedSizeListIterator<T> implements Iterator<T> { 18576 class FixedSizeListIterator<T> implements Iterator<T> {
18576 final List<T> _array; 18577 final List<T> _array;
18577 final int _length; // Cache array length for faster access. 18578 final int _length; // Cache array length for faster access.
18578 int _position; 18579 int _position;
18579 T _current; 18580 T _current;
18580 18581
18581 FixedSizeListIterator(List<T> array) 18582 FixedSizeListIterator(List<T> array)
18582 : _array = array, 18583 : _array = array,
18583 _position = -1, 18584 _position = -1,
18584 _length = array.length; 18585 _length = array.length;
18585 18586
18586 bool moveNext() { 18587 bool moveNext() {
18587 int nextPosition = _position + 1; 18588 int nextPosition = _position + 1;
18588 if (nextPosition < _length) { 18589 if (nextPosition < _length) {
18589 _current = _array[nextPosition]; 18590 _current = _array[nextPosition];
18590 _position = nextPosition; 18591 _position = nextPosition;
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
19029 @Experimental() // untriaged 19030 @Experimental() // untriaged
19030 int get location => throw new UnimplementedError(); 19031 int get location => throw new UnimplementedError();
19031 @Experimental() // untriaged 19032 @Experimental() // untriaged
19032 bool get repeat => throw new UnimplementedError(); 19033 bool get repeat => throw new UnimplementedError();
19033 dynamic get _get_view => throw new UnimplementedError(); 19034 dynamic get _get_view => throw new UnimplementedError();
19034 } 19035 }
19035 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 19036 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
19036 // for details. All rights reserved. Use of this source code is governed by a 19037 // for details. All rights reserved. Use of this source code is governed by a
19037 // BSD-style license that can be found in the LICENSE file. 19038 // BSD-style license that can be found in the LICENSE file.
19038 19039
19039
19040 class Platform { 19040 class Platform {
19041 /** 19041 /**
19042 * Returns true if dart:typed_data types are supported on this 19042 * Returns true if dart:typed_data types are supported on this
19043 * browser. If false, using these types will generate a runtime 19043 * browser. If false, using these types will generate a runtime
19044 * error. 19044 * error.
19045 */ 19045 */
19046 static final supportsTypedData = JS('bool', '!!(window.ArrayBuffer)'); 19046 static final supportsTypedData = JS('bool', '!!($global_.ArrayBuffer)');
19047 19047
19048 /** 19048 /**
19049 * Returns true if SIMD types in dart:typed_data types are supported 19049 * Returns true if SIMD types in dart:typed_data types are supported
19050 * on this browser. If false, using these types will generate a runtime 19050 * on this browser. If false, using these types will generate a runtime
19051 * error. 19051 * error.
19052 */ 19052 */
19053 static final supportsSimd = false; 19053 static final supportsSimd = false;
19054 } 19054 }
19055 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 19055 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
19056 // for details. All rights reserved. Use of this source code is governed by a 19056 // for details. All rights reserved. Use of this source code is governed by a
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
19548 * Each web page loaded in the browser has its own [Window], which is a 19548 * Each web page loaded in the browser has its own [Window], which is a
19549 * container for the web page. 19549 * container for the web page.
19550 * 19550 *
19551 * If the web page has any `<iframe>` elements, then each `<iframe>` has its own 19551 * If the web page has any `<iframe>` elements, then each `<iframe>` has its own
19552 * [Window] object, which is accessible only to that `<iframe>`. 19552 * [Window] object, which is accessible only to that `<iframe>`.
19553 * 19553 *
19554 * See also: 19554 * See also:
19555 * 19555 *
19556 * * [Window](https://developer.mozilla.org/en-US/docs/Web/API/window) from MD N. 19556 * * [Window](https://developer.mozilla.org/en-US/docs/Web/API/window) from MD N.
19557 */ 19557 */
19558 Window get window => wrap_jso(JS('', 'window')); 19558
19559 final Window window = wrap_jso(JS('', '$global_'));
19559 19560
19560 /** 19561 /**
19561 * Root node for all content in a web page. 19562 * Root node for all content in a web page.
19562 */ 19563 */
19563 HtmlDocument get document => wrap_jso(JS('HtmlDocument', 'document')); 19564 HtmlDocument get document => wrap_jso(JS('HtmlDocument', 'document'));
19564 19565
19565 // Workaround for tags like <cite> that lack their own Element subclass -- 19566 // Workaround for tags like <cite> that lack their own Element subclass --
19566 // Dart issue 1990. 19567 // Dart issue 1990.
19567 @Native("HTMLElement") 19568 @Native("HTMLElement")
19568 class HtmlElement extends Element { 19569 class HtmlElement extends Element {
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
19791 } 19792 }
19792 return null; 19793 return null;
19793 } 19794 }
19794 19795
19795 Function _getHtmlFunction(String key) { 19796 Function _getHtmlFunction(String key) {
19796 if (htmlBlinkFunctionMap.containsKey(key)) { 19797 if (htmlBlinkFunctionMap.containsKey(key)) {
19797 return htmlBlinkFunctionMap[key](); 19798 return htmlBlinkFunctionMap[key]();
19798 } 19799 }
19799 return null; 19800 return null;
19800 } 19801 }
19801
OLDNEW
« no previous file with comments | « test/codegen_test.dart ('k') | tool/input_sdk/lib/html/html_common/html_common_ddc.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698