Bug 172458
Summary: | for-in bytecode generation is exponential | ||
---|---|---|---|
Product: | WebKit | Reporter: | Saam Barati <saam> |
Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED DUPLICATE | ||
Severity: | Normal | CC: | ashvayka, benjamin, fpizlo, ggaren, gskachkov, jfbastien, keith_miller, mark.lam, msaboff, oliver, ticaiolima, ysuzuki |
Priority: | P2 | ||
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Saam Barati
we emit the loop 3 times. If we start nesting for-in loops, this is exponential. I'll verify this is indeed the case.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Saam Barati
Yup. We emit 1072675 instruction words for this function:
```
function foo(o) {
for (let i in o) {
for (let i in o) {
for (let i in o) {
for (let i in o) {
for (let i in o) {
for (let i in o) {
for (let i in o) {
for (let i in o) {
for (let i in o) {
2+2;
}
}
}
}
}
}
}
}
}
}
```
Alexey Shvayka
Keith is fixing for / in to emit only one loop in https://bugs.webkit.org/show_bug.cgi?id=227989.
*** This bug has been marked as a duplicate of bug 227989 ***