| Index: Source/bindings/core/v8/V8ScriptWrappable.h
|
| diff --git a/Source/bindings/core/v8/V8ScriptWrappable.h b/Source/bindings/core/v8/V8ScriptWrappable.h
|
| index 3a835aa71379eff1a0567bae26029758b699827b..acbe6ec1c129a0599ba3db05dfa6736373646d1e 100644
|
| --- a/Source/bindings/core/v8/V8ScriptWrappable.h
|
| +++ b/Source/bindings/core/v8/V8ScriptWrappable.h
|
| @@ -49,80 +49,24 @@ static void asV8Persistent(v8::Object* object, v8::Persistent<v8::Object>* persi
|
|
|
| bool ScriptWrappable::containsV8Wrapper() const
|
| {
|
| - if (LIKELY(m_wrapper.isV8WrapperOrEmpty())) {
|
| - return !m_wrapper.isEmpty();
|
| - }
|
| - TaggedPointer v8WrapperOrTypeInfo = getV8WrapperOrEmpty();
|
| - return !v8WrapperOrTypeInfo.isEmpty();
|
| + return m_v8Wrapper;
|
| }
|
|
|
| // Caller is responsible for putting the type info into the wrapper.
|
| void ScriptWrappable::setV8Wrapper(v8::Object* wrapper)
|
| {
|
| - if (LIKELY(m_wrapper.isEmpty())) {
|
| - m_wrapper = TaggedPointer(wrapper);
|
| - } else if (m_wrapper.isDartWrapperInfo()) {
|
| - ASSERT_NOT_REACHED();
|
| - DartWrapperInfo* wrapperInfo = m_wrapper.dartWrapperInfo();
|
| - if (wrapperInfo->v8WrapperOrEmpty.isEmpty()) {
|
| - wrapperInfo->v8WrapperOrEmpty = TaggedPointer(wrapper);
|
| - } else {
|
| - // Already contains V8 wrapper.
|
| - ASSERT_NOT_REACHED();
|
| - }
|
| - } else if (m_wrapper.isDartMultiWrapperInfo()) {
|
| - DartMultiWrapperInfo* wrapperInfo = m_wrapper.dartMultiWrapperInfo();
|
| - if (wrapperInfo->v8WrapperOrEmpty.isEmpty()) {
|
| - wrapperInfo->v8WrapperOrEmpty = TaggedPointer(wrapper);
|
| - } else {
|
| - // Already contains V8 wrapper.
|
| - ASSERT_NOT_REACHED();
|
| - }
|
| - } else {
|
| - // Already contains V8 wrapper.
|
| - ASSERT_NOT_REACHED();
|
| - }
|
| + m_v8Wrapper = wrapper;
|
| }
|
|
|
| v8::Object* ScriptWrappable::getV8Wrapper() const
|
| {
|
| - if (LIKELY(m_wrapper.isV8WrapperOrEmpty())) {
|
| - return m_wrapper.v8Wrapper();
|
| - }
|
| - TaggedPointer v8WrapperOrTypeInfo = getV8WrapperOrEmpty();
|
| - return v8WrapperOrTypeInfo.v8Wrapper();
|
| + return m_v8Wrapper;
|
| }
|
|
|
| void ScriptWrappable::clearV8Wrapper(v8::Local<v8::Object> wrapper, v8::Persistent<v8::Object>* persistent)
|
| {
|
| - if (LIKELY(m_wrapper.isV8Wrapper())) {
|
| - asV8Persistent(m_wrapper.v8Wrapper(), persistent);
|
| - ASSERT(wrapper == *persistent);
|
| - m_wrapper.clear();
|
| - } else if (m_wrapper.isDartWrapperInfo()) {
|
| - DartWrapperInfo* wrapperInfo = m_wrapper.dartWrapperInfo();
|
| - if (wrapperInfo->v8WrapperOrEmpty.isV8Wrapper()) {
|
| - asV8Persistent(wrapperInfo->v8WrapperOrEmpty.v8Wrapper(), persistent);
|
| - ASSERT(wrapper == *persistent);
|
| - wrapperInfo->v8WrapperOrEmpty.clear();
|
| - } else {
|
| - // Already clear.
|
| - ASSERT_NOT_REACHED();
|
| - }
|
| - } else if (m_wrapper.isDartMultiWrapperInfo()) {
|
| - DartMultiWrapperInfo* wrapperInfo = m_wrapper.dartMultiWrapperInfo();
|
| - if (wrapperInfo->v8WrapperOrEmpty.isV8Wrapper()) {
|
| - asV8Persistent(wrapperInfo->v8WrapperOrEmpty.v8Wrapper(), persistent);
|
| - ASSERT(wrapper == *persistent);
|
| - wrapperInfo->v8WrapperOrEmpty.clear();
|
| - } else {
|
| - // Already clear.
|
| - ASSERT_NOT_REACHED();
|
| - }
|
| - } else {
|
| - // Already clear.
|
| - ASSERT_NOT_REACHED();
|
| - }
|
| + asV8Persistent(m_v8Wrapper, persistent);
|
| + m_v8Wrapper = 0;
|
| }
|
|
|
| /**
|
|
|