Bug 250661

Summary: variable assignment seemed to have failed rarely in JavaScript
Product: WebKit Reporter: Takuo Kihira <takuo.kihira>
Component: WebCore JavaScriptAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: karlcow, mark.lam, webkit-bug-importer, ysuzuki
Priority: P2 Keywords: BrowserCompat, InRadar
Version: Safari 16   
Hardware: Unspecified   
OS: Unspecified   

Description Takuo Kihira 2023-01-15 19:15:30 PST
It seemed to have failed to assign a value in JavaScript.

I couldn't make a minimal reproducible example so I share the entire program URL here:
https://dop32t.csb.app

After the game finishing, the time on the bottom should stop but sometimes it continues to run.

Here is the source code: https://dop32t.csb.app/main.js

The `gameOver` variable is the controller of the timer, and it should be true when the screen shows the 'Clear!' message.

I've recorded the reproducing video: https://www.youtube.com/shorts/rROZFfi7afc

Here is how I reproduced this issue:

1. Open https://dop32t.csb.app URL in Mobile Safari
2. Kill the Mobile Safari and relaunch it
3. Play the game to the end
4. Sometimes (50% probability in my env) the timer does not stop
5. If you back to home screen and then reopen the Safari, the timer stops

This is not only for iOS but also PC Safari as well. No other browsers, like Chrome or Firefox, do not behave like this. Below is reproduced versions:

- iOS 15.4
- iOS 16.0
- MacOS Safari Version 14.0.3 (16610.4.3.1.7)
- MacOS Safari Version 16.2 (17614.3.7.1.7, 17614)
Comment 1 Radar WebKit Bug Importer 2023-01-22 19:16:16 PST
<rdar://problem/104540530>