Revision: 20708
Author:   [email protected]
Date:     Mon Apr 14 08:51:53 2014 UTC
Log:      Version 3.26.13.1 (merged r20705)

Allow GetScriptNameOrSourceURL to be called with exception pending.

[email protected]

Review URL: https://codereview.chromium.org/236713004
http://code.google.com/p/v8/source/detail?r=20708

Modified:
 /trunk/src/handles.cc
 /trunk/src/version.cc
 /trunk/test/cctest/test-api.cc

=======================================
--- /trunk/src/handles.cc       Mon Apr 14 00:05:03 2014 UTC
+++ /trunk/src/handles.cc       Mon Apr 14 08:51:53 2014 UTC
@@ -399,10 +399,11 @@
   ASSERT(property->IsJSFunction());
   Handle<JSFunction> method = Handle<JSFunction>::cast(property);
   Handle<Object> result;
-  ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-      isolate, result,
-      Execution::TryCall(method, script_wrapper, 0, NULL),
-      isolate->factory()->undefined_value());
+ // Do not check against pending exception, since this function may be called
+  // when an exception has already been pending.
+ if (!Execution::TryCall(method, script_wrapper, 0, NULL).ToHandle(&result)) {
+    return isolate->factory()->undefined_value();
+  }
   return result;
 }

=======================================
--- /trunk/src/version.cc       Mon Apr 14 00:05:03 2014 UTC
+++ /trunk/src/version.cc       Mon Apr 14 08:51:53 2014 UTC
@@ -35,7 +35,7 @@
 #define MAJOR_VERSION     3
 #define MINOR_VERSION     26
 #define BUILD_NUMBER      13
-#define PATCH_LEVEL       0
+#define PATCH_LEVEL       1
 // Use 1 for candidates and 0 otherwise.
 // (Boolean macro values are not supported by all preprocessors.)
 #define IS_CANDIDATE_VERSION 0
=======================================
--- /trunk/test/cctest/test-api.cc      Mon Apr 14 00:05:03 2014 UTC
+++ /trunk/test/cctest/test-api.cc      Mon Apr 14 08:51:53 2014 UTC
@@ -22402,3 +22402,16 @@
   CompileRun("Object.getPrototypeOf(friend);");
   CHECK_EQ(2, named_access_count);
 }
+
+
+TEST(CaptureStackTraceForStackOverflow) {
+  v8::internal::FLAG_stack_size = 150;
+  LocalContext current;
+  v8::Isolate* isolate = current->GetIsolate();
+  v8::HandleScope scope(isolate);
+  V8::SetCaptureStackTraceForUncaughtExceptions(
+      true, 10, v8::StackTrace::kDetailed);
+  v8::TryCatch try_catch;
+  CompileRun("(function f(x) { f(x+1); })(0)");
+  CHECK(try_catch.HasCaught());
+}

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to