@@ -29,15 +29,15 @@ object MacrotaskExecutor extends ExecutionContextExecutor {
2929 private [this ] final val Undefined = " undefined"
3030
3131 def execute (runnable : Runnable ): Unit =
32- setImmediate(() => runnable.run() )
32+ setImmediate(runnable)
3333
3434 def reportFailure (cause : Throwable ): Unit =
3535 cause.printStackTrace()
3636
37- private [this ] val setImmediate : (() => Unit ) => Unit = {
37+ private [this ] val setImmediate : Runnable => Unit = {
3838 if (js.typeOf(js.Dynamic .global.setImmediate) == Undefined ) {
3939 var nextHandle = 1
40- val tasksByHandle = mutable.Map [Int , () => Unit ]()
40+ val tasksByHandle = mutable.Map [Int , Runnable ]()
4141 var currentlyRunningATask = false
4242
4343 def canUsePostMessage (): Boolean = {
@@ -71,7 +71,7 @@ object MacrotaskExecutor extends ExecutionContextExecutor {
7171 case Some (task) =>
7272 currentlyRunningATask = true
7373 try {
74- task()
74+ task.run ()
7575 } finally {
7676 tasksByHandle -= handle
7777 currentlyRunningATask = false
@@ -95,7 +95,7 @@ object MacrotaskExecutor extends ExecutionContextExecutor {
9595 js.Dynamic .global.Node .constructor(" return setImmediate" )()
9696
9797 { k =>
98- setImmediate(k )
98+ setImmediate(() => k.run() )
9999 ()
100100 }
101101 } else if (canUsePostMessage()) {
@@ -153,13 +153,13 @@ object MacrotaskExecutor extends ExecutionContextExecutor {
153153 // we're also not going to bother fast-pathing for IE6; just fall through
154154
155155 { k =>
156- js.Dynamic .global.setTimeout(k , 0 )
156+ js.Dynamic .global.setTimeout(() => k.run() , 0 )
157157 ()
158158 }
159159 }
160160 } else {
161161 { k =>
162- js.Dynamic .global.setImmediate(k )
162+ js.Dynamic .global.setImmediate(() => k.run() )
163163 ()
164164 }
165165 }
0 commit comments