Merge V8 5.3.332.45.  DO NOT MERGE

Test: Manual

FPIIM-449

Change-Id: Id3254828b068abdea3cb10442e0172a8c9a98e03
(cherry picked from commit 13e2dadd00298019ed862f2b2fc5068bba730bcf)
diff --git a/tools/turbolizer/monkey.js b/tools/turbolizer/monkey.js
new file mode 100644
index 0000000..129f8b3
--- /dev/null
+++ b/tools/turbolizer/monkey.js
@@ -0,0 +1,26 @@
+// Copyright 2014 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+Array.prototype.getStaggeredFromMiddle = function(i) {
+  if (i >= this.length) {
+    throw("getStaggeredFromMiddle: OOB");
+  }
+  var middle = Math.floor(this.length / 2);
+  var index = middle + (((i % 2) == 0) ? (i / 2) : (((1 - i) / 2) - 1));
+  return this[index];
+}
+
+Array.prototype.contains = function(obj) {
+  var i = this.length;
+  while (i--) {
+    if (this[i] === obj) {
+      return true;
+    }
+  }
+  return false;
+}
+
+Math.alignUp = function(raw, multiple) {
+  return Math.floor((raw + multiple - 1) / multiple) * multiple;
+}