| Index: mojo/bindings/js/handle.h
|
| diff --git a/mojo/bindings/js/handle.h b/mojo/bindings/js/handle.h
|
| index ad03f87501a5a8a7bab1e6fd3ba219fbf1b3b021..35202b07ea674240bdc4b81c6702f718f8b9d696 100644
|
| --- a/mojo/bindings/js/handle.h
|
| +++ b/mojo/bindings/js/handle.h
|
| @@ -45,6 +45,31 @@ struct Converter<mojo::Handle> {
|
| mojo::Handle* out);
|
| };
|
|
|
| +// We need to specialize the normal gin::Handle converter in order to handle
|
| +// converting |null| to a wrapper for an empty mojo::Handle.
|
| +template<>
|
| +struct Converter<gin::Handle<gin::HandleWrapper> > {
|
| + static v8::Handle<v8::Value> ToV8(
|
| + v8::Isolate* isolate, const gin::Handle<gin::HandleWrapper>& val) {
|
| + return val.ToV8();
|
| + }
|
| +
|
| + static bool FromV8(v8::Isolate* isolate, v8::Handle<v8::Value> val,
|
| + gin::Handle<gin::HandleWrapper>* out) {
|
| + if (val->IsNull()) {
|
| + *out = HandleWrapper::Create(isolate, MOJO_HANDLE_INVALID);
|
| + return true;
|
| + }
|
| +
|
| + gin::HandleWrapper* object = NULL;
|
| + if (!Converter<gin::HandleWrapper*>::FromV8(isolate, val, &object)) {
|
| + return false;
|
| + }
|
| + *out = gin::Handle<gin::HandleWrapper>(val, object);
|
| + return true;
|
| + }
|
| +};
|
| +
|
| } // namespace gin
|
|
|
| #endif // MOJO_BINDINGS_JS_HANDLE_H_
|
|
|