OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "gin/converter.h" | 5 #include "gin/converter.h" |
6 | 6 |
7 #include "v8/include/v8.h" | 7 #include "v8/include/v8.h" |
8 | 8 |
9 using v8::Boolean; | 9 using v8::Boolean; |
10 using v8::Function; | 10 using v8::Function; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
42 return Integer::NewFromUnsigned(val, isolate).As<Value>(); | 42 return Integer::NewFromUnsigned(val, isolate).As<Value>(); |
43 } | 43 } |
44 | 44 |
45 bool Converter<uint32_t>::FromV8(Handle<Value> val, uint32_t* out) { | 45 bool Converter<uint32_t>::FromV8(Handle<Value> val, uint32_t* out) { |
46 if (!val->IsUint32()) | 46 if (!val->IsUint32()) |
47 return false; | 47 return false; |
48 *out = val->Uint32Value(); | 48 *out = val->Uint32Value(); |
49 return true; | 49 return true; |
50 } | 50 } |
51 | 51 |
52 Handle<Value> Converter<int64_t>::ToV8(Isolate* isolate, int64_t val) { | |
53 return Number::New(isolate, static_cast<double>(val)).As<Value>(); | |
54 } | |
55 | |
56 bool Converter<int64_t>::FromV8(Handle<Value> val, int64_t* out) { | |
57 if (!val->IsNumber()) | |
58 return false; | |
59 *out = val->IntegerValue(); | |
Aaron Boodman
2013/11/11 19:01:08
I was surprised to see that IntegerValue() returns
abarth-chromium
2013/11/11 20:17:42
Will do.
| |
60 return true; | |
61 } | |
62 | |
63 Handle<Value> Converter<uint64_t>::ToV8(Isolate* isolate, uint64_t val) { | |
64 return Number::New(isolate, static_cast<double>(val)).As<Value>(); | |
65 } | |
66 | |
67 bool Converter<uint64_t>::FromV8(Handle<Value> val, uint64_t* out) { | |
68 if (!val->IsNumber()) | |
69 return false; | |
70 *out = static_cast<uint64_t>(val->IntegerValue()); | |
71 return true; | |
72 } | |
73 | |
52 Handle<Value> Converter<double>::ToV8(Isolate* isolate, double val) { | 74 Handle<Value> Converter<double>::ToV8(Isolate* isolate, double val) { |
53 return Number::New(isolate, val).As<Value>(); | 75 return Number::New(isolate, val).As<Value>(); |
54 } | 76 } |
55 | 77 |
56 bool Converter<double>::FromV8(Handle<Value> val, double* out) { | 78 bool Converter<double>::FromV8(Handle<Value> val, double* out) { |
57 if (!val->IsNumber()) | 79 if (!val->IsNumber()) |
58 return false; | 80 return false; |
59 *out = val->NumberValue(); | 81 *out = val->NumberValue(); |
60 return true; | 82 return true; |
61 } | 83 } |
(...skipping 18 matching lines...) Expand all Loading... | |
80 } | 102 } |
81 | 103 |
82 bool Converter<Handle<Function> >::FromV8(Handle<Value> val, | 104 bool Converter<Handle<Function> >::FromV8(Handle<Value> val, |
83 Handle<Function>* out) { | 105 Handle<Function>* out) { |
84 if (!val->IsFunction()) | 106 if (!val->IsFunction()) |
85 return false; | 107 return false; |
86 *out = Handle<Function>::Cast(val); | 108 *out = Handle<Function>::Cast(val); |
87 return true; | 109 return true; |
88 } | 110 } |
89 | 111 |
90 Handle<Value> Converter<Handle<Object> >::ToV8(Handle<Object> val) { | 112 Handle<Value> Converter<Handle<Object> >::ToV8(v8::Isolate* isolate, |
113 Handle<Object> val) { | |
91 return val.As<Value>(); | 114 return val.As<Value>(); |
92 } | 115 } |
93 | 116 |
94 bool Converter<Handle<Object> >::FromV8(Handle<Value> val, | 117 bool Converter<Handle<Object> >::FromV8(Handle<Value> val, |
95 Handle<Object>* out) { | 118 Handle<Object>* out) { |
96 if (!val->IsObject()) | 119 if (!val->IsObject()) |
97 return false; | 120 return false; |
98 *out = Handle<Object>::Cast(val); | 121 *out = Handle<Object>::Cast(val); |
99 return true; | 122 return true; |
100 } | 123 } |
101 | 124 |
102 } // namespace gin | 125 } // namespace gin |
OLD | NEW |