Update V8 to r5780 as required by WebKit r71558

Change-Id: Ie3936550b99967a13755930d0dac0a59c3562625
diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc
index 02503f2..7ae8dcf 100755
--- a/test/cctest/test-parsing.cc
+++ b/test/cctest/test-parsing.cc
@@ -26,6 +26,7 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #include <stdlib.h>
+#include <stdio.h>
 
 #include "v8.h"
 
@@ -34,7 +35,8 @@
 #include "parser.h"
 #include "utils.h"
 #include "execution.h"
-
+#include "scanner.h"
+#include "preparser.h"
 #include "cctest.h"
 
 namespace i = ::v8::internal;
@@ -239,3 +241,32 @@
   i::Vector<const char*> args = pre_impl->BuildArgs();
   CHECK_GT(strlen(message), 0);
 }
+
+
+TEST(StandAlonePreParser) {
+  int marker;
+  i::StackGuard::SetStackLimit(
+      reinterpret_cast<uintptr_t>(&marker) - 128 * 1024);
+
+  const char* programs[] = {
+      "{label: 42}",
+      "var x = 42;",
+      "function foo(x, y) { return x + y; }",
+      "native function foo(); return %ArgleBargle(glop);",
+      "var x = new new Function('this.x = 42');",
+      NULL
+  };
+
+  for (int i = 0; programs[i]; i++) {
+    const char* program = programs[i];
+    unibrow::Utf8InputBuffer<256> stream(program, strlen(program));
+    i::CompleteParserRecorder log;
+    i::Scanner scanner;
+    scanner.Initialize(i::Handle<i::String>::null(), &stream, i::JAVASCRIPT);
+    v8::preparser::PreParser<i::Scanner, i::CompleteParserRecorder> preparser;
+    bool result = preparser.PreParseProgram(&scanner, &log, true);
+    CHECK(result);
+    i::ScriptDataImpl data(log.ExtractData());
+    CHECK(!data.has_error());
+  }
+}