Second commit for r1205, per scottb's comments.
Patch by: jgw
Review by: scottb
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1207 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/util/SelectionScriptTemplate-xs.js b/dev/core/src/com/google/gwt/dev/util/SelectionScriptTemplate-xs.js
index 9219e2d..7cda61d 100644
--- a/dev/core/src/com/google/gwt/dev/util/SelectionScriptTemplate-xs.js
+++ b/dev/core/src/com/google/gwt/dev/util/SelectionScriptTemplate-xs.js
@@ -56,12 +56,20 @@
// --------------- WINDOW ONLOAD HOOK ---------------
- var onBodyDone = function() {
+ var onBodyDoneTimerId;
+ function onBodyDone() {
if (!bodyDone) {
bodyDone = true;
maybeStartModule();
+
+ if ($doc.removeEventListener) {
+ $doc.removeEventListener("DOMContentLoaded", onBodyDone);
+ }
+ if (onBodyDoneTimerId) {
+ clearInterval(onBodyDoneTimerId);
+ }
}
- };
+ }
// For everyone that supports DOMContentLoaded.
if ($doc.addEventListener) {
@@ -71,9 +79,7 @@
// Fallback. If onBodyDone() gets fired twice, it's not a big deal.
var onBodyDoneTimerId = setInterval(function() {
if (/interactive|loaded|complete/.test($doc.readyState)) {
- clearInterval(onBodyDoneTimerId);
onBodyDone();
- onBodyDone = null;
}
}, 50);
diff --git a/dev/core/src/com/google/gwt/dev/util/SelectionScriptTemplate.js b/dev/core/src/com/google/gwt/dev/util/SelectionScriptTemplate.js
index b809e6a..dc3f65a 100644
--- a/dev/core/src/com/google/gwt/dev/util/SelectionScriptTemplate.js
+++ b/dev/core/src/com/google/gwt/dev/util/SelectionScriptTemplate.js
@@ -56,12 +56,20 @@
// --------------- WINDOW ONLOAD HOOK ---------------
- var onBodyDone = function() {
+ var onBodyDoneTimerId;
+ function onBodyDone() {
if (!bodyDone) {
bodyDone = true;
maybeStartModule();
+
+ if ($doc.removeEventListener) {
+ $doc.removeEventListener("DOMContentLoaded", onBodyDone);
+ }
+ if (onBodyDoneTimerId) {
+ clearInterval(onBodyDoneTimerId);
+ }
}
- };
+ }
// For everyone that supports DOMContentLoaded.
if ($doc.addEventListener) {
@@ -71,9 +79,7 @@
// Fallback. If onBodyDone() gets fired twice, it's not a big deal.
var onBodyDoneTimerId = setInterval(function() {
if (/interactive|loaded|complete/.test($doc.readyState)) {
- clearInterval(onBodyDoneTimerId);
onBodyDone();
- onBodyDone = null;
}
}, 50);