Bug 241927
| Summary: | Watchdog doesn't work as expected for some tail calls | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Yijia Huang <yijia_huang> |
| Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | mark.lam, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Yijia Huang
Options "--watchdog=1000 --watchdog-exception-ok" suppose to let jsc terminate a hanging Javascript program with a time out 1000ms. However, the options fail on this example with a ToT build.
```
function foo(a) {
'use strict';
return foo(a, 0);
}
foo(1);
```
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Mark Lam
Looks like global common subexpression elimination eliminated an InvalidationPoint. That's the reason the watchdog wasn't able to terminate the script.
Yijia Huang
We added a --usePollingTraps=true option to stress test call-link-info-osrexit-repatch.js as a workaround. We should remove that once we fix this problem.
Radar WebKit Bug Importer
<rdar://problem/96239507>