ef6273cba0
This is a migration of 13 Chrome release about 1.5 years of Chrome releases. Update PYTHON scripts for cleaner and easier rolling. Here's a doc on the changes that might affect Dart users: https://docs.google.com/document/d/1Kj0nk3SueO3JKub8im7z3znu9j5oiI7vf49ejZrMxuE/edit# Change-Id: I768fbd09b04fe6884af36ac102d5813f67bae426 Reviewed-on: https://dart-review.googlesource.com/24501 Commit-Queue: Terry Lucas <terry@google.com> Reviewed-by: Terry Lucas <terry@google.com>
68 lines
2.4 KiB
Plaintext
68 lines
2.4 KiB
Plaintext
// 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.
|
|
|
|
// WARNING: Do not edit - generated code.
|
|
|
|
part of $LIBRARYNAME;
|
|
|
|
$(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS {
|
|
// In JS, canBubble and cancelable are technically required parameters to
|
|
// init*Event. In practice, though, if they aren't provided they simply
|
|
// default to false (since that's Boolean(undefined)).
|
|
//
|
|
// Contrary to JS, we default canBubble and cancelable to true, since that's
|
|
// what people want most of the time anyway.
|
|
factory $CLASSNAME(String type,
|
|
{bool canBubble: true, bool cancelable: true}) {
|
|
return new Event.eventType('Event', type, canBubble: canBubble,
|
|
cancelable: cancelable);
|
|
}
|
|
|
|
/**
|
|
* Creates a new Event object of the specified type.
|
|
*
|
|
* This is analogous to document.createEvent.
|
|
* Normally events should be created via their constructors, if available.
|
|
*
|
|
* var e = new Event.type('MouseEvent', 'mousedown', true, true);
|
|
*/
|
|
factory Event.eventType(String type, String name, {bool canBubble: true,
|
|
bool cancelable: true}) {
|
|
final Event e = document._createEvent(type);
|
|
e._initEvent(name, canBubble, cancelable);
|
|
return e;
|
|
}
|
|
|
|
/** The CSS selector involved with event delegation. */
|
|
String _selector;
|
|
|
|
/**
|
|
* 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.');
|
|
}
|
|
Element currentTarget = this.currentTarget;
|
|
Element 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.');
|
|
}
|
|
|
|
@DomName('Event.path')
|
|
@DocsEditable()
|
|
@Experimental()
|
|
List<EventTarget> get path =>
|
|
JS('bool', '!!#.composedPath', this) ? composedPath() : [];
|
|
|
|
$!MEMBERS
|
|
}
|