1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "gin/dictionary.h"
6 
7 namespace gin {
8 
Dictionary(v8::Isolate * isolate)9 Dictionary::Dictionary(v8::Isolate* isolate)
10     : isolate_(isolate) {
11 }
12 
Dictionary(v8::Isolate * isolate,v8::Handle<v8::Object> object)13 Dictionary::Dictionary(v8::Isolate* isolate,
14                        v8::Handle<v8::Object> object)
15     : isolate_(isolate),
16       object_(object) {
17 }
18 
~Dictionary()19 Dictionary::~Dictionary() {
20 }
21 
CreateEmpty(v8::Isolate * isolate)22 Dictionary Dictionary::CreateEmpty(v8::Isolate* isolate) {
23   Dictionary dictionary(isolate);
24   dictionary.object_ = v8::Object::New(isolate);
25   return dictionary;
26 }
27 
ToV8(v8::Isolate * isolate,Dictionary val)28 v8::Handle<v8::Value> Converter<Dictionary>::ToV8(v8::Isolate* isolate,
29                                                   Dictionary val) {
30   return val.object_;
31 }
32 
FromV8(v8::Isolate * isolate,v8::Handle<v8::Value> val,Dictionary * out)33 bool Converter<Dictionary>::FromV8(v8::Isolate* isolate,
34                                    v8::Handle<v8::Value> val,
35                                    Dictionary* out) {
36   if (!val->IsObject())
37     return false;
38   *out = Dictionary(isolate, v8::Handle<v8::Object>::Cast(val));
39   return true;
40 }
41 
42 }  // namespace gin
43