Skip to content

Conversation

@xiemaisi
Copy link

Two independent fixes for mild regressions I spotted in the comparison run last weekend: the first commit downgrades NewBrowserObject from TrackedNode to SourceNode, thereby restricting it to local flow tracking only. This, in turn, allows us to model Electron IPC as a normal AdditionalFlowStep, which is cached (unlike the Configuration-subclassing solution).

While it's unfortunate to lose inter-procedural tracking, it hasn't found anything yet, and we'll soon be switching it to type tracking anyway, thereby regaining most of the global tracking. In the meantime it seems easier to push this out as a hotfix, since this part of the Electron library is new in 1.20.

The second commit is a refactoring in the data flow library that enables a better join order; it is entirely behaviour-preserving.

Evaluation (internal link) against rc/1.20 from a few days ago on big-apps looks promising. I'd like to do another large-scale evaluation against 1.19 over the weekend, ideally including this fix.

@xiemaisi xiemaisi added the JS label Mar 14, 2019
@xiemaisi xiemaisi added this to the 1.20 milestone Mar 14, 2019
@xiemaisi xiemaisi requested a review from a team as a code owner March 14, 2019 11:47
@xiemaisi xiemaisi force-pushed the js/performance-fiddling branch from 30cedab to 8e52528 Compare March 14, 2019 11:53
@semmle-qlci semmle-qlci merged commit d549a0d into github:rc/1.20 Mar 14, 2019
@xiemaisi xiemaisi deleted the js/performance-fiddling branch April 2, 2019 07:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants