Bug 172458 - for-in bytecode generation is exponential
Summary: for-in bytecode generation is exponential
Status: RESOLVED DUPLICATE of bug 227989
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-05-22 11:44 PDT by Saam Barati
Modified: 2021-07-23 16:55 PDT (History)
12 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Saam Barati 2017-05-22 11:44:54 PDT
we emit the loop 3 times. If we start nesting for-in loops, this is exponential. I'll verify this is indeed the case.
Comment 1 Saam Barati 2017-05-22 11:46:41 PDT
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;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

}
```
Comment 2 Alexey Shvayka 2021-07-23 16:55:05 PDT
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 ***