Fix more warnings for dart:html.

BUG=
R=blois@google.com

Review URL: https://codereview.chromium.org//153823007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32618 260f80e4-7a28-3924-810f-c04153c831b5
This commit is contained in:
efortuna@google.com 2014-02-12 20:12:09 +00:00
parent 63d7f6337b
commit 9f1b31b001
17 changed files with 257 additions and 117 deletions

View file

@ -111,7 +111,7 @@ abstract class _EntryArray implements List<Entry> native "EntryArray" {}
@DocsEditable()
@DomName('AbstractWorker')
class AbstractWorker extends Interceptor implements EventTarget native "AbstractWorker" {
abstract class AbstractWorker extends Interceptor implements EventTarget native "AbstractWorker" {
// To suppress missing implicit constructor warnings.
factory AbstractWorker._() { throw new UnsupportedError("Not supported"); }
@ -266,6 +266,12 @@ class AnchorElement extends HtmlElement implements UrlUtils native "HTMLAnchorEl
@DocsEditable()
String href;
@DomName('HTMLAnchorElement.origin')
@DocsEditable()
// WebKit only
@Experimental() // non-standard
final String origin;
@DomName('HTMLAnchorElement.password')
@DocsEditable()
@Experimental() // untriaged
@ -7843,16 +7849,19 @@ class DocumentFragment extends Node implements ParentNode native "DocumentFragme
validator: validator, treeSanitizer: treeSanitizer);
}
HtmlCollection get _children => throw new UnimplementedError(
'Use _docChildren instead');
// Native field is used only by Dart code so does not lead to instantiation
// of native classes
@Creates('Null')
List<Element> _children;
List<Element> _docChildren;
List<Element> get children {
if (_children == null) {
_children = new FilteredElementList(this);
if (_docChildren == null) {
_docChildren = new FilteredElementList(this);
}
return _children;
return _docChildren;
}
void set children(List<Element> value) {
@ -7988,7 +7997,7 @@ class DocumentFragment extends Node implements ParentNode native "DocumentFragme
@DomName('DocumentType')
// http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-412266927
@deprecated // stable
class DocumentType extends Node implements ChildNode native "DocumentType" {
abstract class DocumentType extends Node implements ChildNode {
// To suppress missing implicit constructor warnings.
factory DocumentType._() { throw new UnsupportedError("Not supported"); }
@ -10901,19 +10910,6 @@ abstract class Element extends Node implements GlobalEventHandlers, ParentNode,
@DocsEditable()
bool hidden;
/**
* The current state of IME composition.
*
* ## Other resources
*
* * [Input method editor specification]
* (http://www.w3.org/TR/ime-api/) from W3C.
*/
@DomName('Element.inputMethodContext')
@DocsEditable()
@Experimental() // untriaged
final InputMethodContext inputMethodContext;
@DomName('Element.isContentEditable')
@DocsEditable()
final bool isContentEditable;
@ -14512,10 +14508,6 @@ class HtmlDocument extends Document native "HTMLDocument" {
class HtmlFormControlsCollection extends HtmlCollection native "HTMLFormControlsCollection" {
// To suppress missing implicit constructor warnings.
factory HtmlFormControlsCollection._() { throw new UnsupportedError("Not supported"); }
@DomName('HTMLFormControlsCollection.__getter__')
@DocsEditable()
Node __getter__(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
@ -14612,17 +14604,6 @@ class HttpRequest extends HttpRequestEventTarget native "XMLHttpRequest" {
*
* This is similar to [request] but specialized for HTTP GET requests which
* return text content.
*
* To add query parameters, append them to the [url] following a `?`,
* joining each key to its value with `=` and separating key-value pairs with
* `&`.
*
* var name = Uri.encodeQueryComponent('John');
* var id = Uri.encodeQueryComponent('42');
* HttpRequest.getString('users.json?name=$name&id=$id')
* .then((HttpRequest resp) {
* // Do something with the response.
* });
*
* See also:
*
@ -14641,20 +14622,6 @@ class HttpRequest extends HttpRequestEventTarget native "XMLHttpRequest" {
* to sending a FormData object with broader browser support but limited to
* String values.
*
* If [data] is supplied, the key/value pairs are URI encoded with
* [Uri.encodeQueryComponent] and converted into an HTTP query string.
*
* Unless otherwise specified, this method appends the following header:
*
* Content-Type: application/x-www-form-urlencoded; charset=UTF-8
*
* Here's an example of using this method:
*
* var data = { 'firstName' : 'John', 'lastName' : 'Doe' };
* HttpRequest.postFormData('/send', data).then((HttpRequest resp) {
* // Do something with the response.
* });
*
* See also:
*
* * [request]
@ -14706,25 +14673,6 @@ class HttpRequest extends HttpRequestEventTarget native "XMLHttpRequest" {
* * The `Access-Control-Allow-Credentials` header of `url` must be set to true.
* * If `Access-Control-Expose-Headers` has not been set to true, only a subset of all the response headers will be returned when calling [getAllRequestHeaders].
*
*
* The following is equivalent to the [getString] sample above:
*
* var name = Uri.encodeQueryComponent('John');
* var id = Uri.encodeQueryComponent('42');
* HttpRequest.request('users.json?name=$name&id=$id')
* .then((HttpRequest resp) {
* // Do something with the response.
* });
*
* Here's an example of submitting an entire form with [FormData].
*
* var myForm = querySelector('form#myForm');
* var data = new FormData(myForm);
* HttpRequest.request('/submit', method: 'POST', sendData: data)
* .then((HttpRequest resp) {
* // Do something with the response.
* });
*
* Note that requests for file:// URIs are only supported by Chrome extensions
* with appropriate permissions in their manifest. Requests to file:// URIs
* will also never fail- the Future will always complete successfully, even
@ -29221,6 +29169,15 @@ class _BeforeUnloadEventStreamProvider implements
String getEventType(EventTarget target) {
return _eventType;
}
ElementStream<BeforeUnloadEvent> forElement(Element e, {bool useCapture: false}) {
return new _ElementEventStreamImpl(e, _eventType, useCapture);
}
ElementStream<BeforeUnloadEvent> _forElementList(ElementList e,
{bool useCapture: false}) {
return new _ElementListEventStreamImpl(e, _eventType, useCapture);
}
}
// 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
@ -29250,11 +29207,6 @@ abstract class WindowEventHandlers extends EventTarget {
// To suppress missing implicit constructor warnings.
factory WindowEventHandlers._() { throw new UnsupportedError("Not supported"); }
@DomName('WindowEventHandlers.beforeunloadEvent')
@DocsEditable()
@Experimental() // untriaged
static const EventStreamProvider<Event> beforeUnloadEvent = const EventStreamProvider<Event>('beforeunload');
@DomName('WindowEventHandlers.hashchangeEvent')
@DocsEditable()
@Experimental() // untriaged
@ -29295,11 +29247,6 @@ abstract class WindowEventHandlers extends EventTarget {
@Experimental() // untriaged
static const EventStreamProvider<Event> unloadEvent = const EventStreamProvider<Event>('unload');
@DomName('WindowEventHandlers.onbeforeunload')
@DocsEditable()
@Experimental() // untriaged
Stream<Event> get onBeforeUnload => beforeUnloadEvent.forTarget(this);
@DomName('WindowEventHandlers.onhashchange')
@DocsEditable()
@Experimental() // untriaged
@ -31627,7 +31574,7 @@ abstract class CanvasImageSource {}
* * [DOM Window](https://developer.mozilla.org/en-US/docs/DOM/window) from MDN.
* * [Window](http://www.w3.org/TR/Window/) from the W3C.
*/
abstract class WindowBase implements EventTarget {
abstract class WindowBase {
// Fields.
/**
@ -32700,6 +32647,9 @@ class _CustomEventStreamProvider<T extends Event>
String getEventType(EventTarget target) {
return _eventTypeGetter(target);
}
String get _eventType =>
throw new UnsupportedError('Access type through getEventType method.');
}
// DO NOT EDIT- this file is generated from running tool/generator.sh.
@ -34934,6 +34884,10 @@ abstract class ReadyState {
*/
class _WrappedEvent implements Event {
final Event wrapped;
/** The CSS selector involved with event delegation. */
String _selector;
_WrappedEvent(this.wrapped);
bool get bubbles => wrapped.bubbles;
@ -34971,6 +34925,43 @@ class _WrappedEvent implements Event {
void stopPropagation() {
wrapped.stopPropagation();
}
/**
* A pointer to the element whose CSS selector matched within which an event
* was fired. If this Event was not associated with any Event delegation,
* accessing this value will throw an [UnsupportedError].
*/
Element get matchingTarget {
if (_selector == null) {
throw new UnsupportedError('Cannot call matchingTarget if this Event did'
' not arise as a result of event delegation.');
}
var currentTarget = this.currentTarget;
var target = this.target;
var matchedTarget;
do {
if (target.matches(_selector)) return target;
target = target.parent;
} while (target != null && target != currentTarget.parent);
throw new StateError('No selector matched for populating matchedTarget.');
}
/**
* This event's path, taking into account shadow DOM.
*
* ## Other resources
*
* * [Shadow DOM extensions to Event]
* (http://w3c.github.io/webcomponents/spec/shadow/#extensions-to-event) from
* W3C.
*/
// https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#extensions-to-event
@Experimental()
List<Node> get path => wrapped.path;
dynamic get _get_currentTarget => wrapped._get_currentTarget;
dynamic get _get_target => wrapped._get_target;
}
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@ -35624,6 +35615,17 @@ class KeyEvent extends _WrappedEvent implements KeyboardEvent {
throw new UnsupportedError(
"Cannot initialize a KeyboardEvent from a KeyEvent.");
}
int get _layerX => throw new UnsupportedError('Not applicable to KeyEvent');
int get _layerY => throw new UnsupportedError('Not applicable to KeyEvent');
int get _pageX => throw new UnsupportedError('Not applicable to KeyEvent');
int get _pageY => throw new UnsupportedError('Not applicable to KeyEvent');
@Experimental() // untriaged
bool getModifierState(String keyArgument) => throw new UnimplementedError();
@Experimental() // untriaged
int get location => throw new UnimplementedError();
@Experimental() // untriaged
bool get repeat => throw new UnimplementedError();
dynamic get _get_view => throw new UnimplementedError();
}
// 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

View file

@ -101,7 +101,7 @@ HtmlDocument get document {
@DocsEditable()
@DomName('AbstractWorker')
class AbstractWorker extends NativeFieldWrapperClass2 implements EventTarget {
abstract class AbstractWorker extends NativeFieldWrapperClass2 implements EventTarget {
// To suppress missing implicit constructor warnings.
factory AbstractWorker._() { throw new UnsupportedError("Not supported"); }
@ -304,6 +304,12 @@ class AnchorElement extends HtmlElement implements UrlUtils {
@DocsEditable()
void set href(String value) native "HTMLAnchorElement_href_Setter";
@DomName('HTMLAnchorElement.origin')
@DocsEditable()
// WebKit only
@Experimental() // non-standard
String get origin native "HTMLAnchorElement_origin_Getter";
@DomName('HTMLAnchorElement.password')
@DocsEditable()
@Experimental() // untriaged
@ -8291,13 +8297,16 @@ class DocumentFragment extends Node implements ParentNode {
validator: validator, treeSanitizer: treeSanitizer);
}
List<Element> _children;
HtmlCollection get _children => throw new UnimplementedError(
'Use _docChildren instead');
List<Element> _docChildren;
List<Element> get children {
if (_children == null) {
_children = new FilteredElementList(this);
if (_docChildren == null) {
_docChildren = new FilteredElementList(this);
}
return _children;
return _docChildren;
}
void set children(List<Element> value) {
@ -8427,7 +8436,7 @@ class DocumentFragment extends Node implements ParentNode {
@DomName('DocumentType')
// http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-412266927
@deprecated // stable
class DocumentType extends Node implements ChildNode {
abstract class DocumentType extends Node implements ChildNode {
// To suppress missing implicit constructor warnings.
factory DocumentType._() { throw new UnsupportedError("Not supported"); }
@ -11186,8 +11195,6 @@ abstract class Element extends Node implements GlobalEventHandlers, ParentNode,
bool hidden;
InputMethodContext get inputMethodContext;
bool get isContentEditable;
String lang;
@ -15596,10 +15603,6 @@ class HtmlFormControlsCollection extends HtmlCollection {
// To suppress missing implicit constructor warnings.
factory HtmlFormControlsCollection._() { throw new UnsupportedError("Not supported"); }
@DomName('HTMLFormControlsCollection.__getter__')
@DocsEditable()
Node __getter__(int index) native "HTMLFormControlsCollection___getter___Callback";
@DomName('HTMLFormControlsCollection.namedItem')
@DocsEditable()
Node namedItem(String name) native "HTMLFormControlsCollection_namedItem_Callback";
@ -28922,13 +28925,13 @@ class Url extends NativeFieldWrapperClass2 implements UrlUtils {
if ((blob_OR_source_OR_stream is Blob || blob_OR_source_OR_stream == null)) {
return _createObjectURL_1(blob_OR_source_OR_stream);
}
if ((blob_OR_source_OR_stream is MediaStream || blob_OR_source_OR_stream == null)) {
if ((blob_OR_source_OR_stream is MediaSource || blob_OR_source_OR_stream == null)) {
return _createObjectURL_2(blob_OR_source_OR_stream);
}
if ((blob_OR_source_OR_stream is MediaSource || blob_OR_source_OR_stream == null)) {
if ((blob_OR_source_OR_stream is _WebKitMediaSource || blob_OR_source_OR_stream == null)) {
return _createObjectURL_3(blob_OR_source_OR_stream);
}
if ((blob_OR_source_OR_stream is _WebKitMediaSource || blob_OR_source_OR_stream == null)) {
if ((blob_OR_source_OR_stream is MediaStream || blob_OR_source_OR_stream == null)) {
return _createObjectURL_4(blob_OR_source_OR_stream);
}
throw new ArgumentError("Incorrect number or type of arguments");
@ -31603,6 +31606,15 @@ class _BeforeUnloadEventStreamProvider implements
String getEventType(EventTarget target) {
return _eventType;
}
ElementStream<BeforeUnloadEvent> forElement(Element e, {bool useCapture: false}) {
return new _ElementEventStreamImpl(e, _eventType, useCapture);
}
ElementStream<BeforeUnloadEvent> _forElementList(ElementList e,
{bool useCapture: false}) {
return new _ElementListEventStreamImpl(e, _eventType, useCapture);
}
}
// 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
@ -31641,11 +31653,6 @@ abstract class WindowEventHandlers extends EventTarget {
// To suppress missing implicit constructor warnings.
factory WindowEventHandlers._() { throw new UnsupportedError("Not supported"); }
@DomName('WindowEventHandlers.beforeunloadEvent')
@DocsEditable()
@Experimental() // untriaged
static const EventStreamProvider<Event> beforeUnloadEvent = const EventStreamProvider<Event>('beforeunload');
@DomName('WindowEventHandlers.hashchangeEvent')
@DocsEditable()
@Experimental() // untriaged
@ -31686,11 +31693,6 @@ abstract class WindowEventHandlers extends EventTarget {
@Experimental() // untriaged
static const EventStreamProvider<Event> unloadEvent = const EventStreamProvider<Event>('unload');
@DomName('WindowEventHandlers.onbeforeunload')
@DocsEditable()
@Experimental() // untriaged
Stream<Event> get onBeforeUnload => beforeUnloadEvent.forTarget(this);
@DomName('WindowEventHandlers.onhashchange')
@DocsEditable()
@Experimental() // untriaged
@ -33920,6 +33922,10 @@ abstract class _XMLHttpRequestProgressEvent extends ProgressEvent {
*/
class _WrappedEvent implements Event {
final Event wrapped;
/** The CSS selector involved with event delegation. */
String _selector;
_WrappedEvent(this.wrapped);
bool get bubbles => wrapped.bubbles;
@ -33957,6 +33963,43 @@ class _WrappedEvent implements Event {
void stopPropagation() {
wrapped.stopPropagation();
}
/**
* A pointer to the element whose CSS selector matched within which an event
* was fired. If this Event was not associated with any Event delegation,
* accessing this value will throw an [UnsupportedError].
*/
Element get matchingTarget {
if (_selector == null) {
throw new UnsupportedError('Cannot call matchingTarget if this Event did'
' not arise as a result of event delegation.');
}
var currentTarget = this.currentTarget;
var target = this.target;
var matchedTarget;
do {
if (target.matches(_selector)) return target;
target = target.parent;
} while (target != null && target != currentTarget.parent);
throw new StateError('No selector matched for populating matchedTarget.');
}
/**
* This event's path, taking into account shadow DOM.
*
* ## Other resources
*
* * [Shadow DOM extensions to Event]
* (http://w3c.github.io/webcomponents/spec/shadow/#extensions-to-event) from
* W3C.
*/
// https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#extensions-to-event
@Experimental()
List<Node> get path => wrapped.path;
dynamic get _get_currentTarget => wrapped._get_currentTarget;
dynamic get _get_target => wrapped._get_target;
}
// 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
@ -34290,7 +34333,7 @@ abstract class CanvasImageSource {}
* * [DOM Window](https://developer.mozilla.org/en-US/docs/DOM/window) from MDN.
* * [Window](http://www.w3.org/TR/Window/) from the W3C.
*/
abstract class WindowBase implements EventTarget {
abstract class WindowBase {
// Fields.
/**
@ -35363,6 +35406,9 @@ class _CustomEventStreamProvider<T extends Event>
String getEventType(EventTarget target) {
return _eventTypeGetter(target);
}
String get _eventType =>
throw new UnsupportedError('Access type through getEventType method.');
}
// DO NOT EDIT- this file is generated from running tool/generator.sh.
@ -38088,6 +38134,17 @@ class KeyEvent extends _WrappedEvent implements KeyboardEvent {
throw new UnsupportedError(
"Cannot initialize a KeyboardEvent from a KeyEvent.");
}
int get _layerX => throw new UnsupportedError('Not applicable to KeyEvent');
int get _layerY => throw new UnsupportedError('Not applicable to KeyEvent');
int get _pageX => throw new UnsupportedError('Not applicable to KeyEvent');
int get _pageY => throw new UnsupportedError('Not applicable to KeyEvent');
@Experimental() // untriaged
bool getModifierState(String keyArgument) => throw new UnimplementedError();
@Experimental() // untriaged
int get location => throw new UnimplementedError();
@Experimental() // untriaged
bool get repeat => throw new UnimplementedError();
dynamic get _get_view => throw new UnimplementedError();
}
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@ -38585,7 +38642,7 @@ class _Utils {
// TODO(vsm): Move these checks into native code.
ClassMirror cls = reflectClass(type);
if (_isBuiltinType(cls)) {
throw new UnsupportedError("Invalid custom element from ${cls.owner.uri}.");
throw new UnsupportedError("Invalid custom element from ${(cls.owner as LibraryMirror).uri}.");
}
var className = MirrorSystem.getName(cls.simpleName);
var createdConstructor = cls.declarations[new Symbol('$className.created')];

View file

@ -70,6 +70,6 @@ class Lists {
/**
* For accessing underlying node lists, for dart:js interop.
*/
class NodeListWrapper {
abstract class NodeListWrapper {
List<Node> get rawList;
}

View file

@ -25,9 +25,6 @@ const Map<String, List<String>> WHITE_LIST = const {
"is not assignable to the type 'HtmlCollection'", // Issue 16105.
"is not a subtype of the overridden method type", // Issue 16105.
],
'html_common/lists.dart': const [
"has no implementation" // Issue 16105.
],
};
void main() {

View file

@ -2241,6 +2241,8 @@
"support_level": "nonstandard"
},
"inputMethodContext": {
"comment": "http://www.w3.org/TR/ime-api/#the-inputmethodcontext-property Per the spec is only on HTMLElement.",
"dart_action": "suppress",
"support_level": "untriaged"
},
"insertAdjacentElement": {
@ -3380,7 +3382,6 @@
},
"origin": {
"comment": "WebKit only",
"dart_action": "suppress",
"support_level": "nonstandard"
},
"password": {

View file

@ -18,6 +18,7 @@ _pure_interfaces = monitored.Set('generator._pure_interfaces', [
# TODO(sra): DOMStringMap should be a class implementing Map<String,String>.
'DOMStringMap',
'ChildNode',
'DocumentType',
'EventListener',
'GlobalEventHandlers',
'MediaQueryListListener',

View file

@ -627,6 +627,8 @@ removed_html_members = monitored.Set('htmlrenamer.removed_html_members', [
'HTMLDirectoryElement.*',
'HTMLDivElement.align',
'HTMLFontElement.*',
'HTMLFormControlsCollection.__getter__',
'HTMLFormControlsCollection.get:Node',
'HTMLFormElement.get:elements',
'HTMLFrameElement.*',
'HTMLFrameSetElement.*',
@ -753,6 +755,7 @@ removed_html_members = monitored.Set('htmlrenamer.removed_html_members', [
'SVGElementInstance.on:wheel',
'WheelEvent.wheelDelta',
'Window.on:wheel',
'WindowEventHandlers.on:beforeUnload',
'WorkerGlobalScope.webkitIndexedDB',
# TODO(jacobr): should these be removed?
'Document.close',

View file

@ -1382,6 +1382,7 @@ class CPPLibraryEmitter():
is_node_test = lambda interface: interface.id == 'Node'
is_active_test = lambda interface: 'ActiveDOMObject' in interface.ext_attrs
is_event_target_test = lambda interface: 'EventTarget' in interface.ext_attrs
def TypeCheckHelper(test):
return 'true' if any(map(test, database.Hierarchy(interface))) else 'false'
for interface in database.GetInterfaces():

View file

@ -23,7 +23,7 @@ part of html;
* * [DOM Window](https://developer.mozilla.org/en-US/docs/DOM/window) from MDN.
* * [Window](http://www.w3.org/TR/Window/) from the W3C.
*/
abstract class WindowBase implements EventTarget {
abstract class WindowBase {
// Fields.
/**

View file

@ -428,4 +428,7 @@ class _CustomEventStreamProvider<T extends Event>
String getEventType(EventTarget target) {
return _eventTypeGetter(target);
}
String get _eventType =>
throw new UnsupportedError('Access type through getEventType method.');
}

View file

@ -9,6 +9,10 @@ part of dart.html;
*/
class _WrappedEvent implements Event {
final Event wrapped;
/** The CSS selector involved with event delegation. */
String _selector;
_WrappedEvent(this.wrapped);
bool get bubbles => wrapped.bubbles;
@ -46,4 +50,41 @@ class _WrappedEvent implements Event {
void stopPropagation() {
wrapped.stopPropagation();
}
/**
* A pointer to the element whose CSS selector matched within which an event
* was fired. If this Event was not associated with any Event delegation,
* accessing this value will throw an [UnsupportedError].
*/
Element get matchingTarget {
if (_selector == null) {
throw new UnsupportedError('Cannot call matchingTarget if this Event did'
' not arise as a result of event delegation.');
}
var currentTarget = this.currentTarget;
var target = this.target;
var matchedTarget;
do {
if (target.matches(_selector)) return target;
target = target.parent;
} while (target != null && target != currentTarget.parent);
throw new StateError('No selector matched for populating matchedTarget.');
}
/**
* This event's path, taking into account shadow DOM.
*
* ## Other resources
*
* * [Shadow DOM extensions to Event]
* (http://w3c.github.io/webcomponents/spec/shadow/#extensions-to-event) from
* W3C.
*/
// https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#extensions-to-event
@Experimental()
List<Node> get path => wrapped.path;
dynamic get _get_currentTarget => wrapped._get_currentTarget;
dynamic get _get_target => wrapped._get_target;
}

View file

@ -210,4 +210,15 @@ class KeyEvent extends _WrappedEvent implements KeyboardEvent {
throw new UnsupportedError(
"Cannot initialize a KeyboardEvent from a KeyEvent.");
}
int get _layerX => throw new UnsupportedError('Not applicable to KeyEvent');
int get _layerY => throw new UnsupportedError('Not applicable to KeyEvent');
int get _pageX => throw new UnsupportedError('Not applicable to KeyEvent');
int get _pageY => throw new UnsupportedError('Not applicable to KeyEvent');
@Experimental() // untriaged
bool getModifierState(String keyArgument) => throw new UnimplementedError();
@Experimental() // untriaged
int get location => throw new UnimplementedError();
@Experimental() // untriaged
bool get repeat => throw new UnimplementedError();
dynamic get _get_view => throw new UnimplementedError();
}

View file

@ -129,4 +129,15 @@ class KeyEvent extends _WrappedEvent implements KeyboardEvent {
throw new UnsupportedError(
"Cannot initialize a KeyboardEvent from a KeyEvent.");
}
int get _layerX => throw new UnsupportedError('Not applicable to KeyEvent');
int get _layerY => throw new UnsupportedError('Not applicable to KeyEvent');
int get _pageX => throw new UnsupportedError('Not applicable to KeyEvent');
int get _pageY => throw new UnsupportedError('Not applicable to KeyEvent');
@Experimental() // untriaged
bool getModifierState(String keyArgument) => throw new UnimplementedError();
@Experimental() // untriaged
int get location => throw new UnimplementedError();
@Experimental() // untriaged
bool get repeat => throw new UnimplementedError();
dynamic get _get_view => throw new UnimplementedError();
}

View file

@ -406,7 +406,7 @@ class _Utils {
// TODO(vsm): Move these checks into native code.
ClassMirror cls = reflectClass(type);
if (_isBuiltinType(cls)) {
throw new UnsupportedError("Invalid custom element from ${cls.owner.uri}.");
throw new UnsupportedError("Invalid custom element from ${(cls.owner as LibraryMirror).uri}.");
}
var className = MirrorSystem.getName(cls.simpleName);
var createdConstructor = cls.declarations[new Symbol('$className.created')];

View file

@ -5,5 +5,5 @@
part of $LIBRARYNAME;
@DocsEditable()
$(ANNOTATIONS)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$MIXINS implements EventTarget$NATIVESPEC {
$(ANNOTATIONS)$(CLASS_MODIFIERS)abstract class $CLASSNAME$EXTENDS$MIXINS implements EventTarget$NATIVESPEC {
$!MEMBERS}

View file

@ -21,18 +21,21 @@ $(ANNOTATIONS)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
validator: validator, treeSanitizer: treeSanitizer);
}
HtmlCollection get _children => throw new UnimplementedError(
'Use _docChildren instead');
$if DART2JS
// Native field is used only by Dart code so does not lead to instantiation
// of native classes
@Creates('Null')
$endif
List<Element> _children;
List<Element> _docChildren;
List<Element> get children {
if (_children == null) {
_children = new FilteredElementList(this);
if (_docChildren == null) {
_docChildren = new FilteredElementList(this);
}
return _children;
return _docChildren;
}
void set children(List<Element> value) {

View file

@ -394,4 +394,13 @@ $endif
String getEventType(EventTarget target) {
return _eventType;
}
ElementStream<BeforeUnloadEvent> forElement(Element e, {bool useCapture: false}) {
return new _ElementEventStreamImpl(e, _eventType, useCapture);
}
ElementStream<BeforeUnloadEvent> _forElementList(ElementList e,
{bool useCapture: false}) {
return new _ElementListEventStreamImpl(e, _eventType, useCapture);
}
}