If I understood correct this was changed in 1.09.2 version
-const char *luatex_version_string = “1.09.2”;
+const char *luatex_version_string = “1.09.0";

In file lnodelib.c function get_write_direct_value started to expand tokens:

-#define get_write_direct_value(L,n) do {  \
+#define xget_write_direct_value(L,n) do {  \
     tokenlist_to_lua(L, write_tokens(n)); \
 } while (0)
 
+#define get_write_direct_value(L,n) do {  \
+    int l; \
+    char *s; \
+    expand_macros_in_tokenlist(n); \
+    s = tokenlist_to_cstring(def_ref, 1, &l); \
+    lua_pushlstring(L, s, (size_t) l); \
+    free(s); \
+    flush_list(def_ref); \
+} while (0)
+

Source https://github.com/TeX-Live/texlive-source.git

What was the reason for this change I have no idea. We have reverted back this change in our compiled luatex
because constantly  playing with nodes reading we get issues with the "write" node.


On 5/27/2025 1:02 PM, Hans Hagen wrote:
On 5/27/2025 7:23 AM, Linas Stonys wrote:
I think it is a bug. Luatex tries to expand data field content like with \edef thats why you get \iffalse.
With older texlive (v0.76) the same example prints:

we now have luatex 1.12 so that is indeed old ... way too old to bother about here