Update to Lua 5.4.1

Test: atest -p external/libtextclassifier

Fixes: 165898787
Fixes: 162128313
Fixes: 162128297

Test: atest -p external/libtextclassifier  --all-abi
Change-Id: I7b3c82ba883ed57580e50f16c2f7450592fdec76
diff --git a/src/lfunc.c b/src/lfunc.c
index 10100e5..88d4532 100644
--- a/src/lfunc.c
+++ b/src/lfunc.c
@@ -234,9 +234,10 @@
     luaF_unlinkupval(uv);
     setobj(L, slot, uv->v);  /* move value to upvalue slot */
     uv->v = slot;  /* now current value lives here */
-    if (!iswhite(uv))
-      gray2black(uv);  /* closed upvalues cannot be gray */
-    luaC_barrier(L, uv, slot);
+    if (!iswhite(uv)) {  /* neither white nor dead? */
+      nw2black(uv);  /* closed upvalues cannot be gray */
+      luaC_barrier(L, uv, slot);
+    }
   }
   return status;
 }