<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[210307] trunk/Source/JavaScriptCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/210307">210307</a></dd>
<dt>Author</dt> <dd>bburg@apple.com</dd>
<dt>Date</dt> <dd>2017-01-04 17:16:30 -0800 (Wed, 04 Jan 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Web Inspector: teach the protocol generator about platform-specific types, events, and commands
https://bugs.webkit.org/show_bug.cgi?id=166003
&lt;rdar://problem/28718990&gt;

Reviewed by Joseph Pecoraro.

Add a --platform argument to generate-inspector-protocol-bindings.py and propagate
the specified platform to each generator. This will be used in the next few patches
to exclude types, events, and commands that are unsupported by the backend platform.

Covert all subclasses of Generator to pass along their positional arguments so that we
can easily change base class arguments without editing all generator constructors.

* inspector/scripts/codegen/cpp_generator.py:
(CppGenerator.__init__):
* inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:
(CppAlternateBackendDispatcherHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:
(CppBackendDispatcherHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:
(CppBackendDispatcherImplementationGenerator.__init__):
* inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:
(CppFrontendDispatcherHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:
(CppFrontendDispatcherImplementationGenerator.__init__):
* inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
(CppProtocolTypesHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:
(CppProtocolTypesImplementationGenerator.__init__):
* inspector/scripts/codegen/generate_js_backend_commands.py:
(JSBackendCommandsGenerator.__init__):
* inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py:
(ObjCBackendDispatcherHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:
(ObjCConfigurationImplementationGenerator.__init__):
* inspector/scripts/codegen/generate_objc_configuration_header.py:
(ObjCConfigurationHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_objc_configuration_implementation.py:
(ObjCBackendDispatcherImplementationGenerator.__init__):
* inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py:
(ObjCFrontendDispatcherImplementationGenerator.__init__):
* inspector/scripts/codegen/generate_objc_header.py:
(ObjCHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_objc_internal_header.py:
(ObjCInternalHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:
(ObjCProtocolTypeConversionsHeaderGenerator.__init__):
* inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:
(ObjCProtocolTypeConversionsImplementationGenerator.__init__):
* inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:
(ObjCProtocolTypesImplementationGenerator.__init__):
Pass along *args instead of single positional arguments.

* inspector/scripts/codegen/generator.py:
(Generator.__init__):
Save the target platform and add a getter.

* inspector/scripts/codegen/models.py:
(Platform):
(Platform.__init__):
(Platform.fromString):
(Platforms):
Define the allowed Platform instances (iOS, macOS, and Any).

* inspector/scripts/codegen/objc_generator.py:
(ObjCGenerator.and.__init__):
* inspector/scripts/generate-inspector-protocol-bindings.py:
(generate_from_specification):
Pass along *args instead of single positional arguments.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegencpp_generatorpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_alternate_backend_dispatcher_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_backend_dispatcher_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_backend_dispatcher_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_frontend_dispatcher_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_frontend_dispatcher_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_js_backend_commandspy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_backend_dispatcher_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_backend_dispatcher_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_configuration_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_configuration_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_frontend_dispatcher_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_internal_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_protocol_type_conversions_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_protocol_type_conversions_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_protocol_types_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengeneratorpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegenmodelspy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/models.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegenobjc_generatorpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptsgenerateinspectorprotocolbindingspy">trunk/Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/ChangeLog        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -1,3 +1,75 @@
</span><ins>+2017-01-03  Brian Burg  &lt;bburg@apple.com&gt;
+
+        Web Inspector: teach the protocol generator about platform-specific types, events, and commands
+        https://bugs.webkit.org/show_bug.cgi?id=166003
+        &lt;rdar://problem/28718990&gt;
+
+        Reviewed by Joseph Pecoraro.
+
+        Add a --platform argument to generate-inspector-protocol-bindings.py and propagate
+        the specified platform to each generator. This will be used in the next few patches
+        to exclude types, events, and commands that are unsupported by the backend platform.
+
+        Covert all subclasses of Generator to pass along their positional arguments so that we
+        can easily change base class arguments without editing all generator constructors.
+
+        * inspector/scripts/codegen/cpp_generator.py:
+        (CppGenerator.__init__):
+        * inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:
+        (CppAlternateBackendDispatcherHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:
+        (CppBackendDispatcherHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:
+        (CppBackendDispatcherImplementationGenerator.__init__):
+        * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:
+        (CppFrontendDispatcherHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:
+        (CppFrontendDispatcherImplementationGenerator.__init__):
+        * inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
+        (CppProtocolTypesHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:
+        (CppProtocolTypesImplementationGenerator.__init__):
+        * inspector/scripts/codegen/generate_js_backend_commands.py:
+        (JSBackendCommandsGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py:
+        (ObjCBackendDispatcherHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:
+        (ObjCConfigurationImplementationGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_configuration_header.py:
+        (ObjCConfigurationHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_configuration_implementation.py:
+        (ObjCBackendDispatcherImplementationGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py:
+        (ObjCFrontendDispatcherImplementationGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_header.py:
+        (ObjCHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_internal_header.py:
+        (ObjCInternalHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:
+        (ObjCProtocolTypeConversionsHeaderGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:
+        (ObjCProtocolTypeConversionsImplementationGenerator.__init__):
+        * inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:
+        (ObjCProtocolTypesImplementationGenerator.__init__):
+        Pass along *args instead of single positional arguments.
+
+        * inspector/scripts/codegen/generator.py:
+        (Generator.__init__):
+        Save the target platform and add a getter.
+
+        * inspector/scripts/codegen/models.py:
+        (Platform):
+        (Platform.__init__):
+        (Platform.fromString):
+        (Platforms):
+        Define the allowed Platform instances (iOS, macOS, and Any).
+
+        * inspector/scripts/codegen/objc_generator.py:
+        (ObjCGenerator.and.__init__):
+        * inspector/scripts/generate-inspector-protocol-bindings.py:
+        (generate_from_specification):
+        Pass along *args instead of single positional arguments.
+
</ins><span class="cx"> 2017-01-04  JF Bastien  &lt;jfbastien@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         WebAssembly JS API: add Module.sections
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegencpp_generatorpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -44,8 +44,8 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> class CppGenerator(Generator):
</span><del>-    def __init__(self, model, input_filepath):
-        Generator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        Generator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def protocol_name(self):
</span><span class="cx">         return self.model().framework.setting('cpp_protocol_group', '')
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_alternate_backend_dispatcher_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -37,8 +37,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class CppAlternateBackendDispatcherHeaderGenerator(CppGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        CppGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        CppGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return '%sAlternateBackendDispatchers.h' % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_backend_dispatcher_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -39,8 +39,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class CppBackendDispatcherHeaderGenerator(CppGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        CppGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        CppGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return &quot;%sBackendDispatchers.h&quot; % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_backend_dispatcher_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -38,8 +38,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class CppBackendDispatcherImplementationGenerator(CppGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        CppGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        CppGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return &quot;%sBackendDispatchers.cpp&quot; % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_frontend_dispatcher_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -39,8 +39,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class CppFrontendDispatcherHeaderGenerator(CppGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        CppGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        CppGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return &quot;%sFrontendDispatchers.h&quot; % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_frontend_dispatcher_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -38,8 +38,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class CppFrontendDispatcherImplementationGenerator(CppGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        CppGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        CppGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return &quot;%sFrontendDispatchers.cpp&quot; % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -40,8 +40,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class CppProtocolTypesHeaderGenerator(CppGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        CppGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        CppGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return &quot;%sProtocolObjects.h&quot; % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -39,8 +39,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class CppProtocolTypesImplementationGenerator(CppGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        CppGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        CppGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return &quot;%sProtocolObjects.cpp&quot; % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_js_backend_commandspy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -37,8 +37,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class JSBackendCommandsGenerator(Generator):
</span><del>-    def __init__(self, model, input_filepath):
-        Generator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        Generator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return &quot;InspectorBackendCommands.js&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_backend_dispatcher_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -40,8 +40,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class ObjCBackendDispatcherHeaderGenerator(ObjCGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return '%sBackendDispatchers.h' % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_backend_dispatcher_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -40,8 +40,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class ObjCConfigurationImplementationGenerator(ObjCGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return '%sBackendDispatchers.mm' % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_configuration_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -37,8 +37,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class ObjCConfigurationHeaderGenerator(ObjCGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return '%sConfiguration.h' % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_configuration_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -37,8 +37,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class ObjCBackendDispatcherImplementationGenerator(ObjCGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return '%sConfiguration.mm' % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_frontend_dispatcher_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -38,8 +38,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class ObjCFrontendDispatcherImplementationGenerator(ObjCGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return '%sEventDispatchers.mm' % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -44,8 +44,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class ObjCHeaderGenerator(ObjCGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return '%s.h' % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_internal_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -37,8 +37,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class ObjCInternalHeaderGenerator(ObjCGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return '%sInternal.h' % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_protocol_type_conversions_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -44,8 +44,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class ObjCProtocolTypeConversionsHeaderGenerator(ObjCGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return '%sTypeConversions.h' % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_protocol_type_conversions_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -43,8 +43,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class ObjCProtocolTypeConversionsImplementationGenerator(ObjCGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return '%sTypeConversions.mm' % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_protocol_types_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -44,8 +44,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class ObjCProtocolTypesImplementationGenerator(ObjCGenerator):
</span><del>-    def __init__(self, model, input_filepath):
-        ObjCGenerator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        ObjCGenerator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return '%sTypes.mm' % self.protocol_name()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengeneratorpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -76,8 +76,9 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class Generator:
</span><del>-    def __init__(self, model, input_filepath):
</del><ins>+    def __init__(self, model, platform, input_filepath):
</ins><span class="cx">         self._model = model
</span><ins>+        self._platform = platform
</ins><span class="cx">         self._input_filepath = input_filepath
</span><span class="cx">         self._settings = {}
</span><span class="cx"> 
</span><span class="lines">@@ -84,6 +85,9 @@
</span><span class="cx">     def model(self):
</span><span class="cx">         return self._model
</span><span class="cx"> 
</span><ins>+    def platform(self):
+        return self._platform
+
</ins><span class="cx">     def set_generator_setting(self, key, value):
</span><span class="cx">         self._settings[key] = value
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegenmodelspy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/models.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/models.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/models.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -109,6 +109,35 @@
</span><span class="cx">     Test = Framework(&quot;Test&quot;)
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+class Platform:
+    def __init__(self, name):
+        self.name = name
+
+    @staticmethod
+    def fromString(platformString):
+        platformString = platformString.lower()
+        if platformString == &quot;ios&quot;:
+            return Platforms.iOS
+
+        if platformString == &quot;macos&quot;:
+            return Platforms.macOS
+
+        if platformString == &quot;all&quot;:
+            return Platforms.All
+
+        if platformString == &quot;generic&quot; or not platformString:
+            return Platforms.Generic
+
+        raise ParseException(&quot;Unknown platform: %s&quot; % platformString)
+
+
+class Platforms:
+    All = Platform(&quot;All&quot;)
+    Generic = Platform(&quot;generic&quot;)
+    iOS = Platform(&quot;iOS&quot;)
+    macOS = Platform(&quot;macOS&quot;)
+
+
</ins><span class="cx"> class TypeReference:
</span><span class="cx">     def __init__(self, type_kind, referenced_type_name, enum_values, array_items):
</span><span class="cx">         self.type_kind = type_kind
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegenobjc_generatorpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -89,8 +89,8 @@
</span><span class="cx">     OBJC_SHARED_PREFIX = 'Protocol'
</span><span class="cx">     OBJC_STATIC_PREFIX = '%s%s' % (OBJC_HELPER_PREFIX, OBJC_SHARED_PREFIX)
</span><span class="cx"> 
</span><del>-    def __init__(self, model, input_filepath):
-        Generator.__init__(self, model, input_filepath)
</del><ins>+    def __init__(self, *args, **kwargs):
+        Generator.__init__(self, *args, **kwargs)
</ins><span class="cx"> 
</span><span class="cx">     # The 'protocol name' is used to prefix filenames for a protocol group (a set of domains generated together).
</span><span class="cx">     def protocol_name(self):
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptsgenerateinspectorprotocolbindingspy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py (210306 => 210307)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py        2017-01-05 01:10:11 UTC (rev 210306)
+++ trunk/Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py        2017-01-05 01:16:30 UTC (rev 210307)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> #!/usr/bin/env python
</span><span class="cx"> #
</span><del>-# Copyright (c) 2014 Apple Inc. All rights reserved.
</del><ins>+# Copyright (c) 2014, 2016 Apple Inc. All rights reserved.
</ins><span class="cx"> # Copyright (c) 2014 University of Washington. All rights reserved.
</span><span class="cx"> #
</span><span class="cx"> # Redistribution and use in source and binary forms, with or without
</span><span class="lines">@@ -114,6 +114,7 @@
</span><span class="cx">                                 output_dirpath=None,
</span><span class="cx">                                 force_output=False,
</span><span class="cx">                                 framework_name=&quot;&quot;,
</span><ins>+                                platform_name=&quot;&quot;,
</ins><span class="cx">                                 generate_frontend=True,
</span><span class="cx">                                 generate_backend=True):
</span><span class="cx"> 
</span><span class="lines">@@ -125,6 +126,7 @@
</span><span class="cx">         except ValueError as e:
</span><span class="cx">             raise Exception(&quot;Error parsing valid JSON in file: &quot; + filepath + &quot;\nParse error: &quot; + str(e))
</span><span class="cx"> 
</span><ins>+    platform = Platform.fromString(platform_name)
</ins><span class="cx">     protocol = models.Protocol(framework_name)
</span><span class="cx">     for specification in supplemental_specification_filepaths:
</span><span class="cx">         load_specification(protocol, specification, isSupplemental=True)
</span><span class="lines">@@ -132,59 +134,61 @@
</span><span class="cx"> 
</span><span class="cx">     protocol.resolve_types()
</span><span class="cx"> 
</span><ins>+    generator_arguments = [protocol, platform, primary_specification_filepath]
</ins><span class="cx">     generators = []
</span><ins>+
</ins><span class="cx">     if protocol.framework is Frameworks.Test:
</span><del>-        generators.append(JSBackendCommandsGenerator(protocol, primary_specification_filepath))
-        generators.append(CppAlternateBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppBackendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(CppFrontendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppFrontendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(CppProtocolTypesHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppProtocolTypesImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCBackendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCConfigurationHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCConfigurationImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCFrontendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCInternalHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypeConversionsHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypeConversionsImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypesImplementationGenerator(protocol, primary_specification_filepath))
</del><ins>+        generators.append(JSBackendCommandsGenerator(*generator_arguments))
+        generators.append(CppAlternateBackendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(CppBackendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(CppBackendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(CppFrontendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(CppFrontendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(CppProtocolTypesHeaderGenerator(*generator_arguments))
+        generators.append(CppProtocolTypesImplementationGenerator(*generator_arguments))
+        generators.append(ObjCBackendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(ObjCBackendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(ObjCConfigurationHeaderGenerator(*generator_arguments))
+        generators.append(ObjCConfigurationImplementationGenerator(*generator_arguments))
+        generators.append(ObjCFrontendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(ObjCHeaderGenerator(*generator_arguments))
+        generators.append(ObjCInternalHeaderGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypeConversionsHeaderGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypeConversionsImplementationGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypesImplementationGenerator(*generator_arguments))
</ins><span class="cx"> 
</span><span class="cx">     elif protocol.framework is Frameworks.JavaScriptCore:
</span><del>-        generators.append(JSBackendCommandsGenerator(protocol, primary_specification_filepath))
-        generators.append(CppAlternateBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppBackendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(CppFrontendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppFrontendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(CppProtocolTypesHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppProtocolTypesImplementationGenerator(protocol, primary_specification_filepath))
</del><ins>+        generators.append(JSBackendCommandsGenerator(*generator_arguments))
+        generators.append(CppAlternateBackendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(CppBackendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(CppBackendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(CppFrontendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(CppFrontendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(CppProtocolTypesHeaderGenerator(*generator_arguments))
+        generators.append(CppProtocolTypesImplementationGenerator(*generator_arguments))
</ins><span class="cx"> 
</span><span class="cx">     elif protocol.framework is Frameworks.WebKit and generate_backend:
</span><del>-        generators.append(CppBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppBackendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(CppProtocolTypesHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(CppProtocolTypesImplementationGenerator(protocol, primary_specification_filepath))
</del><ins>+        generators.append(CppBackendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(CppBackendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(CppProtocolTypesHeaderGenerator(*generator_arguments))
+        generators.append(CppProtocolTypesImplementationGenerator(*generator_arguments))
</ins><span class="cx"> 
</span><span class="cx">     elif protocol.framework is Frameworks.WebKit and generate_frontend:
</span><del>-        generators.append(ObjCHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypeConversionsHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypeConversionsImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypesImplementationGenerator(protocol, primary_specification_filepath))
</del><ins>+        generators.append(ObjCHeaderGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypeConversionsHeaderGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypeConversionsImplementationGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypesImplementationGenerator(*generator_arguments))
</ins><span class="cx"> 
</span><span class="cx">     elif protocol.framework is Frameworks.WebInspector:
</span><del>-        generators.append(ObjCBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCBackendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCConfigurationHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCConfigurationImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCFrontendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCInternalHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypeConversionsHeaderGenerator(protocol, primary_specification_filepath))
-        generators.append(ObjCProtocolTypesImplementationGenerator(protocol, primary_specification_filepath))
</del><ins>+        generators.append(ObjCBackendDispatcherHeaderGenerator(*generator_arguments))
+        generators.append(ObjCBackendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(ObjCConfigurationHeaderGenerator(*generator_arguments))
+        generators.append(ObjCConfigurationImplementationGenerator(*generator_arguments))
+        generators.append(ObjCFrontendDispatcherImplementationGenerator(*generator_arguments))
+        generators.append(ObjCHeaderGenerator(*generator_arguments))
+        generators.append(ObjCInternalHeaderGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypeConversionsHeaderGenerator(*generator_arguments))
+        generators.append(ObjCProtocolTypesImplementationGenerator(*generator_arguments))
</ins><span class="cx"> 
</span><span class="cx">     single_output_file_contents = []
</span><span class="cx"> 
</span><span class="lines">@@ -216,6 +220,7 @@
</span><span class="cx"> 
</span><span class="cx"> if __name__ == '__main__':
</span><span class="cx">     allowed_framework_names = ['JavaScriptCore', 'WebInspector', 'WebKit', 'Test']
</span><ins>+    allowed_platform_names = ['iOS', 'macOS', 'all', 'generic']
</ins><span class="cx">     cli_parser = optparse.OptionParser(usage=&quot;usage: %prog [options] PrimaryProtocol.json [SupplementalProtocol.json ...]&quot;)
</span><span class="cx">     cli_parser.add_option(&quot;-o&quot;, &quot;--outputDir&quot;, help=&quot;Directory where generated files should be written.&quot;)
</span><span class="cx">     cli_parser.add_option(&quot;--framework&quot;, type=&quot;choice&quot;, choices=allowed_framework_names, help=&quot;The framework that the primary specification belongs to.&quot;)
</span><span class="lines">@@ -224,6 +229,7 @@
</span><span class="cx">     cli_parser.add_option(&quot;-t&quot;, &quot;--test&quot;, action=&quot;store_true&quot;, help=&quot;Enable test mode. Use unique output filenames created by prepending the input filename.&quot;)
</span><span class="cx">     cli_parser.add_option(&quot;--frontend&quot;, action=&quot;store_true&quot;, help=&quot;Generate code for the frontend-side of the protocol only.&quot;)
</span><span class="cx">     cli_parser.add_option(&quot;--backend&quot;, action=&quot;store_true&quot;, help=&quot;Generate code for the backend-side of the protocol only.&quot;)
</span><ins>+    cli_parser.add_option(&quot;--platform&quot;, default=&quot;generic&quot;, help=&quot;The platform of the backend being generated. For example, we compile WebKit2 for either macOS or iOS. This value is case-insensitive. Allowed values: %s&quot; % &quot;, &quot;.join(allowed_platform_names))
</ins><span class="cx">     options = None
</span><span class="cx"> 
</span><span class="cx">     arg_options, arg_values = cli_parser.parse_args()
</span><span class="lines">@@ -249,6 +255,7 @@
</span><span class="cx">         'output_dirpath': arg_options.outputDir,
</span><span class="cx">         'concatenate_output': arg_options.test,
</span><span class="cx">         'framework_name': arg_options.framework,
</span><ins>+        'platform_name': arg_options.platform,
</ins><span class="cx">         'force_output': arg_options.force,
</span><span class="cx">         'generate_backend': generate_backend,
</span><span class="cx">         'generate_frontend': generate_frontend,
</span></span></pre>
</div>
</div>

</body>
</html>