Commit d9b3841
committed
[JSC] DFG iterator_next / iterator_open should emit Phantom for uses before emitting ForceOSRExit
https://bugs.webkit.org/show_bug.cgi?id=309204
rdar://171766191
Reviewed by Keith Miller.
If we would like to emit ForceOSRExit in ByteCodeParser, we need to put
Phantom to make sure that used locals are alive in DFG. Otherwise, DFG
thinks that this is dead, and emitting undefined when OSR happens.
Test: JSTests/stress/iterator-next-liveness.js
* JSTests/stress/iterator-next-liveness.js: Added.
* Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
Canonical link: https://commits.webkit.org/308677@main1 parent d6049c2 commit d9b3841
File tree
2 files changed
+17
-0
lines changed- JSTests/stress
- Source/JavaScriptCore/dfg
2 files changed
+17
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9286 | 9286 | | |
9287 | 9287 | | |
9288 | 9288 | | |
| 9289 | + | |
| 9290 | + | |
9289 | 9291 | | |
9290 | 9292 | | |
9291 | 9293 | | |
| |||
9533 | 9535 | | |
9534 | 9536 | | |
9535 | 9537 | | |
| 9538 | + | |
| 9539 | + | |
| 9540 | + | |
9536 | 9541 | | |
9537 | 9542 | | |
9538 | 9543 | | |
| |||
0 commit comments