Index: mojo/bindings/js/handle.cc |
diff --git a/mojo/bindings/js/handle.cc b/mojo/bindings/js/handle.cc |
index 36a49886db4b39693d26fa66b9298b254007a77d..e1d0fb04b60c063466536c04f48502c7b1423179 100644 |
--- a/mojo/bindings/js/handle.cc |
+++ b/mojo/bindings/js/handle.cc |
@@ -17,12 +17,19 @@ HandleWrapper::~HandleWrapper() { |
v8::Handle<v8::Value> Converter<mojo::Handle>::ToV8(v8::Isolate* isolate, |
const mojo::Handle& val) { |
+ if (!val.is_valid()) |
+ return v8::Null(isolate); |
return HandleWrapper::Create(isolate, val.value()).ToV8(); |
} |
bool Converter<mojo::Handle>::FromV8(v8::Isolate* isolate, |
v8::Handle<v8::Value> val, |
mojo::Handle* out) { |
+ if (val->IsNull()) { |
+ *out = mojo::Handle(); |
+ return true; |
+ } |
+ |
gin::Handle<HandleWrapper> handle; |
if (!Converter<gin::Handle<HandleWrapper> >::FromV8(isolate, val, &handle)) |
return false; |