diff options
Diffstat (limited to 'Source/WebCore/bindings/scripts/test/V8/V8TestNode.cpp')
-rw-r--r-- | Source/WebCore/bindings/scripts/test/V8/V8TestNode.cpp | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestNode.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestNode.cpp index ce37e002f..d58508910 100644 --- a/Source/WebCore/bindings/scripts/test/V8/V8TestNode.cpp +++ b/Source/WebCore/bindings/scripts/test/V8/V8TestNode.cpp @@ -21,10 +21,11 @@ #include "config.h" #include "V8TestNode.h" +#include "BindingState.h" #include "ContextFeatures.h" +#include "Frame.h" #include "RuntimeEnabledFeatures.h" #include "V8Binding.h" -#include "V8BindingState.h" #include "V8DOMWrapper.h" #include "V8IsolatedContext.h" #include "V8Node.h" @@ -55,8 +56,8 @@ v8::Handle<v8::Value> V8TestNode::constructorCallback(const v8::Arguments& args) v8::Handle<v8::Object> wrapper = args.Holder(); V8DOMWrapper::setDOMWrapper(wrapper, &info, impl.get()); - V8DOMWrapper::setJSWrapperForDOMNode(impl.release(), v8::Persistent<v8::Object>::New(wrapper), args.GetIsolate()); - return args.Holder(); + V8DOMWrapper::setJSWrapperForDOMNode(impl.release(), wrapper, args.GetIsolate()); + return wrapper; } static v8::Persistent<v8::FunctionTemplate> ConfigureV8TestNodeTemplate(v8::Persistent<v8::FunctionTemplate> desc) @@ -64,7 +65,7 @@ static v8::Persistent<v8::FunctionTemplate> ConfigureV8TestNodeTemplate(v8::Pers desc->ReadOnlyPrototype(); v8::Local<v8::Signature> defaultSignature; - defaultSignature = configureTemplate(desc, "TestNode", V8Node::GetTemplate(), V8TestNode::internalFieldCount, + defaultSignature = V8DOMConfiguration::configureTemplate(desc, "TestNode", V8Node::GetTemplate(), V8TestNode::internalFieldCount, 0, 0, 0, 0); UNUSED_PARAM(defaultSignature); // In some cases, it will not be used. @@ -78,8 +79,8 @@ static v8::Persistent<v8::FunctionTemplate> ConfigureV8TestNodeTemplate(v8::Pers v8::Persistent<v8::FunctionTemplate> V8TestNode::GetRawTemplate() { - V8BindingPerIsolateData* data = V8BindingPerIsolateData::current(); - V8BindingPerIsolateData::TemplateMap::iterator result = data->rawTemplateMap().find(&info); + V8PerIsolateData* data = V8PerIsolateData::current(); + V8PerIsolateData::TemplateMap::iterator result = data->rawTemplateMap().find(&info); if (result != data->rawTemplateMap().end()) return result->second; @@ -91,8 +92,8 @@ v8::Persistent<v8::FunctionTemplate> V8TestNode::GetRawTemplate() v8::Persistent<v8::FunctionTemplate> V8TestNode::GetTemplate() { - V8BindingPerIsolateData* data = V8BindingPerIsolateData::current(); - V8BindingPerIsolateData::TemplateMap::iterator result = data->templateMap().find(&info); + V8PerIsolateData* data = V8PerIsolateData::current(); + V8PerIsolateData::TemplateMap::iterator result = data->templateMap().find(&info); if (result != data->templateMap().end()) return result->second; @@ -112,7 +113,8 @@ bool V8TestNode::HasInstance(v8::Handle<v8::Value> value) v8::Handle<v8::Object> V8TestNode::wrapSlow(PassRefPtr<TestNode> impl, v8::Isolate* isolate) { v8::Handle<v8::Object> wrapper; - V8Proxy* proxy = V8Proxy::retrieve(impl->document()->frame()); + ASSERT(static_cast<void*>(static_cast<Node*>(impl.get())) == static_cast<void*>(impl.get())); + V8Proxy* proxy = impl->document()->frame() ? impl->document()->frame()->script()->proxy() : 0; // Enter the node's context and create the wrapper in that context. v8::Handle<v8::Context> context; @@ -129,13 +131,10 @@ v8::Handle<v8::Object> V8TestNode::wrapSlow(PassRefPtr<TestNode> impl, v8::Isola context->Exit(); if (UNLIKELY(wrapper.IsEmpty())) return wrapper; - - v8::Persistent<v8::Object> wrapperHandle = v8::Persistent<v8::Object>::New(wrapper); - + v8::Persistent<v8::Object> wrapperHandle = V8DOMWrapper::setJSWrapperForDOMNode(impl, wrapper, isolate); if (!hasDependentLifetime) wrapperHandle.MarkIndependent(); wrapperHandle.SetWrapperClassId(v8DOMSubtreeClassId); - V8DOMWrapper::setJSWrapperForDOMNode(impl, wrapperHandle, isolate); return wrapper; } |