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

Unified Diff: Source/bindings/core/v8/V8Binding.h

Issue 400493005: Make vector conversion more general in V8Bindings (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: finished self review, PTAL Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | Source/bindings/core/v8/V8Binding.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/core/v8/V8Binding.h
diff --git a/Source/bindings/core/v8/V8Binding.h b/Source/bindings/core/v8/V8Binding.h
index 9b05e4ca967b20b615f6315fa177d29cbc069429..a10c6ea271e8f10fc24e9abc54c8de406089e5b2 100644
--- a/Source/bindings/core/v8/V8Binding.h
+++ b/Source/bindings/core/v8/V8Binding.h
@@ -237,6 +237,9 @@ struct V8ValueTraits {
}
};
+template<typename T, size_t inlineCapacity>
+v8::Handle<v8::Value> v8ArrayNoInline(const Vector<T, inlineCapacity>& iterator, v8::Handle<v8::Object> creationContext, v8::Isolate*);
gavinp 2014/07/20 04:15:18 These two forward declarations are required to mak
+
template <typename T, size_t inlineCapacity, typename Allocator>
struct V8ValueTraits<WTF::Vector<T, inlineCapacity, Allocator> > {
static v8::Handle<v8::Value> toV8Value(const Vector<T, inlineCapacity, Allocator>& value, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
@@ -245,6 +248,9 @@ struct V8ValueTraits<WTF::Vector<T, inlineCapacity, Allocator> > {
}
};
+template<typename T, size_t inlineCapacity>
+v8::Handle<v8::Value> v8ArrayNoInline(const HeapVector<T, inlineCapacity>& iterator, v8::Handle<v8::Object> creationContext, v8::Isolate*);
+
template <typename T, size_t inlineCapacity>
struct V8ValueTraits<HeapVector<T, inlineCapacity> > {
static v8::Handle<v8::Value> toV8Value(const HeapVector<T, inlineCapacity>& value, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
@@ -253,6 +259,8 @@ struct V8ValueTraits<HeapVector<T, inlineCapacity> > {
}
};
+// These explicit specializations allow basic data types to be converted via V8ValueTraits<>::toV8Value(). Where sensible, each data type
+// should also have an explicit specialization of toV8NoInline<>() in V8Binding.cpp, so that vectors of the same type can also be converted.
haraken 2014/07/20 04:50:46 Just help me understand: Why do we need to have ex
gavinp 2014/07/20 05:11:16 I do not know; I am very new in this coding area.
haraken 2014/07/20 05:16:35 I think we can ask yhirano@ or tasak@ :) The toV8
template<>
struct V8ValueTraits<String> {
static inline v8::Handle<v8::Value> toV8Value(const String& value, v8::Handle<v8::Object>, v8::Isolate* isolate)
« no previous file with comments | « no previous file | Source/bindings/core/v8/V8Binding.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698