Upgrade V8 to version 4.9.385.28

https://chromium.googlesource.com/v8/v8/+/4.9.385.28

FPIIM-449

Change-Id: I4b2e74289d4bf3667f2f3dc8aa2e541f63e26eb4
diff --git a/test/cctest/compiler/value-helper.h b/test/cctest/compiler/value-helper.h
index 218a773..cbde9a7 100644
--- a/test/cctest/compiler/value-helper.h
+++ b/test/cctest/compiler/value-helper.h
@@ -5,7 +5,7 @@
 #ifndef V8_CCTEST_COMPILER_VALUE_HELPER_H_
 #define V8_CCTEST_COMPILER_VALUE_HELPER_H_
 
-#include "src/v8.h"
+#include <stdint.h>
 
 #include "src/compiler/common-operator.h"
 #include "src/compiler/node.h"
@@ -44,12 +44,12 @@
 
   void CheckUint32Constant(int32_t expected, Node* node) {
     CHECK_EQ(IrOpcode::kInt32Constant, node->opcode());
-    CHECK_EQ(expected, OpParameter<uint32_t>(node));
+    CHECK_EQ(expected, OpParameter<int32_t>(node));
   }
 
-  void CheckHeapConstant(Object* expected, Node* node) {
+  void CheckHeapConstant(HeapObject* expected, Node* node) {
     CHECK_EQ(IrOpcode::kHeapConstant, node->opcode());
-    CHECK_EQ(expected, *OpParameter<Unique<Object> >(node).handle());
+    CHECK_EQ(expected, *OpParameter<Handle<HeapObject>>(node));
   }
 
   void CheckTrue(Node* node) {
@@ -61,55 +61,164 @@
   }
 
   static std::vector<float> float32_vector() {
+    static const float nan = std::numeric_limits<float>::quiet_NaN();
     static const float kValues[] = {
-        -std::numeric_limits<float>::infinity(), -2.70497e+38f, -1.4698e+37f,
-        -1.22813e+35f,                           -1.20555e+35f, -1.34584e+34f,
-        -1.0079e+32f,                            -6.49364e+26f, -3.06077e+25f,
-        -1.46821e+25f,                           -1.17658e+23f, -1.9617e+22f,
-        -2.7357e+20f,                            -1.48708e+13f, -1.89633e+12f,
-        -4.66622e+11f,                           -2.22581e+11f, -1.45381e+10f,
-        -1.3956e+09f,                            -1.32951e+09f, -1.30721e+09f,
-        -1.19756e+09f,                           -9.26822e+08f, -6.35647e+08f,
-        -4.00037e+08f,                           -1.81227e+08f, -5.09256e+07f,
-        -964300.0f,                              -192446.0f,    -28455.0f,
-        -27194.0f,                               -26401.0f,     -20575.0f,
-        -17069.0f,                               -9167.0f,      -960.178f,
-        -113.0f,                                 -62.0f,        -15.0f,
-        -7.0f,                                   -0.0256635f,   -4.60374e-07f,
-        -3.63759e-10f,                           -4.30175e-14f, -5.27385e-15f,
-        -1.48084e-15f,                           -1.05755e-19f, -3.2995e-21f,
-        -1.67354e-23f,                           -1.11885e-23f, -1.78506e-30f,
-        -5.07594e-31f,                           -3.65799e-31f, -1.43718e-34f,
-        -1.27126e-38f,                           -0.0f,         0.0f,
-        1.17549e-38f,                            1.56657e-37f,  4.08512e-29f,
-        3.31357e-28f,                            6.25073e-22f,  4.1723e-13f,
-        1.44343e-09f,                            5.27004e-08f,  9.48298e-08f,
-        5.57888e-07f,                            4.89988e-05f,  0.244326f,
-        12.4895f,                                19.0f,         47.0f,
-        106.0f,                                  538.324f,      564.536f,
-        819.124f,                                7048.0f,       12611.0f,
-        19878.0f,                                20309.0f,      797056.0f,
-        1.77219e+09f,                            1.51116e+11f,  4.18193e+13f,
-        3.59167e+16f,                            3.38211e+19f,  2.67488e+20f,
-        1.78831e+21f,                            9.20914e+21f,  8.35654e+23f,
-        1.4495e+24f,                             5.94015e+25f,  4.43608e+30f,
-        2.44502e+33f,                            2.61152e+33f,  1.38178e+37f,
-        1.71306e+37f,                            3.31899e+38f,  3.40282e+38f,
-        std::numeric_limits<float>::infinity()};
+        -std::numeric_limits<float>::infinity(),
+        -2.70497e+38f,
+        -1.4698e+37f,
+        -1.22813e+35f,
+        -1.20555e+35f,
+        -1.34584e+34f,
+        -1.0079e+32f,
+        -6.49364e+26f,
+        -3.06077e+25f,
+        -1.46821e+25f,
+        -1.17658e+23f,
+        -1.9617e+22f,
+        -2.7357e+20f,
+        -9223372036854775808.0f,  // INT64_MIN
+        -1.48708e+13f,
+        -1.89633e+12f,
+        -4.66622e+11f,
+        -2.22581e+11f,
+        -1.45381e+10f,
+        -1.3956e+09f,
+        -1.32951e+09f,
+        -1.30721e+09f,
+        -1.19756e+09f,
+        -9.26822e+08f,
+        -6.35647e+08f,
+        -4.00037e+08f,
+        -1.81227e+08f,
+        -5.09256e+07f,
+        -964300.0f,
+        -192446.0f,
+        -28455.0f,
+        -27194.0f,
+        -26401.0f,
+        -20575.0f,
+        -17069.0f,
+        -9167.0f,
+        -960.178f,
+        -113.0f,
+        -62.0f,
+        -15.0f,
+        -7.0f,
+        -1.0f,
+        -0.0256635f,
+        -4.60374e-07f,
+        -3.63759e-10f,
+        -4.30175e-14f,
+        -5.27385e-15f,
+        -1.48084e-15f,
+        -1.05755e-19f,
+        -3.2995e-21f,
+        -1.67354e-23f,
+        -1.11885e-23f,
+        -1.78506e-30f,
+        -5.07594e-31f,
+        -3.65799e-31f,
+        -1.43718e-34f,
+        -1.27126e-38f,
+        -0.0f,
+        0.0f,
+        1.17549e-38f,
+        1.56657e-37f,
+        4.08512e-29f,
+        3.31357e-28f,
+        6.25073e-22f,
+        4.1723e-13f,
+        1.44343e-09f,
+        5.27004e-08f,
+        9.48298e-08f,
+        5.57888e-07f,
+        4.89988e-05f,
+        0.244326f,
+        1.0f,
+        12.4895f,
+        19.0f,
+        47.0f,
+        106.0f,
+        538.324f,
+        564.536f,
+        819.124f,
+        7048.0f,
+        12611.0f,
+        19878.0f,
+        20309.0f,
+        797056.0f,
+        1.77219e+09f,
+        1.51116e+11f,
+        4.18193e+13f,
+        3.59167e+16f,
+        9223372036854775807.0f,   // INT64_MAX
+        18446744073709551615.0f,  // UINT64_MAX
+        3.38211e+19f,
+        2.67488e+20f,
+        1.78831e+21f,
+        9.20914e+21f,
+        8.35654e+23f,
+        1.4495e+24f,
+        5.94015e+25f,
+        4.43608e+30f,
+        2.44502e+33f,
+        2.61152e+33f,
+        1.38178e+37f,
+        1.71306e+37f,
+        3.31899e+38f,
+        3.40282e+38f,
+        std::numeric_limits<float>::infinity(),
+        nan,
+        -nan,
+    };
     return std::vector<float>(&kValues[0], &kValues[arraysize(kValues)]);
   }
 
   static std::vector<double> float64_vector() {
-    static const double nan = v8::base::OS::nan_value();
-    static const double values[] = {
-        0.125,           0.25,            0.375,          0.5,
-        1.25,            -1.75,           2,              5.125,
-        6.25,            0.0,             -0.0,           982983.25,
-        888,             2147483647.0,    -999.75,        3.1e7,
-        -2e66,           3e-88,           -2147483648.0,  V8_INFINITY,
-        -V8_INFINITY,    nan,             2147483647.375, 2147483647.75,
-        2147483648.0,    2147483648.25,   2147483649.25,  -2147483647.0,
-        -2147483647.125, -2147483647.875, -2147483648.25, -2147483649.5};
+    static const double nan = std::numeric_limits<double>::quiet_NaN();
+    static const double values[] = {-2e66,
+                                    -9223373136366403584.0,
+                                    -9223372036854775808.0,  // INT64_MIN
+                                    -2147483649.5,
+                                    -2147483648.25,
+                                    -2147483648.0,
+                                    -2147483647.875,
+                                    -2147483647.125,
+                                    -2147483647.0,
+                                    -999.75,
+                                    -2e66,
+                                    -1.75,
+                                    -1.0,
+                                    -0.5,
+                                    -0.0,
+                                    0.0,
+                                    3e-88,
+                                    0.125,
+                                    0.25,
+                                    0.375,
+                                    0.5,
+                                    1.0,
+                                    1.25,
+                                    2,
+                                    3.1e7,
+                                    5.125,
+                                    6.25,
+                                    888,
+                                    982983.25,
+                                    2147483647.0,
+                                    2147483647.375,
+                                    2147483647.75,
+                                    2147483648.0,
+                                    2147483648.25,
+                                    2147483649.25,
+                                    9223372036854775807.0,  // INT64_MAX
+                                    9223373136366403584.0,
+                                    18446744073709551615.0,  // UINT64_MAX
+                                    2e66,
+                                    V8_INFINITY,
+                                    -V8_INFINITY,
+                                    -nan,
+                                    nan};
     return std::vector<double>(&values[0], &values[arraysize(values)]);
   }
 
