Skip to content

Commit 32bb479

Browse files
committed
Check for JSDOM first.
Fixes #74
1 parent 920f082 commit 32bb479

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

core/src/main/scala/org/scalajs/macrotaskexecutor/MacrotaskExecutor.scala

+15-15
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,21 @@ object MacrotaskExecutor extends ExecutionContextExecutor {
8484
()
8585
}
8686

87-
if (canUsePostMessage()) {
87+
if (
88+
js.typeOf(
89+
js.Dynamic.global.navigator
90+
) != Undefined && js.Dynamic.global.navigator.userAgent
91+
.asInstanceOf[js.UndefOr[String]]
92+
.exists(_.contains("jsdom"))
93+
) {
94+
val setImmediate =
95+
js.Dynamic.global.Node.constructor("return setImmediate")()
96+
97+
{ k =>
98+
setImmediate(k)
99+
()
100+
}
101+
} else if (canUsePostMessage()) {
88102
// postMessage is what we use for most modern browsers (when not in a webworker)
89103

90104
// generate a unique messagePrefix for everything we do
@@ -134,20 +148,6 @@ object MacrotaskExecutor extends ExecutionContextExecutor {
134148
channel.port2.postMessage(handle)
135149
()
136150
}
137-
} else if (
138-
js.typeOf(
139-
js.Dynamic.global.navigator
140-
) != Undefined && js.Dynamic.global.navigator.userAgent
141-
.asInstanceOf[js.UndefOr[String]]
142-
.exists(_.contains("jsdom"))
143-
) {
144-
val setImmediate =
145-
js.Dynamic.global.Node.constructor("return setImmediate")()
146-
147-
{ k =>
148-
setImmediate(k)
149-
()
150-
}
151151
} else {
152152
// we don't try to look for process.nextTick since scalajs doesn't support old node
153153
// we're also not going to bother fast-pathing for IE6; just fall through

0 commit comments

Comments
 (0)