Summary: | Stop implicitly skipping a function's own activation when walking the scope chain | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Oliver Hunt <oliver> | ||||
Component: | New Bugs | Assignee: | Oliver Hunt <oliver> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | mark.lam, ossy | ||||
Priority: | P2 | ||||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Bug Depends on: | 136123 | ||||||
Bug Blocks: | |||||||
Attachments: |
|
Description
Oliver Hunt
2014-08-20 13:39:43 PDT
Created attachment 236894 [details]
Patch
Comment on attachment 236894 [details]
Patch
r=me
If the extra pointer dereference is a performance hit, perhaps we need a DFG/FTL optimization to infer that your parent scopes are constants. It seems like, at each level up the scope chain, the odds of a constant scope must increase exponentially.
Committed r172808: <http://trac.webkit.org/changeset/172808> (In reply to comment #3) > Committed r172808: <http://trac.webkit.org/changeset/172808> It broke 6 different tests on Apple Mac 32 bit: http://build.webkit.org/builders/Apple%20Mavericks%2032-bit%20JSC%20%28BuildAndTest%29/builds/3692/steps/webkit-32bit-jsc-test/logs/stdio jsc-layout-tests.yaml/js/script-tests/array-filter.js (7 failures) jsc-layout-tests.yaml/js/script-tests/dfg-cse-cfa-discrepancy.js (7 failures) jsc-layout-tests.yaml/js/script-tests/reentrant-caching.js (7 failures) mozilla-tests.yaml/js1_5/Scope/regress-208496-001.js (1 failure) regress/script-tests/Float32Array-matrix-mult.js (8 failures) v8-v6/v8-earley-boyer.js (11 failures) (In reply to comment #4) > (In reply to comment #3) > > Committed r172808: <http://trac.webkit.org/changeset/172808> > > It broke 6 different tests on Apple Mac 32 bit: > > http://build.webkit.org/builders/Apple%20Mavericks%2032-bit%20JSC%20%28BuildAndTest%29/builds/3692/steps/webkit-32bit-jsc-test/logs/stdio > > jsc-layout-tests.yaml/js/script-tests/array-filter.js (7 failures) > jsc-layout-tests.yaml/js/script-tests/dfg-cse-cfa-discrepancy.js (7 failures) > jsc-layout-tests.yaml/js/script-tests/reentrant-caching.js (7 failures) > mozilla-tests.yaml/js1_5/Scope/regress-208496-001.js (1 failure) > regress/script-tests/Float32Array-matrix-mult.js (8 failures) > v8-v6/v8-earley-boyer.js (11 failures) It isn't related to x86, the same regression occurs on other 32 bit platforms, ARM Traditional and ARM Thumb2. new bug report to track this regression: https://bugs.webkit.org/show_bug.cgi?id=136123 (In reply to comment #6) > new bug report to track this regression: https://bugs.webkit.org/show_bug.cgi?id=136123 FYI, this has been fixed in r172838: <http://trac.webkit.org/r172838>. |