@@ -133,8 +242,44 @@
     return std::vector<uint32_t>(&kValues[0], &kValues[arraysize(kValues)]);
   }
 
+  static const std::vector<int64_t> int64_vector() {
+    std::vector<uint64_t> values = uint64_vector();
+    return std::vector<int64_t>(values.begin(), values.end());
+  }
+
+  static const std::vector<uint64_t> uint64_vector() {
+    static const uint64_t kValues[] = {
+        0x00000000,         0x00000001,         0xffffffff,
+        0x1b09788b,         0x04c5fce8,         0xcc0de5bf,
+        0x00000002,         0x00000003,         0x00000004,
+        0x00000005,         0x00000008,         0x00000009,
+        0xffffffffffffffff, 0xfffffffffffffffe, 0xfffffffffffffffd,
+        0x0000000000000000, 0x0000000100000000, 0xffffffff00000000,
+        0x1b09788b00000000, 0x04c5fce800000000, 0xcc0de5bf00000000,
+        0x0000000200000000, 0x0000000300000000, 0x0000000400000000,
+        0x0000000500000000, 0x0000000800000000, 0x0000000900000000,
+        0x273a798e187937a3, 0xece3af835495a16b, 0x0b668ecc11223344,
+        0x0000009e,         0x00000043,         0x0000af73,
+        0x0000116b,         0x00658ecc,         0x002b3b4c,
+        0x88776655,         0x70000000,         0x07200000,
+        0x7fffffff,         0x56123761,         0x7fffff00,
+        0x761c4761eeeeeeee, 0x80000000eeeeeeee, 0x88888888dddddddd,
+        0xa0000000dddddddd, 0xddddddddaaaaaaaa, 0xe0000000aaaaaaaa,
+        0xeeeeeeeeeeeeeeee, 0xfffffffdeeeeeeee, 0xf0000000dddddddd,
+        0x007fffffdddddddd, 0x003fffffaaaaaaaa, 0x001fffffaaaaaaaa,
+        0x000fffff,         0x0007ffff,         0x0003ffff,
+        0x0001ffff,         0x0000ffff,         0x00007fff,
+        0x00003fff,         0x00001fff,         0x00000fff,
+        0x000007ff,         0x000003ff,         0x000001ff,
+        0x00003fffffffffff, 0x00001fffffffffff, 0x00000fffffffffff,
+        0x000007ffffffffff, 0x000003ffffffffff, 0x000001ffffffffff,
+        0x8000008000000000, 0x8000008000000001, 0x8000000000000400,
+        0x8000000000000401};
+    return std::vector<uint64_t>(&kValues[0], &kValues[arraysize(kValues)]);
+  }
+
   static const std::vector<double> nan_vector(size_t limit = 0) {
-    static const double nan = v8::base::OS::nan_value();
+    static const double nan = std::numeric_limits<double>::quiet_NaN();
     static const double values[] = {-nan,               -V8_INFINITY * -0.0,
                                     -V8_INFINITY * 0.0, V8_INFINITY * -0.0,
                                     V8_INFINITY * 0.0,  nan};
@@ -158,6 +303,8 @@
 
 #define FOR_INT32_INPUTS(var) FOR_INPUTS(int32_t, int32, var)
 #define FOR_UINT32_INPUTS(var) FOR_INPUTS(uint32_t, uint32, var)
+#define FOR_INT64_INPUTS(var) FOR_INPUTS(int64_t, int64, var)
+#define FOR_UINT64_INPUTS(var) FOR_INPUTS(uint64_t, uint64, var)
 #define FOR_FLOAT32_INPUTS(var) FOR_INPUTS(float, float32, var)
 #define FOR_FLOAT64_INPUTS(var) FOR_INPUTS(double, float64, var)