Index: Source/bindings/templates/methods.cpp |
diff --git a/Source/bindings/templates/methods.cpp b/Source/bindings/templates/methods.cpp |
index 44464c534f5393ee6beb1a70bff47f00b50c0ce4..95ff55b6f4b8a17127614f1344c1bd9df83b87bd 100644 |
--- a/Source/bindings/templates/methods.cpp |
+++ b/Source/bindings/templates/methods.cpp |
@@ -134,7 +134,7 @@ if (info.Length() > {{argument.index}} && {% if argument.is_nullable %}!isUndefi |
{% if argument.is_callback_interface %} |
{# FIXME: remove EventListener special case #} |
{% if argument.idl_type == 'EventListener' %} |
-{% if method.name == 'removeEventListener' %} |
+{% if method.name == 'removeEventListener' or method.name == 'removeListener' %} |
{{argument.name}} = V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), info[{{argument.index}}], false, ListenerFindOnly); |
{% else %}{# method.name == 'addEventListener' #} |
{{argument.name}} = V8EventListenerList::getEventListener(ScriptState::current(info.GetIsolate()), info[{{argument.index}}], false, ListenerFindOrCreate); |
@@ -281,14 +281,15 @@ else |
{% endif %} |
{%- endif %}{# None for void #} |
{# Post-set #} |
-{% if interface_name == 'EventTarget' and method.name in ('addEventListener', |
- 'removeEventListener') %} |
+{% if interface_name in ('EventTarget', 'MediaQueryList') |
+ and method.name in ('addEventListener', 'removeEventListener', 'addListener', 'removeListener') %} |
{% set hidden_dependency_action = 'addHiddenValueToArray' |
- if method.name == 'addEventListener' else 'removeHiddenValueFromArray' %} |
+ if method.name in ('addEventListener', 'addListener') else 'removeHiddenValueFromArray' %} |
+{% set argument_index = '1' if interface_name == 'EventTarget' else '0' %} |
{# Length check needed to skip action on legacy calls without enough arguments. |
http://crbug.com/353484 #} |
-if (info.Length() >= 2 && listener && !impl->toNode()) |
- {{hidden_dependency_action}}(info.Holder(), info[1], {{v8_class}}::eventListenerCacheIndex, info.GetIsolate()); |
+if (info.Length() >= {{argument_index}} + 1 && listener && !impl->toNode()) |
+ {{hidden_dependency_action}}(info.Holder(), info[{{argument_index}}], {{v8_class}}::eventListenerCacheIndex, info.GetIsolate()); |
{% endif %} |
{% endmacro %} |