Index: Source/bindings/templates/methods.cpp |
diff --git a/Source/bindings/templates/methods.cpp b/Source/bindings/templates/methods.cpp |
index 94b70730869b707916dfc76315938738c13565d4..2a2e8dcf200092fdf4becc35683bc5a420612a08 100644 |
--- a/Source/bindings/templates/methods.cpp |
+++ b/Source/bindings/templates/methods.cpp |
@@ -378,6 +378,7 @@ static void {{overloads.name}}Method{{world_suffix}}(const v8::FunctionCallbackI |
case {{length}}: |
{# Then resolve by testing argument #} |
{% for test, method in tests_methods %} |
+ {% if method.visible %} |
{% filter runtime_enabled(not overloads.runtime_enabled_function_all and |
method.runtime_enabled_function) %} |
if ({{test}}) { |
@@ -391,10 +392,18 @@ static void {{overloads.name}}Method{{world_suffix}}(const v8::FunctionCallbackI |
return; |
} |
{% endfilter %} |
+ {% endif %} |
{% endfor %} |
break; |
{% endfor %} |
default: |
+ {# #} |
haraken
2014/10/09 04:24:01
Add a comment.
tasak
2014/10/10 07:52:23
Done.
|
+ {% if not is_partial and overloads.partial_overloads %} |
+ if ({{overloads.name}}MethodForPartialInterface) { |
+ ({{overloads.name}}MethodForPartialInterface)(info); |
+ return; |
+ } |
+ {% endif %} |
{# Invalid arity, throw error #} |
{# Report full list of valid arities if gaps and above minimum #} |
{% if overloads.valid_arities %} |
@@ -409,6 +418,12 @@ static void {{overloads.name}}Method{{world_suffix}}(const v8::FunctionCallbackI |
exceptionState.throwIfNeeded(); |
return; |
} |
+ {% if not is_partial and overloads.partial_overloads %} |
+ if ({{overloads.name}}MethodForPartialInterface) { |
+ ({{overloads.name}}MethodForPartialInterface)(info); |
+ return; |
+ } |
+ {% endif %} |
{# No match, throw error #} |
exceptionState.throwTypeError("No function was found that matched the signature provided."); |
exceptionState.throwIfNeeded(); |
@@ -446,8 +461,12 @@ static void {{method.name}}MethodCallback{{world_suffix}}(const v8::FunctionCall |
{% if method.is_custom %} |
{{v8_class}}::{{method.name}}MethodCustom(info); |
{% else %} |
+ {% if is_partial %} |
+ {{cpp_class}}PartialV8Internal::{{method.name}}Method{{world_suffix}}(info); |
+ {% else %} |
{{cpp_class}}V8Internal::{{method.name}}Method{{world_suffix}}(info); |
{% endif %} |
+ {% endif %} |
TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); |
} |
{% endfilter %} |
@@ -600,9 +619,9 @@ v8SetReturnValue(info, wrapper); |
{##############################################################################} |
{% macro method_configuration(method) %} |
{% set method_callback = |
- '%sV8Internal::%sMethodCallback' % (cpp_class, method.name) %} |
+ '%s%sV8Internal::%sMethodCallback' % (cpp_class, 'Partial' if is_partial else '', method.name) %} |
haraken
2014/10/09 04:24:01
We're creating the namespace name repeatedly in te
tasak
2014/10/10 07:52:23
Done.
Added actual_cpp_class and actual_v8_class f
|
{% set method_callback_for_main_world = |
- '%sV8Internal::%sMethodCallbackForMainWorld' % (cpp_class, method.name) |
+ '%s%sV8Internal::%sMethodCallbackForMainWorld' % (cpp_class, 'Partial' if is_parital else '', method.name) |
if method.is_per_world_bindings else '0' %} |
{% set only_exposed_to_private_script = 'V8DOMConfiguration::OnlyExposedToPrivateScript' if method.only_exposed_to_private_script else 'V8DOMConfiguration::ExposedToAllScripts' %} |
{"{{method.name}}", {{method_callback}}, {{method_callback_for_main_world}}, {{method.length}}, {{only_exposed_to_private_script}}} |
@@ -611,7 +630,7 @@ v8SetReturnValue(info, wrapper); |
{######################################} |
{% macro install_custom_signature(method) %} |
-{% set method_callback = '%sV8Internal::%sMethodCallback' % (cpp_class, method.name) %} |
+{% set method_callback = '%s%sV8Internal::%sMethodCallback' % (cpp_class, 'Partial' if is_partial else '', method.name) %} |
{% set method_callback_for_main_world = '%sForMainWorld' % method_callback |
if method.is_per_world_bindings else '0' %} |
{% set property_attribute = |