Merge WebKit at r59636: Update v8 to r4660.

Will build and run with current webkit.

Change-Id: I57bae621fd894da363ba84e1757ad09eb7c502b9
diff --git a/benchmarks/README.txt b/benchmarks/README.txt
index eb759cc..8e08159 100644
--- a/benchmarks/README.txt
+++ b/benchmarks/README.txt
@@ -61,3 +61,11 @@
 the Object.prototype.inherits function in the DeltaBlue benchmark to
 inheritsFrom to avoid name clashes when running in Chromium with
 extensions enabled.
+
+
+Changes from Version 5 to Version 6
+===================================
+
+Removed dead code from the RayTrace benchmark and changed the Splay
+benchmark to avoid converting the same numeric key to a string over
+and over again.
diff --git a/benchmarks/base.js b/benchmarks/base.js
index 67cddd2..ce30841 100644
--- a/benchmarks/base.js
+++ b/benchmarks/base.js
@@ -78,7 +78,7 @@
 // Scores are not comparable across versions. Bump the version if
 // you're making changes that will affect that scores, e.g. if you add
 // a new benchmark or change an existing one.
-BenchmarkSuite.version = '5';
+BenchmarkSuite.version = '6 (candidate)';
 
 
 // To make the benchmark results predictable, we replace Math.random
diff --git a/benchmarks/raytrace.js b/benchmarks/raytrace.js
index c68b038..da4d592 100644
--- a/benchmarks/raytrace.js
+++ b/benchmarks/raytrace.js
@@ -205,12 +205,6 @@
         this.intensity = (intensity ? intensity : 10.0);
     },
 
-    getIntensity: function(distance){
-        if(distance >= intensity) return 0;
-
-        return Math.pow((intensity - distance) / strength, 0.2);
-    },
-
     toString : function () {
         return 'Light [' + this.position.x + ',' + this.position.y + ',' + this.position.z + ']';
     }
@@ -420,31 +414,6 @@
 if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
 if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
 
-Flog.RayTracer.Shape.BaseShape = Class.create();
-
-Flog.RayTracer.Shape.BaseShape.prototype = {
-    position: null,
-    material: null,
-
-    initialize : function() {
-        this.position = new Vector(0,0,0);
-        this.material = new Flog.RayTracer.Material.SolidMaterial(
-            new Flog.RayTracer.Color(1,0,1),
-            0,
-            0,
-            0
-        );
-    },
-
-    toString : function () {
-        return 'Material [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
-    }
-}
-/* Fake a Flog.* namespace */
-if(typeof(Flog) == 'undefined') var Flog = {};
-if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
-if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
-
 Flog.RayTracer.Shape.Sphere = Class.create();
 
 Flog.RayTracer.Shape.Sphere.prototype = {
diff --git a/benchmarks/revisions.html b/benchmarks/revisions.html
index 99d7be4..b03aa12 100644
--- a/benchmarks/revisions.html
+++ b/benchmarks/revisions.html
@@ -20,6 +20,13 @@
 
 </p>
 
+<div class="subtitle"><h3>Version 6 (<a href="http://v8.googlecode.com/svn/data/benchmarks/v6/run.html">link</a>)</h3></div>
+
+<p>Removed dead code from the RayTrace benchmark and changed the Splay
+benchmark to avoid converting the same numeric key to a string over
+and over again.
+</p>
+
 <div class="subtitle"><h3>Version 5 (<a href="http://v8.googlecode.com/svn/data/benchmarks/v5/run.html">link</a>)</h3></div>
 
 <p>Removed duplicate line in random seed code, and changed the name of
diff --git a/benchmarks/run.html b/benchmarks/run.html
index ef2c186..30036b7 100644
--- a/benchmarks/run.html
+++ b/benchmarks/run.html
@@ -111,12 +111,12 @@
 <li><b>Richards</b><br>OS kernel simulation benchmark, originally written in BCPL by Martin Richards (<i>539 lines</i>).</li>
 <li><b>DeltaBlue</b><br>One-way constraint solver, originally written in Smalltalk by John Maloney and Mario Wolczko (<i>880 lines</i>).</li>
 <li><b>Crypto</b><br>Encryption and decryption benchmark based on code by Tom Wu (<i>1698 lines</i>).</li>
-<li><b>RayTrace</b><br>Ray tracer benchmark based on code by <a href="http://flog.co.nz/">Adam Burmister</a> (<i>935 lines</i>).</li>
-<li><b>EarleyBoyer</b><br>Classic Scheme benchmarks, translated to JavaScript by Florian Loitsch's Scheme2Js compiler (<i>4685 lines</i>).</li>
+<li><b>RayTrace</b><br>Ray tracer benchmark based on code by <a href="http://flog.co.nz/">Adam Burmister</a> (<i>904 lines</i>).</li>
+<li><b>EarleyBoyer</b><br>Classic Scheme benchmarks, translated to JavaScript by Florian Loitsch's Scheme2Js compiler (<i>4684 lines</i>).</li>
 <li><b>RegExp</b><br>Regular expression benchmark generated by extracting regular expression operations from 50 of the most popular web pages
 (<i>1614 lines</i>).
 </li>
-<li><b>Splay</b><br>Data manipulation benchmark that deals with splay trees and exercises the automatic memory management subsystem (<i>378 lines</i>).</li>
+<li><b>Splay</b><br>Data manipulation benchmark that deals with splay trees and exercises the automatic memory management subsystem (<i>379 lines</i>).</li>
 </ul>
 
 <p>
diff --git a/benchmarks/splay.js b/benchmarks/splay.js
index 53fc727..d8c8f04 100644
--- a/benchmarks/splay.js
+++ b/benchmarks/splay.js
@@ -46,16 +46,16 @@
 var splayTree = null;
 
 
-function GeneratePayloadTree(depth, key) {
+function GeneratePayloadTree(depth, tag) {
   if (depth == 0) {
     return {
       array  : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ],
-      string : 'String for key ' + key + ' in leaf node'
+      string : 'String for key ' + tag + ' in leaf node'
     };
   } else {
     return {
-      left:  GeneratePayloadTree(depth - 1, key),
-      right: GeneratePayloadTree(depth - 1, key)
+      left:  GeneratePayloadTree(depth - 1, tag),
+      right: GeneratePayloadTree(depth - 1, tag)
     };
   }
 }
@@ -74,7 +74,8 @@
   do {
     key = GenerateKey();
   } while (splayTree.find(key) != null);
-  splayTree.insert(key, GeneratePayloadTree(kSplayTreePayloadDepth, key));
+  var payload = GeneratePayloadTree(kSplayTreePayloadDepth, String(key));
+  splayTree.insert(key, payload);
   return key;
 }