Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Side by Side Diff: gin/converter.cc

Issue 59153005: Begin implementing V8 bindings for Mojo (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Moar copyright Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698