Changeset 217944 in webkit


Ignore:
Timestamp:
Jun 8, 2017 1:08:24 PM (7 years ago)
Author:
fpizlo@apple.com
Message:

REGRESSION: js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-5.html has a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=161156

Reviewed by Saam Barati.

Source/JavaScriptCore:

Since LLInt does not register impure property watchpoints for self property accesses, it
shouldn't try to cache accesses that require a watchpoint.

This manifested as a flaky failure because the test would fire the watchpoint after we had
usually already tiered up. Without concurrent JIT, we would have always tiered up before
getting to the bad case. With concurrent JIT, we would sometimes not tier up by that time. This
also adds a test that deterministically failed in LLInt without this change; it does so by just
running a lot shorter.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

LayoutTests:

Add a version of the test that's guaranteed to fail if the problem it's testing for manifests
in the LLInt.

  • js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-5-short.html: Added.
Location:
trunk
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r217943 r217944  
     12017-06-08  Filip Pizlo  <fpizlo@apple.com>
     2
     3        REGRESSION: js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-5.html has a flaky failure
     4        https://bugs.webkit.org/show_bug.cgi?id=161156
     5
     6        Reviewed by Saam Barati.
     7       
     8        Add a version of the test that's guaranteed to fail if the problem it's testing for manifests
     9        in the LLInt.
     10
     11        * js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-5-short.html: Added.
     12
    1132017-06-07  Dave Hyatt  <hyatt@apple.com>
    214
  • trunk/Source/JavaScriptCore/ChangeLog

    r217942 r217944  
     12017-06-08  Filip Pizlo  <fpizlo@apple.com>
     2
     3        REGRESSION: js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-5.html has a flaky failure
     4        https://bugs.webkit.org/show_bug.cgi?id=161156
     5
     6        Reviewed by Saam Barati.
     7       
     8        Since LLInt does not register impure property watchpoints for self property accesses, it
     9        shouldn't try to cache accesses that require a watchpoint.
     10       
     11        This manifested as a flaky failure because the test would fire the watchpoint after we had
     12        usually already tiered up. Without concurrent JIT, we would have always tiered up before
     13        getting to the bad case. With concurrent JIT, we would sometimes not tier up by that time. This
     14        also adds a test that deterministically failed in LLInt without this change; it does so by just
     15        running a lot shorter.
     16
     17        * llint/LLIntSlowPaths.cpp:
     18        (JSC::LLInt::LLINT_SLOW_PATH_DECL):
     19
    1202017-06-08  Keith Miller  <keith_miller@apple.com>
    221
  • trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp

    r214071 r217944  
    674674            pc[7].u.operand = 0;
    675675       
    676             if (structure->propertyAccessesAreCacheable()) {
     676            if (structure->propertyAccessesAreCacheable()
     677                && !structure->needImpurePropertyWatchpoint()) {
    677678                vm.heap.writeBarrier(codeBlock);
    678679               
Note: See TracChangeset for help on using the changeset viewer.