Index: Source/bindings/dart/DartHandleProxy.h |
diff --git a/Source/bindings/dart/DartHandleProxy.h b/Source/bindings/dart/DartHandleProxy.h |
index 24025717b44f2e7d0da7568948b74dfa6d3827cd..ebc49e4250ab984c984dd5bc71f2430f3fb76d1b 100644 |
--- a/Source/bindings/dart/DartHandleProxy.h |
+++ b/Source/bindings/dart/DartHandleProxy.h |
@@ -31,13 +31,17 @@ |
#ifndef DartHandleProxy_h |
#define DartHandleProxy_h |
+#include "bindings/dart/DartUtilities.h" |
+ |
#include <dart_api.h> |
+#include <dart_debugger_api.h> |
#include <dart_mirrors_api.h> |
#include <v8.h> |
namespace WebCore { |
class Node; |
+class DartScriptValue; |
class DartHandleProxy { |
public: |
@@ -49,6 +53,26 @@ public: |
static bool isDartProxy(v8::Handle<v8::Value>); |
static const char* getJavaScriptType(v8::Handle<v8::Value>); |
static Node* toNativeNode(v8::Handle<v8::Value>); |
+ static Dart_Handle unwrapValue(v8::Handle<v8::Value>); |
+ |
+}; |
+ |
+/** |
+ * Helper class to manage all scopes that must be entered to safely invoke Dart |
+ * code. |
+ */ |
+class DartScopes { |
+private: |
+ DartScriptValue* scriptValue; |
+ DartIsolateScope scope; |
+ DartApiScope apiScope; |
+ Dart_ExceptionPauseInfo previousPauseInfo; |
+ |
+public: |
+ Dart_Handle handle; |
+ |
+ DartScopes(v8::Local<v8::Object> v8Handle); |
+ ~DartScopes(); |
}; |
} |