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/src/ostreams.h b/src/ostreams.h
index 56787f7..56f4aa7 100644
--- a/src/ostreams.h
+++ b/src/ostreams.h
@@ -17,29 +17,29 @@
 namespace v8 {
 namespace internal {
 
+
 class OFStreamBase : public std::streambuf {
- protected:
+ public:
   explicit OFStreamBase(FILE* f);
   virtual ~OFStreamBase();
 
-  int_type sync() FINAL;
-  int_type overflow(int_type c) FINAL;
-
- private:
+ protected:
   FILE* const f_;
 
-  DISALLOW_COPY_AND_ASSIGN(OFStreamBase);
+  virtual int sync();
+  virtual int_type overflow(int_type c);
+  virtual std::streamsize xsputn(const char* s, std::streamsize n);
 };
 
 
 // An output stream writing to a file.
-class OFStream FINAL : private virtual OFStreamBase, public std::ostream {
+class OFStream : public std::ostream {
  public:
   explicit OFStream(FILE* f);
-  ~OFStream();
+  virtual ~OFStream();
 
  private:
-  DISALLOW_COPY_AND_ASSIGN(OFStream);
+  OFStreamBase buf_;
 };
 
 
@@ -55,12 +55,20 @@
   uint16_t value;
 };
 
+struct AsEscapedUC16ForJSON {
+  explicit AsEscapedUC16ForJSON(uint16_t v) : value(v) {}
+  uint16_t value;
+};
+
 
 // Writes the given character to the output escaping everything outside of
 // printable/space ASCII range. Additionally escapes '\' making escaping
 // reversible.
 std::ostream& operator<<(std::ostream& os, const AsReversiblyEscapedUC16& c);
 
+// Same as AsReversiblyEscapedUC16 with additional escaping of \n, \r, " and '.
+std::ostream& operator<<(std::ostream& os, const AsEscapedUC16ForJSON& c);
+
 // Writes the given character to the output escaping everything outside
 // of printable ASCII range.
 std::ostream& operator<<(std::ostream& os, const AsUC16& c);