Merge bleeding_edge r3201 and r3202 to trunk.

Review URL: http://codereview.chromium.org/342095

git-svn-id: http://v8.googlecode.com/svn/trunk@3203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/include/v8.h b/include/v8.h
index 5f3b68b..c372d0c 100644
--- a/include/v8.h
+++ b/include/v8.h
@@ -2473,6 +2473,15 @@
   bool CanContinue() const;
 
   /**
+   * Throws the exception caught by this TryCatch in a way that avoids
+   * it being caught again by this same TryCatch.  As with ThrowException
+   * it is illegal to execute any JavaScript operations after calling
+   * ReThrow; the caller must return immediately to where the exception
+   * is caught.
+   */
+  Handle<Value> ReThrow();
+
+  /**
    * Returns the exception caught by this try/catch block.  If no exception has
    * been caught an empty handle is returned.
    *
@@ -2527,9 +2536,10 @@
   TryCatch* next_;
   void* exception_;
   void* message_;
-  bool is_verbose_;
-  bool can_continue_;
-  bool capture_message_;
+  bool is_verbose_ : 1;
+  bool can_continue_ : 1;
+  bool capture_message_ : 1;
+  bool rethrow_ : 1;
   void* js_handler_;
 };