This addresses two issues: - We have had some weirdo bugs where the watchpoint being fired doesn't kill the watchpoint, and therefore doesn't remove it. That causes an infinite loop inside WatchpointSet. We don't have such bugs right now, but it's something that you can hit whenever adding new uses of the watchpoint API. Having the removal happen before means that we just don't have to worry about this, ever. OTOH, I can't think of any use of Watchpoint that wants to keep the Watchpoint in the set after it is fired. - It would be great to write adaptive watchpoints that readd themselves to a different set when they are fired. But to do this, we need to first remove them from the set that they are currently on. The easiest API for this is to have the removal happen before fire() is called.
Created attachment 256682 [details] the patch
Attachment 256682 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/bytecode/Watchpoint.h:83: The parameter name "detail" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 1 in 3 files If any of these errors are false positives, please file a bug against check-webkit-style.
(In reply to comment #2) > Attachment 256682 [details] did not pass style-queue: > > > ERROR: Source/JavaScriptCore/bytecode/Watchpoint.h:83: The parameter name > "detail" adds no information, so it should be removed. > [readability/parameter_name] [5] > Total errors found: 1 in 3 files > > > If any of these errors are false positives, please file a bug against > check-webkit-style. Fixed locally.
Landed in http://trac.webkit.org/changeset/186745