Преглед на файлове

fix: make sure global state is restored in the case of an exception in macrotask callback (#9093)

Mitar преди 7 години
родител
ревизия
b111de486b
променени са 1 файла, в които са добавени 5 реда и са изтрити 3 реда
  1. 5 3
      src/core/util/next-tick.js

+ 5 - 3
src/core/util/next-tick.js

@@ -81,9 +81,11 @@ if (typeof Promise !== 'undefined' && isNative(Promise)) {
 export function withMacroTask (fn: Function): Function {
   return fn._withTask || (fn._withTask = function () {
     useMacroTask = true
-    const res = fn.apply(null, arguments)
-    useMacroTask = false
-    return res
+    try {
+      return fn.apply(null, arguments)
+    } finally {
+      useMacroTask = false    
+    }
   })
 }