Răsfoiți Sursa

Fix Alpine.js becoming unresponsive after uncaught exception in reactive effect callback (#3279)

* Ensure the `flushing` flag in `scheduler.js` is properly reset even if a job callback executes a faulty implementation where an uncaught exception is raised.

* Revert "Ensure the `flushing` flag in `scheduler.js` is properly reset even if a job callback executes a faulty implementation where an uncaught exception is raised."

This reverts commit 32130fe38d79b0c5fe0e22df35da64b4bd55d183.

* Ensure the custom error handler is applied in generateEvaluatorFromFunction, as well as generateEvaluatorFromString.

---------

Co-authored-by: Ferran Conde Codorniu <ferran.conde.codorniu@cosanta.nl>
Ferran Conde Codorniu 2 ani în urmă
părinte
comite
402be31325
1 a modificat fișierele cu 3 adăugiri și 5 ștergeri
  1. 3 5
      packages/alpinejs/src/evaluator.js

+ 3 - 5
packages/alpinejs/src/evaluator.js

@@ -39,11 +39,9 @@ export function normalEvaluator(el, expression) {
 
     let dataStack = [overriddenMagics, ...closestDataStack(el)]
 
-    if (typeof expression === 'function') {
-        return generateEvaluatorFromFunction(dataStack, expression)
-    }
-
-    let evaluator = generateEvaluatorFromString(dataStack, expression, el)
+    let evaluator = (typeof expression === 'function')
+        ? generateEvaluatorFromFunction(dataStack, expression)
+        : generateEvaluatorFromString(dataStack, expression, el)
 
     return tryCatch.bind(null, el, expression, evaluator)
 }