 Chromium Code Reviews
 Chromium Code Reviews Issue 1017183003:
  Make DOMTypedArray exported.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/blink.git@master
    
  
    Issue 1017183003:
  Make DOMTypedArray exported.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/blink.git@master| Index: Source/bindings/core/v8/ScriptWrappable.h | 
| diff --git a/Source/bindings/core/v8/ScriptWrappable.h b/Source/bindings/core/v8/ScriptWrappable.h | 
| index 1a7c26eb20fae7275f7ef4e1d137d4fe9fc388a9..28e6513d18ddbdaba8bcde08ec5c177e1f4ecb41 100644 | 
| --- a/Source/bindings/core/v8/ScriptWrappable.h | 
| +++ b/Source/bindings/core/v8/ScriptWrappable.h | 
| @@ -216,6 +216,21 @@ public: \ | 
| private: \ | 
| typedef void end_of_define_wrappertypeinfo_not_reached_t | 
| + | 
| +// Declares only 'wrapperTypeInfo' not defines. | 
| 
Yuki
2015/03/24 11:12:56
nit: Declares 'wrapperTypeInfo' method without def
 
tasak
2015/03/25 09:01:58
Done.
 | 
| +// | 
| +// This macro is used for template classes. e.g. DOMTypedArray<>. | 
| +// To export such a template class X, we need to instantiate X with EXPORT_API, | 
| +// i.e. "extern template class EXPORT_API X;" | 
| +// However, once we instantiate X, we cannot specialize X after | 
| +// the instantiation. i.e. we will see "error: explicit specialization of ... | 
| +// after instantiation". So we cannot define X's s_wrapperTypeInfo in generated | 
| +// code by using specialization. Instead, we need to implement wrapperTypeInfo | 
| +// in X's cpp code, and instantiate X, i.e. "template class X;". | 
| +#define DECLARE_WRAPPERTYPEINFO_ONLY() \ | 
| 
Yuki
2015/03/24 11:12:56
nit: DECLARE_WRAPPERTYPEINFO()
"declare A only" s
 
tasak
2015/03/25 09:01:58
Done.
 | 
| +public: \ | 
| + virtual const WrapperTypeInfo* wrapperTypeInfo() const override | 
| 
Yuki
2015/03/24 11:12:56
We need a trick of "private: typedef end_of_declar
 
tasak
2015/03/25 09:01:58
Done.
 | 
| + | 
| } // namespace blink | 
| #endif // ScriptWrappable_h |