2025-09-03 [11:22:36.0574] In https://bugzilla.mozilla.org/show_bug.cgi?id=1752287 (probably just read comment 26 on), I was arguing with someone that hoisting a typed array read out of a loop containing `Atomics.pause()` is valid: ```js while (view[i] === 0) { Atomics.pause(); } ``` -> ``` x = view[i]; while (x === 0) { Atomics.pause(); } ``` [11:22:49.0705] But I realized that I actually don't know why `Atomics.pause()` couldn't have been specced to be a Synchronize event. [11:23:21.0646] Would it be horribly slow to have a global memory fence there? Would it defeat the purpose of fast spinlocks? [11:23:58.0937] shu: ^ you probably have an obvious answer 2025-09-08 [13:28:14.0120] yes to both [13:29:21.0434] the most real answer is that i think `pause` on x86 and `yield` on arm are not fences [13:30:24.0986] you also want the VM (and the cpu, but we can't change that) to implement it as a literal nop [13:30:41.0316] * you also want the option for the VM (and the cpu, but we can't change that) to implement it as a literal nop