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/mjsunit/regress/regress-crbug-323936.js b/test/mjsunit/regress/regress-crbug-323936.js
index d896ead..6e75729 100644
--- a/test/mjsunit/regress/regress-crbug-323936.js
+++ b/test/mjsunit/regress/regress-crbug-323936.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --expose-debug-as debug
+// Flags: --expose-debug-as debug --debug-eval-readonly-locals
 
 Debug = debug.Debug;
 
@@ -14,11 +14,11 @@
   try {
     if (step == 0) {
       assertEquals("error", exec_state.frame(0).evaluate("e").value());
-      exec_state.frame(0).evaluate("e = 'foo'");
-      exec_state.frame(0).evaluate("x = 'modified'");
+      exec_state.frame(0).evaluate("write_0('foo')");
+      exec_state.frame(0).evaluate("write_1('modified')");
     } else {
       assertEquals("argument", exec_state.frame(0).evaluate("e").value());
-      exec_state.frame(0).evaluate("e = 'bar'");
+      exec_state.frame(0).evaluate("write_2('bar')");
     }
     step++;
   } catch (e) {
@@ -33,9 +33,15 @@
   try {
     throw "error";
   } catch(e) {
+    // In ES2015 hoisting semantics, 'x' binds to the argument
+    // and 'e' binds to the exception.
+    function write_0(v) { e = v }
+    function write_1(v) { x = v }
     debugger;
-    assertEquals("foo", e);
+    assertEquals("foo", e);  // overwritten by the debugger
   }
+  assertEquals("argument", e);  // debugger did not overwrite
+  function write_2(v) { e = v }
   debugger;
   assertEquals("bar", e);
   assertEquals("modified", x);