From c211485e6f6c9fcd0ea9f5aa1943f8c95fdd186b Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Sun, 9 Nov 2025 21:28:14 +0100 Subject: [PATCH] Fix Atomics.pause on 32 bits platforms Use JS_VALUE_GET_NORM_TAG to get the type tag, not JS_VALUE_GET_TAG. The latter doesn't work correctly with NaN boxing. Refs: https://github.com/quickjs-ng/quickjs/issues/986#issuecomment-3508547332 --- quickjs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickjs.c b/quickjs.c index 4fb9f95b7..3970bb247 100644 --- a/quickjs.c +++ b/quickjs.c @@ -57112,7 +57112,7 @@ static JSValue js_atomics_pause(JSContext *ctx, JSValueConst this_obj, double d; if (argc > 0) { - switch (JS_VALUE_GET_TAG(argv[0])) { + switch (JS_VALUE_GET_NORM_TAG(argv[0])) { case JS_TAG_FLOAT64: // accepted if and only if fraction == 0.0 d = JS_VALUE_GET_FLOAT64(argv[0]); if (isfinite(d))