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

Side by Side Diff: Source/bindings/core/v8/V8Binding.h

Issue 1163893002: binding: Supports static operations/attrs returning non-primitive types. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Added a comment. Created 5 years, 6 months 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 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * Copyright (C) 2012 Ericsson AB. All rights reserved. 3 * Copyright (C) 2012 Ericsson AB. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 inline void v8SetReturnValueStringOrUndefined(const CallbackInfo& info, const St ring& string, v8::Isolate* isolate) 185 inline void v8SetReturnValueStringOrUndefined(const CallbackInfo& info, const St ring& string, v8::Isolate* isolate)
186 { 186 {
187 if (string.isNull()) { 187 if (string.isNull()) {
188 v8SetReturnValueUndefined(info); 188 v8SetReturnValueUndefined(info);
189 return; 189 return;
190 } 190 }
191 V8PerIsolateData::from(isolate)->stringCache()->setReturnValueFromString(inf o.GetReturnValue(), string.impl()); 191 V8PerIsolateData::from(isolate)->stringCache()->setReturnValueFromString(inf o.GetReturnValue(), string.impl());
192 } 192 }
193 193
194 template<typename CallbackInfo> 194 template<typename CallbackInfo>
195 inline void v8SetReturnValue(const CallbackInfo& callbackInfo, ScriptWrappable* impl) 195 inline void v8SetReturnValue(const CallbackInfo& callbackInfo, ScriptWrappable* impl, v8::Local<v8::Object> creationContext)
196 { 196 {
197 if (UNLIKELY(!impl)) { 197 if (UNLIKELY(!impl)) {
198 v8SetReturnValueNull(callbackInfo); 198 v8SetReturnValueNull(callbackInfo);
199 return; 199 return;
200 } 200 }
201 if (DOMDataStore::setReturnValue(callbackInfo.GetReturnValue(), impl)) 201 if (DOMDataStore::setReturnValue(callbackInfo.GetReturnValue(), impl))
202 return; 202 return;
203 v8::Local<v8::Object> wrapper = impl->wrap(callbackInfo.GetIsolate(), callba ckInfo.Holder()); 203 v8::Local<v8::Object> wrapper = impl->wrap(callbackInfo.GetIsolate(), creati onContext);
204 v8SetReturnValue(callbackInfo, wrapper); 204 v8SetReturnValue(callbackInfo, wrapper);
205 } 205 }
206 206
207 template<typename CallbackInfo> 207 template<typename CallbackInfo>
208 inline void v8SetReturnValue(const CallbackInfo& callbackInfo, ScriptWrappable* impl)
209 {
210 v8SetReturnValue(callbackInfo, impl, callbackInfo.Holder());
211 }
212
213 template<typename CallbackInfo>
208 inline void v8SetReturnValue(const CallbackInfo& callbackInfo, Node* impl) 214 inline void v8SetReturnValue(const CallbackInfo& callbackInfo, Node* impl)
209 { 215 {
210 if (UNLIKELY(!impl)) { 216 if (UNLIKELY(!impl)) {
211 v8SetReturnValueNull(callbackInfo); 217 v8SetReturnValueNull(callbackInfo);
212 return; 218 return;
213 } 219 }
214 if (DOMDataStore::setReturnValue(callbackInfo.GetReturnValue(), impl)) 220 if (DOMDataStore::setReturnValue(callbackInfo.GetReturnValue(), impl))
215 return; 221 return;
216 v8::Local<v8::Object> wrapper = ScriptWrappable::fromNode(impl)->wrap(callba ckInfo.GetIsolate(), callbackInfo.Holder()); 222 v8::Local<v8::Object> wrapper = ScriptWrappable::fromNode(impl)->wrap(callba ckInfo.GetIsolate(), callbackInfo.Holder());
217 v8SetReturnValue(callbackInfo, wrapper); 223 v8SetReturnValue(callbackInfo, wrapper);
(...skipping 847 matching lines...) Expand 10 before | Expand all | Expand 10 after
1065 PassRefPtr<TraceEvent::ConvertableToTraceFormat> devToolsTraceEventData(v8::Isol ate*, ExecutionContext*, v8::Local<v8::Function>); 1071 PassRefPtr<TraceEvent::ConvertableToTraceFormat> devToolsTraceEventData(v8::Isol ate*, ExecutionContext*, v8::Local<v8::Function>);
1066 1072
1067 // Callback functions used by generated code. 1073 // Callback functions used by generated code.
1068 CORE_EXPORT void v8ConstructorAttributeGetter(v8::Local<v8::Name> propertyName, const v8::PropertyCallbackInfo<v8::Value>&); 1074 CORE_EXPORT void v8ConstructorAttributeGetter(v8::Local<v8::Name> propertyName, const v8::PropertyCallbackInfo<v8::Value>&);
1069 1075
1070 typedef void (*InstallTemplateFunction)(v8::Local<v8::FunctionTemplate>, v8::Iso late*); 1076 typedef void (*InstallTemplateFunction)(v8::Local<v8::FunctionTemplate>, v8::Iso late*);
1071 1077
1072 } // namespace blink 1078 } // namespace blink
1073 1079
1074 #endif // V8Binding_h 1080 #endif // V8Binding_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698