From b1707d7f962d8e6e1eadfd4aa1bcb1f20701adef Mon Sep 17 00:00:00 2001 From: Nick Vatamaniuc Date: Tue, 4 Nov 2025 20:50:53 -0500 Subject: [PATCH] Handle JS_PROP_AUTOINIT case in js_closure_define_global_var() Fix https://github.com/bellard/quickjs/issues/455 --- quickjs.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/quickjs.c b/quickjs.c index 66880f1..ed32108 100644 --- a/quickjs.c +++ b/quickjs.c @@ -16673,8 +16673,14 @@ static JSVarRef *js_closure_define_global_var(JSContext *ctx, JSClosureVar *cv, if (is_direct_or_indirect_eval) flags |= JS_PROP_CONFIGURABLE; + retry: prs = find_own_property(&pr, p, cv->var_name); if (prs) { + if (unlikely((prs->flags & JS_PROP_TMASK) == JS_PROP_AUTOINIT)) { + if (JS_AutoInitProperty(ctx, p, cv->var_name, pr, prs)) + return NULL; + goto retry; + } if ((prs->flags & JS_PROP_TMASK) != JS_PROP_VARREF) { var_ref = js_global_object_get_uninitialized_var(ctx, p, cv->var_name); if (!var_ref)