Reviewers: jlabanca,
Description:
non fatal js exception escapes in IE9 devmode.
http://code.google.com/p/google-web-toolkit/issues/detail?id=6135
Please review this at http://gwt-code-reviews.appspot.com/1387802/
Affected files:
M user/src/com/google/gwt/core/client/impl/Impl.java
M user/src/com/google/gwt/user/client/impl/DOMImplStandard.java
M user/src/com/google/gwt/user/client/impl/DOMImplStandardBase.java
Index: user/src/com/google/gwt/core/client/impl/Impl.java
===================================================================
--- user/src/com/google/gwt/core/client/impl/Impl.java (revision 9860)
+++ user/src/com/google/gwt/core/client/impl/Impl.java (working copy)
@@ -167,7 +167,7 @@
if (@com.google.gwt.core.client.GWT::isScript()()) {
return jsFunction.apply(thisObj, arguments);
} else {
- _ = jsFunction.apply(thisObj, arguments);
+ var _ = jsFunction.apply(thisObj, arguments);
if (_ != null) {
// Wrap for Development Mode
_ = Object(_);
Index: user/src/com/google/gwt/user/client/impl/DOMImplStandard.java
===================================================================
--- user/src/com/google/gwt/user/client/impl/DOMImplStandard.java (revision
9860)
+++ user/src/com/google/gwt/user/client/impl/DOMImplStandard.java (working
copy)
@@ -145,8 +145,38 @@
@Override
protected native void initEventSystem() /*-{
+
@com.google.gwt.user.client.impl.DOMImplStandard::dispatchCapturedEvent =
$entry(function(evt) {
+ if
(!@com.google.gwt.user.client.DOM::previewEvent(Lcom/google/gwt/user/client/Event;)(evt))
{
+ evt.stopPropagation();
+ evt.preventDefault();
+ return false;
+ }
+ return true;
+ });
+
+ @com.google.gwt.user.client.impl.DOMImplStandard::dispatchEvent =
$entry(function(evt) {
+ var listener, curElem = this;
+ while (curElem && !(listener = curElem.__listener)) {
+ curElem = curElem.parentNode;
+ }
+ if (curElem && curElem.nodeType != 1) {
+ curElem = null;
+ }
+ if (listener) {
+ if
(@com.google.gwt.user.client.impl.DOMImpl::isMyListener(Ljava/lang/Object;)(listener))
{
+
@com.google.gwt.user.client.DOM::dispatchEvent(Lcom/google/gwt/user/client/Event;Lcom/google/gwt/user/client/Element;Lcom/google/gwt/user/client/EventListener;)(evt,
curElem, listener);
+ }
+ }
+ });
+
+
@com.google.gwt.user.client.impl.DOMImplStandard::dispatchUnhandledEvent =
$entry(function(evt) {
+ this.__gwtLastUnhandledEvent = evt.type;
+
@com.google.gwt.user.client.impl.DOMImplStandard::dispatchEvent.call(this,
evt);
+ });
+
@com.google.gwt.user.client.impl.DOMImplStandard::dispatchCapturedMouseEvent
= $entry(function(evt) {
- if
((@com.google.gwt.user.client.impl.DOMImplStandard::dispatchCapturedEvent)(evt))
{
+ var dispatchCapturedEventFn =
@com.google.gwt.user.client.impl.DOMImplStandard::dispatchCapturedEvent;
+ if (dispatchCapturedEventFn(evt)) {
var cap =
@com.google.gwt.user.client.impl.DOMImplStandard::captureElem;
if (cap && cap.__listener) {
if
(@com.google.gwt.user.client.impl.DOMImpl::isMyListener(Ljava/lang/Object;)(cap.__listener))
{
@@ -155,38 +185,6 @@
}
}
}
- });
-
-
@com.google.gwt.user.client.impl.DOMImplStandard::dispatchCapturedEvent =
$entry(function(evt) {
- if
(!@com.google.gwt.user.client.DOM::previewEvent(Lcom/google/gwt/user/client/Event;)(evt))
{
- evt.stopPropagation();
- evt.preventDefault();
- return false;
- }
-
- return true;
- });
-
-
@com.google.gwt.user.client.impl.DOMImplStandard::dispatchUnhandledEvent =
$entry(function(evt) {
- this.__gwtLastUnhandledEvent = evt.type;
-
@com.google.gwt.user.client.impl.DOMImplStandard::dispatchEvent.call(this,
evt);
- });
-
- @com.google.gwt.user.client.impl.DOMImplStandard::dispatchEvent =
$entry(function(evt) {
- var listener, curElem = this;
- while (curElem && !(listener = curElem.__listener)) {
- curElem = curElem.parentNode;
- }
-
- if (curElem && curElem.nodeType != 1) {
- curElem = null;
- }
-
- if (listener) {
- if
(@com.google.gwt.user.client.impl.DOMImpl::isMyListener(Ljava/lang/Object;)(listener))
{
-
@com.google.gwt.user.client.DOM::dispatchEvent(Lcom/google/gwt/user/client/Event;Lcom/google/gwt/user/client/Element;Lcom/google/gwt/user/client/EventListener;)(evt,
curElem, listener);
- }
- }
});
$wnd.addEventListener('click',
@com.google.gwt.user.client.impl.DOMImplStandard::dispatchCapturedMouseEvent,
true);
Index: user/src/com/google/gwt/user/client/impl/DOMImplStandardBase.java
===================================================================
--- user/src/com/google/gwt/user/client/impl/DOMImplStandardBase.java
(revision 9860)
+++ user/src/com/google/gwt/user/client/impl/DOMImplStandardBase.java
(working copy)
@@ -16,7 +16,7 @@
package com.google.gwt.user.client.impl;
/**
- * Safari implementation of {@link
com.google.gwt.user.client.impl.DOMImpl}.
+ * StandardBase implementation of {@link
com.google.gwt.user.client.impl.DOMImpl}.
*/
class DOMImplStandardBase extends DOMImplStandard {
}
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors