Bug 142826 - Introduce internal.querySelector[All]NoJIT
Summary: Introduce internal.querySelector[All]NoJIT
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: CSS (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on: 142703
Blocks:
  Show dependency treegraph
 
Reported: 2015-03-18 08:34 PDT by Yusuke Suzuki
Modified: 2015-03-18 11:04 PDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yusuke Suzuki 2015-03-18 08:34:17 PDT
Now, almost all selectors (even if it's very complicated) are compiled by CSS JIT.
To maintain non-JIT SelectorChecker and compare CSS JIT results with expected non-JIT results,
I propose new internal.API, internal.querySelectorNoJIT(root, selector) and internal.querySelectorAllNoJIT(root, selector).
Comment 1 Yusuke Suzuki 2015-03-18 08:34:36 PDT
Benjamin, what do you think of?
Comment 2 Yusuke Suzuki 2015-03-18 08:45:53 PDT
When landing this change, I'll add non-JIT selector matching tests introduced issue 142703.
Comment 3 Benjamin Poulain 2015-03-18 11:04:51 PDT
(In reply to comment #2)
> When landing this change, I'll add non-JIT selector matching tests
> introduced issue 142703.

I agree the non-JIT cases are under-tested, that has been worrying me for a while.

I have been thinking about some solutions:
-Add a new pseudo class :-webkit-no-jit that fails to compile. The problem with this is someone could ship it by accident.
-Change the test running such that the layout tests in fast/selectors are run twice: once with the normal setup, then a second time with all JIT disabled (which we can do at runtime since we rely on the same flags as JavaScriptCore). I think this would have the most value.

I am okay with internal.querySelectorNoJIT(root, selector) and internal.querySelectorAllNoJIT(root, selector). That seems useful.