⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 140397 in webkit


Ignore:
Timestamp:
Jan 22, 2013, 1:06:22 AM (14 years ago)
Author:
haraken@chromium.org
Message:

[V8] Pass an Isolate to toV8() of event listeners
https://bugs.webkit.org/show_bug.cgi?id=107517

Reviewed by Adam Barth.

By using Context::GetIsolate(), this patch passes an Isolate to toV8().
I think this would be the last patch to pass an Isolate to toV8().
In the next patch, I will make an Isolate parameter mandatory for toV8().

No tests. No change in behavior.

  • bindings/v8/V8AbstractEventListener.cpp:

(WebCore::V8AbstractEventListener::getReceiverObject):

  • bindings/v8/V8AbstractEventListener.h:

(V8AbstractEventListener):

  • bindings/v8/V8EventListener.cpp:

(WebCore::V8EventListener::callListenerFunction):

  • bindings/v8/V8LazyEventListener.cpp:

(WebCore::toObjectWrapper):
(WebCore::V8LazyEventListener::callListenerFunction):
(WebCore::V8LazyEventListener::prepareListenerObject):

  • bindings/v8/V8WorkerContextEventListener.cpp:

(WebCore::V8WorkerContextEventListener::getReceiverObject):

Location:
trunk/Source/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r140394 r140397  
     12013-01-22  Kentaro Hara  <haraken@chromium.org>
     2
     3        [V8] Pass an Isolate to toV8() of event listeners
     4        https://bugs.webkit.org/show_bug.cgi?id=107517
     5
     6        Reviewed by Adam Barth.
     7
     8        By using Context::GetIsolate(), this patch passes an Isolate to toV8().
     9        I think this would be the last patch to pass an Isolate to toV8().
     10        In the next patch, I will make an Isolate parameter mandatory for toV8().
     11
     12        No tests. No change in behavior.
     13
     14        * bindings/v8/V8AbstractEventListener.cpp:
     15        (WebCore::V8AbstractEventListener::getReceiverObject):
     16        * bindings/v8/V8AbstractEventListener.h:
     17        (V8AbstractEventListener):
     18        * bindings/v8/V8EventListener.cpp:
     19        (WebCore::V8EventListener::callListenerFunction):
     20        * bindings/v8/V8LazyEventListener.cpp:
     21        (WebCore::toObjectWrapper):
     22        (WebCore::V8LazyEventListener::callListenerFunction):
     23        (WebCore::V8LazyEventListener::prepareListenerObject):
     24        * bindings/v8/V8WorkerContextEventListener.cpp:
     25        (WebCore::V8WorkerContextEventListener::getReceiverObject):
     26
    1272013-01-22  Tim Horton  <timothy_horton@apple.com>
    228
  • trunk/Source/WebCore/bindings/v8/V8AbstractEventListener.cpp

    r140392 r140397  
    183183}
    184184
    185 v8::Local<v8::Object> V8AbstractEventListener::getReceiverObject(Event* event)
     185v8::Local<v8::Object> V8AbstractEventListener::getReceiverObject(ScriptExecutionContext* context, Event* event)
    186186{
    187187    if (!m_listener.isEmpty() && !m_listener->IsFunction())
     
    189189
    190190    EventTarget* target = event->currentTarget();
    191     v8::Handle<v8::Value> value = toV8(target, v8::Handle<v8::Object>());
     191    v8::Handle<v8::Value> value = toV8(target, v8::Handle<v8::Object>(), toV8Context(context, worldContext())->GetIsolate());
    192192    if (value.IsEmpty())
    193193        return v8::Local<v8::Object>();
  • trunk/Source/WebCore/bindings/v8/V8AbstractEventListener.h

    r127117 r140397  
    116116
    117117        // Get the receiver object to use for event listener call.
    118         v8::Local<v8::Object> getReceiverObject(Event*);
     118        v8::Local<v8::Object> getReceiverObject(ScriptExecutionContext*, Event*);
    119119
    120120    private:
  • trunk/Source/WebCore/bindings/v8/V8EventListener.cpp

    r126399 r140397  
    7373
    7474    v8::Local<v8::Function> handlerFunction = getListenerFunction(context);
    75     v8::Local<v8::Object> receiver = getReceiverObject(event);
     75    v8::Local<v8::Object> receiver = getReceiverObject(context, event);
    7676    if (handlerFunction.IsEmpty() || receiver.IsEmpty())
    7777        return v8::Local<v8::Value>();
  • trunk/Source/WebCore/bindings/v8/V8LazyEventListener.cpp

    r139900 r140397  
    6464
    6565template<typename T>
    66 v8::Handle<v8::Object> toObjectWrapper(T* domObject)
     66v8::Handle<v8::Object> toObjectWrapper(T* domObject, v8::Isolate* isolate)
    6767{
    6868    if (!domObject)
    6969        return v8::Object::New();
    70     v8::Handle<v8::Value> value = toV8(domObject, v8::Handle<v8::Object>());
     70    v8::Handle<v8::Value> value = toV8(domObject, v8::Handle<v8::Object>(), isolate);
    7171    if (value.IsEmpty())
    7272        return v8::Object::New();
     
    8181
    8282    v8::Local<v8::Function> handlerFunction = listenerObject.As<v8::Function>();
    83     v8::Local<v8::Object> receiver = getReceiverObject(event);
     83    v8::Local<v8::Object> receiver = getReceiverObject(context, event);
    8484    if (handlerFunction.IsEmpty() || receiver.IsEmpty())
    8585        return v8::Local<v8::Value>();
     
    179179        formElement = static_cast<HTMLElement*>(m_node)->form();
    180180
    181     v8::Handle<v8::Object> nodeWrapper = toObjectWrapper<Node>(m_node);
    182     v8::Handle<v8::Object> formWrapper = toObjectWrapper<HTMLFormElement>(formElement);
    183     v8::Handle<v8::Object> documentWrapper = toObjectWrapper<Document>(m_node ? m_node->ownerDocument() : 0);
     181    v8::Handle<v8::Object> nodeWrapper = toObjectWrapper<Node>(m_node, v8Context->GetIsolate());
     182    v8::Handle<v8::Object> formWrapper = toObjectWrapper<HTMLFormElement>(formElement, v8Context->GetIsolate());
     183    v8::Handle<v8::Object> documentWrapper = toObjectWrapper<Document>(m_node ? m_node->ownerDocument() : 0, v8Context->GetIsolate());
    184184
    185185    v8::Local<v8::Object> thisObject = v8::Object::New();
  • trunk/Source/WebCore/bindings/v8/V8WorkerContextEventListener.cpp

    r140392 r140397  
    119119
    120120    EventTarget* target = event->currentTarget();
    121     v8::Handle<v8::Value> value = toV8(target, v8::Handle<v8::Object>());
     121    v8::Handle<v8::Value> value = toV8(target, v8::Handle<v8::Object>(), toV8Context(context, worldContext())->GetIsolate());
    122122    if (value.IsEmpty())
    123123        return v8::Local<v8::Object>();
Note: See TracChangeset for help on using the changeset viewer.