Looking at profiles I realized that it would speed up both creation and destruction of JSCell and all classes derived from it if we don't have JSValue as a base class. I can do this by replacing JSValue* with JSValue and making it hold a pointer rather than being a pointer. I'll do this in a few separate steps.
Created attachment 24491 [details] patch for step 1
Comment on attachment 24491 [details] patch for step 1 r=me
Comment on attachment 24491 [details] patch for step 1 Landed as http://trac.webkit.org/changeset/37681
Created attachment 24492 [details] patch for step 2
Comment on attachment 24492 [details] patch for step 2 r=me
Comment on attachment 24492 [details] patch for step 2 Landed as http://trac.webkit.org/changeset/37684
Created attachment 24500 [details] patch for step 3
Comment on attachment 24500 [details] patch for step 3 r=me
Comment on attachment 24500 [details] patch for step 3 Landed as http://trac.webkit.org/changeset/37705
Created attachment 24515 [details] patch for step 4
Comment on attachment 24515 [details] patch for step 4 Landed as http://trac.webkit.org/changeset/37706
Created attachment 24516 [details] patch for step 5
Comment on attachment 24516 [details] patch for step 5 r=me if performance is fine.
Comment on attachment 24516 [details] patch for step 5 Landed as http://trac.webkit.org/changeset/37712
Created attachment 24517 [details] patch (last part)
Comment on attachment 24517 [details] patch (last part) r=me
http://trac.webkit.org/changeset/37714