See summary.
Created attachment 104760 [details] Patch
Committed as http://trac.webkit.org/changeset/93558.