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

Side by Side Diff: Source/bindings/core/v8/ScriptWrappable.cpp

Issue 478243002: bindings: Adds virtual ScriptWrappable::wrap method. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Synced. Created 6 years, 3 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "config.h" 5 #include "config.h"
6 #include "bindings/core/v8/ScriptWrappable.h" 6 #include "bindings/core/v8/ScriptWrappable.h"
7 7
8 #include "bindings/core/v8/DOMDataStore.h"
9 #include "bindings/core/v8/V8DOMWrapper.h"
10
8 namespace blink { 11 namespace blink {
9 12
10 #if COMPILER(MSVC) 13 #if COMPILER(MSVC)
11 __declspec(align(4)) 14 __declspec(align(4))
12 #endif 15 #endif
13 struct SameSizeAsScriptWrappableBase { }; 16 struct SameSizeAsScriptWrappableBase { };
14 17
15 COMPILE_ASSERT(sizeof(ScriptWrappableBase) <= sizeof(SameSizeAsScriptWrappableBa se), ScriptWrappableBase_should_stay_small); 18 COMPILE_ASSERT(sizeof(ScriptWrappableBase) <= sizeof(SameSizeAsScriptWrappableBa se), ScriptWrappableBase_should_stay_small);
16 19
17 struct SameSizeAsScriptWrappable : public ScriptWrappableBase { 20 struct SameSizeAsScriptWrappable : public ScriptWrappableBase {
18 virtual ~SameSizeAsScriptWrappable() { } 21 virtual ~SameSizeAsScriptWrappable() { }
19 uintptr_t m_wrapperOrTypeInfo; 22 uintptr_t m_wrapperOrTypeInfo;
20 }; 23 };
21 24
22 COMPILE_ASSERT(sizeof(ScriptWrappable) <= sizeof(SameSizeAsScriptWrappable), Scr iptWrappable_should_stay_small); 25 COMPILE_ASSERT(sizeof(ScriptWrappable) <= sizeof(SameSizeAsScriptWrappable), Scr iptWrappable_should_stay_small);
23 26
27 v8::Handle<v8::Object> ScriptWrappable::wrap(v8::Handle<v8::Object> creationCont ext, v8::Isolate* isolate)
28 {
29 ASSERT(!DOMDataStore::containsWrapperNonTemplate(this, isolate));
30
31 const WrapperTypeInfo* wrapperType = wrapperTypeInfo();
haraken 2014/09/02 01:10:10 wrapperType => wrapperTypeInfo
Yuki 2014/09/02 04:35:49 We already have wrapperTypeInfo() method in the cl
32
33 v8::Handle<v8::Object> wrapper = V8DOMWrapper::createWrapper(creationContext , wrapperType, toInternalPointer(), isolate);
34 if (UNLIKELY(wrapper.IsEmpty()))
35 return wrapper;
36
37 wrapperType->installConditionallyEnabledProperties(wrapper, isolate);
38 wrapperType->refObject(toInternalPointer());
39 V8DOMWrapper::associateObjectWithWrapperNonTemplate(this, wrapperType, wrapp er, isolate);
40 return wrapper;
41 }
42
24 } // namespace blink 43 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698