Index: tools/dom/templates/html/impl/impl_Element.darttemplate |
diff --git a/tools/dom/templates/html/impl/impl_Element.darttemplate b/tools/dom/templates/html/impl/impl_Element.darttemplate |
index bd3f1c824301ac097dd8b65637751bd94d43f048..557c4206b564a62ac8c869199e6b4d866ea72c48 100644 |
--- a/tools/dom/templates/html/impl/impl_Element.darttemplate |
+++ b/tools/dom/templates/html/impl/impl_Element.darttemplate |
@@ -727,6 +727,23 @@ $endif |
var xtag; |
$if DART2JS |
+ static const EventStreamProvider<WheelEvent> mouseWheelEvent = |
+ const _CustomEventStreamProvider<WheelEvent>( |
+ Element._determineMouseWheelEventType); |
+ |
+ static String _determineMouseWheelEventType(EventTarget e) { |
+ if (JS('bool', '#.onwheel !== undefined', e)) { |
+ // W3C spec, and should be IE9+, but IE has a bug exposing onwheel. |
+ return 'wheel'; |
+ } else if (JS('bool', '#.onmousewheel !== undefined', e)) { |
+ // Chrome & IE |
+ return 'mousewheel'; |
+ } else { |
+ // Firefox |
+ return 'DOMMouseScroll'; |
+ } |
+ } |
+ |
/** |
* Creates a text node and inserts it into the DOM at the specified location. |
* |