| Index: Source/bindings/templates/callback_interface.cpp
|
| diff --git a/Source/bindings/templates/callback_interface.cpp b/Source/bindings/templates/callback_interface.cpp
|
| index 1c0b347f78804d2215c7f9e33136ef3fc5747c77..ca24a21c10b8f7a5cebd287c1cf212b7769ea221 100644
|
| --- a/Source/bindings/templates/callback_interface.cpp
|
| +++ b/Source/bindings/templates/callback_interface.cpp
|
| @@ -61,11 +61,14 @@ namespace WebCore {
|
| v8::Handle<v8::Value> *argv = 0;
|
| {% endif %}
|
|
|
| - {% set this_handle_parameter = 'thisHandle, ' if method.call_with_this_handle else '' %}
|
| + {% set this_handle_parameter = 'thisHandle, ' if method.call_with_this_handle else 'm_scriptState->context()->Global(), ' %}
|
| {% if method.idl_type == 'boolean' %}
|
| - return invokeCallback(m_scriptState.get(), m_callback.newLocal(isolate), {{this_handle_parameter}}{{method.arguments | length}}, argv);
|
| + v8::TryCatch exceptionCatcher;
|
| + exceptionCatcher.SetVerbose(true);
|
| + ScriptController::callFunction(m_scriptState->executionContext(), m_callback.newLocal(isolate), {{this_handle_parameter}}{{method.arguments | length}}, argv, m_scriptState->isolate());
|
| + return !exceptionCatcher.HasCaught();
|
| {% else %}{# void #}
|
| - invokeCallback(m_scriptState.get(), m_callback.newLocal(isolate), {{this_handle_parameter}}{{method.arguments | length}}, argv);
|
| + ScriptController::callFunction(m_scriptState->executionContext(), m_callback.newLocal(isolate), {{this_handle_parameter}}{{method.arguments | length}}, argv, m_scriptState->isolate());
|
| {% endif %}
|
| }
|
|
|
|
|