<!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>[210308] trunk</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/210308">210308</a></dd>
<dt>Author</dt> <dd>bburg@apple.com</dd>
<dt>Date</dt> <dd>2017-01-04 17:17:07 -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.

Source/JavaScriptCore:

Make it possible to test inspector protocol generator output for different platforms.

Move existing tests to the generic/ subdirectory, as they are to be generated
without any specific platform. Later, platform-specific generator behavior will be
tested by cloning the same test to multiple platform directories.

* inspector/scripts/tests{/ =&gt; /generic/}commands-with-async-attribute.json
* inspector/scripts/tests{/ =&gt; /generic/}commands-with-optional-call-return-parameters.json
* inspector/scripts/tests{/ =&gt; /generic/}domains-with-varying-command-sizes.json
* inspector/scripts/tests{/ =&gt; /generic/}enum-values.json
* inspector/scripts/tests{/ =&gt; /generic/}events-with-optional-parameters.json
* inspector/scripts/tests{/ =&gt; /generic/}expected/commands-with-async-attribute.json-result
* inspector/scripts/tests{/ =&gt; /generic/}expected/commands-with-optional-call-return-parameters.json-result
* inspector/scripts/tests{/ =&gt; /generic/}expected/domains-with-varying-command-sizes.json-result
* inspector/scripts/tests{/ =&gt; /generic/}expected/enum-values.json-result
* inspector/scripts/tests{/ =&gt; /generic/}expected/events-with-optional-parameters.json-result
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-domain-availability.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-duplicate-command-call-parameter-names.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-duplicate-command-return-parameter-names.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-duplicate-event-parameter-names.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-duplicate-type-declarations.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-duplicate-type-member-names.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-enum-with-no-values.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-number-typed-optional-parameter-flag.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-number-typed-optional-type-member.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-string-typed-optional-parameter-flag.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-string-typed-optional-type-member.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-type-declaration-using-type-reference.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-type-reference-as-primitive-type.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-type-with-lowercase-name.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-unknown-type-reference-in-type-declaration.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-unknown-type-reference-in-type-member.json-error
* inspector/scripts/tests{/ =&gt; /generic/}expected/generate-domains-with-feature-guards.json-result
* inspector/scripts/tests{/ =&gt; /generic/}expected/same-type-id-different-domain.json-result
* inspector/scripts/tests{/ =&gt; /generic/}expected/shadowed-optional-type-setters.json-result
* inspector/scripts/tests{/ =&gt; /generic/}expected/type-declaration-aliased-primitive-type.json-result
* inspector/scripts/tests{/ =&gt; /generic/}expected/type-declaration-array-type.json-result
* inspector/scripts/tests{/ =&gt; /generic/}expected/type-declaration-enum-type.json-result
* inspector/scripts/tests{/ =&gt; /generic/}expected/type-declaration-object-type.json-result
* inspector/scripts/tests{/ =&gt; /generic/}expected/type-requiring-runtime-casts.json-result
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-domain-availability.json
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-duplicate-command-call-parameter-names.json
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-duplicate-command-return-parameter-names.json
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-duplicate-event-parameter-names.json
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-duplicate-type-declarations.json
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-duplicate-type-member-names.json
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-enum-with-no-values.json
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-number-typed-optional-parameter-flag.json
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-number-typed-optional-type-member.json
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-string-typed-optional-parameter-flag.json
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-string-typed-optional-type-member.json
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-type-declaration-using-type-reference.json
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-type-reference-as-primitive-type.json
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-type-with-lowercase-name.json
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-unknown-type-reference-in-type-declaration.json
* inspector/scripts/tests{/ =&gt; /generic/}fail-on-unknown-type-reference-in-type-member.json
* inspector/scripts/tests{/ =&gt; /generic/}generate-domains-with-feature-guards.json
* inspector/scripts/tests{/ =&gt; /generic/}same-type-id-different-domain.json
* inspector/scripts/tests{/ =&gt; /generic/}shadowed-optional-type-setters.json
* inspector/scripts/tests{/ =&gt; /generic/}type-declaration-aliased-primitive-type.json
* inspector/scripts/tests{/ =&gt; /generic/}type-declaration-array-type.json
* inspector/scripts/tests{/ =&gt; /generic/}type-declaration-enum-type.json
* inspector/scripts/tests{/ =&gt; /generic/}type-declaration-object-type.json
* inspector/scripts/tests{/ =&gt; /generic/}type-requiring-runtime-casts.json

Tools:

Teach run-inspector-generator-tests to generate test output using the platform name
derived from the directory that the test is in. For example, tests in the /generic/
subdirectory will pass `--platform generic` to generate-inspector-protocol-bindings.py.

* Scripts/webkitpy/inspector/main.py:
(InspectorGeneratorTests.generate_from_json):
(InspectorGeneratorTests.run_tests):
(InspectorGeneratorTests.main):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsScriptswebkitpyinspectormainpy">trunk/Tools/Scripts/webkitpy/inspector/main.py</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/</li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericcommandswithasyncattributejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-async-attribute.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericcommandswithoptionalcallreturnparametersjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-optional-call-return-parameters.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericdomainswithvaryingcommandsizesjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/domains-with-varying-command-sizes.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericenumvaluesjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/enum-values.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericeventswithoptionalparametersjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/events-with-optional-parameters.json</a></li>
<li>trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/</li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedcommandswithasyncattributejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedcommandswithoptionalcallreturnparametersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpecteddomainswithvaryingcommandsizesjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedenumvaluesjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/enum-values.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedeventswithoptionalparametersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailondomainavailabilityjsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-availability.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonduplicatecommandcallparameternamesjsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-call-parameter-names.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonduplicatecommandreturnparameternamesjsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-return-parameter-names.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonduplicateeventparameternamesjsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-event-parameter-names.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonduplicatetypedeclarationsjsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-declarations.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonduplicatetypemembernamesjsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-member-names.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonenumwithnovaluesjsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-enum-with-no-values.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonnumbertypedoptionalparameterflagjsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-parameter-flag.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonnumbertypedoptionaltypememberjsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-type-member.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonstringtypedoptionalparameterflagjsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-parameter-flag.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonstringtypedoptionaltypememberjsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-type-member.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailontypedeclarationusingtypereferencejsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-declaration-using-type-reference.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailontypereferenceasprimitivetypejsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-reference-as-primitive-type.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailontypewithlowercasenamejsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-with-lowercase-name.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonunknowntypereferenceintypedeclarationjsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-declaration.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonunknowntypereferenceintypememberjsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-member.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedgeneratedomainswithfeatureguardsjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedsametypeiddifferentdomainjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedshadowedoptionaltypesettersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationaliasedprimitivetypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationarraytypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationenumtypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationobjecttypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtyperequiringruntimecastsjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailondomainavailabilityjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-availability.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonduplicatecommandcallparameternamesjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-call-parameter-names.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonduplicatecommandreturnparameternamesjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-return-parameter-names.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonduplicateeventparameternamesjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-event-parameter-names.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonduplicatetypedeclarationsjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-declarations.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonduplicatetypemembernamesjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-member-names.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonenumwithnovaluesjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-enum-with-no-values.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonnumbertypedoptionalparameterflagjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-parameter-flag.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonnumbertypedoptionaltypememberjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-type-member.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonstringtypedoptionalparameterflagjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-parameter-flag.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonstringtypedoptionaltypememberjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-type-member.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailontypedeclarationusingtypereferencejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-declaration-using-type-reference.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailontypereferenceasprimitivetypejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-reference-as-primitive-type.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailontypewithlowercasenamejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-with-lowercase-name.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonunknowntypereferenceintypedeclarationjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-declaration.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonunknowntypereferenceintypememberjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-member.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericgeneratedomainswithfeatureguardsjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/generate-domains-with-feature-guards.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericsametypeiddifferentdomainjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/same-type-id-different-domain.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericshadowedoptionaltypesettersjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/shadowed-optional-type-setters.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenerictypedeclarationaliasedprimitivetypejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-aliased-primitive-type.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenerictypedeclarationarraytypejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-array-type.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenerictypedeclarationenumtypejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-enum-type.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenerictypedeclarationobjecttypejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-object-type.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenerictyperequiringruntimecastsjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-requiring-runtime-casts.json</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestscommandswithasyncattributejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-async-attribute.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestscommandswithoptionalcallreturnparametersjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-optional-call-return-parameters.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsdomainswithvaryingcommandsizesjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/domains-with-varying-command-sizes.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsenumvaluesjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/enum-values.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestseventswithoptionalparametersjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/events-with-optional-parameters.json</a></li>
<li>trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/</li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailondomainavailabilityjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-domain-availability.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailonduplicatecommandcallparameternamesjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-command-call-parameter-names.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailonduplicatecommandreturnparameternamesjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-command-return-parameter-names.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailonduplicateeventparameternamesjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-event-parameter-names.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailonduplicatetypedeclarationsjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-type-declarations.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailonduplicatetypemembernamesjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-type-member-names.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailonenumwithnovaluesjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-enum-with-no-values.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailonnumbertypedoptionalparameterflagjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-number-typed-optional-parameter-flag.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailonnumbertypedoptionaltypememberjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-number-typed-optional-type-member.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailonstringtypedoptionalparameterflagjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-string-typed-optional-parameter-flag.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailonstringtypedoptionaltypememberjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-string-typed-optional-type-member.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailontypedeclarationusingtypereferencejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-type-declaration-using-type-reference.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailontypereferenceasprimitivetypejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-type-reference-as-primitive-type.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailontypewithlowercasenamejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-type-with-lowercase-name.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailonunknowntypereferenceintypedeclarationjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-unknown-type-reference-in-type-declaration.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsfailonunknowntypereferenceintypememberjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-unknown-type-reference-in-type-member.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgeneratedomainswithfeatureguardsjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generate-domains-with-feature-guards.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestssametypeiddifferentdomainjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/same-type-id-different-domain.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsshadowedoptionaltypesettersjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/shadowed-optional-type-setters.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptsteststypedeclarationaliasedprimitivetypejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-aliased-primitive-type.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptsteststypedeclarationarraytypejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-array-type.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptsteststypedeclarationenumtypejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-enum-type.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptsteststypedeclarationobjecttypejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-object-type.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptsteststyperequiringruntimecastsjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/type-requiring-runtime-casts.json</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/ChangeLog        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -6,6 +6,79 @@
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Joseph Pecoraro.
</span><span class="cx"> 
</span><ins>+        Make it possible to test inspector protocol generator output for different platforms.
+
+        Move existing tests to the generic/ subdirectory, as they are to be generated
+        without any specific platform. Later, platform-specific generator behavior will be
+        tested by cloning the same test to multiple platform directories.
+
+        * inspector/scripts/tests{/ =&gt; /generic/}commands-with-async-attribute.json
+        * inspector/scripts/tests{/ =&gt; /generic/}commands-with-optional-call-return-parameters.json
+        * inspector/scripts/tests{/ =&gt; /generic/}domains-with-varying-command-sizes.json
+        * inspector/scripts/tests{/ =&gt; /generic/}enum-values.json
+        * inspector/scripts/tests{/ =&gt; /generic/}events-with-optional-parameters.json
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/commands-with-async-attribute.json-result
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/commands-with-optional-call-return-parameters.json-result
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/domains-with-varying-command-sizes.json-result
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/enum-values.json-result
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/events-with-optional-parameters.json-result
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-domain-availability.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-duplicate-command-call-parameter-names.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-duplicate-command-return-parameter-names.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-duplicate-event-parameter-names.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-duplicate-type-declarations.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-duplicate-type-member-names.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-enum-with-no-values.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-number-typed-optional-parameter-flag.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-number-typed-optional-type-member.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-string-typed-optional-parameter-flag.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-string-typed-optional-type-member.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-type-declaration-using-type-reference.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-type-reference-as-primitive-type.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-type-with-lowercase-name.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-unknown-type-reference-in-type-declaration.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/fail-on-unknown-type-reference-in-type-member.json-error
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/generate-domains-with-feature-guards.json-result
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/same-type-id-different-domain.json-result
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/shadowed-optional-type-setters.json-result
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/type-declaration-aliased-primitive-type.json-result
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/type-declaration-array-type.json-result
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/type-declaration-enum-type.json-result
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/type-declaration-object-type.json-result
+        * inspector/scripts/tests{/ =&gt; /generic/}expected/type-requiring-runtime-casts.json-result
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-domain-availability.json
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-duplicate-command-call-parameter-names.json
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-duplicate-command-return-parameter-names.json
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-duplicate-event-parameter-names.json
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-duplicate-type-declarations.json
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-duplicate-type-member-names.json
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-enum-with-no-values.json
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-number-typed-optional-parameter-flag.json
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-number-typed-optional-type-member.json
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-string-typed-optional-parameter-flag.json
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-string-typed-optional-type-member.json
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-type-declaration-using-type-reference.json
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-type-reference-as-primitive-type.json
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-type-with-lowercase-name.json
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-unknown-type-reference-in-type-declaration.json
+        * inspector/scripts/tests{/ =&gt; /generic/}fail-on-unknown-type-reference-in-type-member.json
+        * inspector/scripts/tests{/ =&gt; /generic/}generate-domains-with-feature-guards.json
+        * inspector/scripts/tests{/ =&gt; /generic/}same-type-id-different-domain.json
+        * inspector/scripts/tests{/ =&gt; /generic/}shadowed-optional-type-setters.json
+        * inspector/scripts/tests{/ =&gt; /generic/}type-declaration-aliased-primitive-type.json
+        * inspector/scripts/tests{/ =&gt; /generic/}type-declaration-array-type.json
+        * inspector/scripts/tests{/ =&gt; /generic/}type-declaration-enum-type.json
+        * inspector/scripts/tests{/ =&gt; /generic/}type-declaration-object-type.json
+        * inspector/scripts/tests{/ =&gt; /generic/}type-requiring-runtime-casts.json
+
+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.
+
</ins><span class="cx">         Add a --platform argument to generate-inspector-protocol-bindings.py and propagate
</span><span class="cx">         the specified platform to each generator. This will be used in the next few patches
</span><span class="cx">         to exclude types, events, and commands that are unsupported by the backend platform.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestscommandswithasyncattributejson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-async-attribute.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-async-attribute.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-async-attribute.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,109 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;Database&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;DatabaseId&quot;,
-            &quot;type&quot;: &quot;integer&quot;,
-            &quot;description&quot;: &quot;Unique identifier of Database object.&quot;
-        },
-        {
-            &quot;id&quot;: &quot;PrimaryColors&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;enum&quot;: [&quot;red&quot;, &quot;green&quot;, &quot;blue&quot;]
-        },
-        {
-            &quot;id&quot;: &quot;ColorList&quot;,
-            &quot;type&quot;: &quot;array&quot;,
-            &quot;items&quot;: { &quot;$ref&quot;: &quot;PrimaryColors&quot; }
-        },
-        {
-            &quot;id&quot;: &quot;Error&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;description&quot;: &quot;Database error.&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
-                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot; }
-            ]
-        }
-    ],
-    &quot;commands&quot;: [
-        {
-            &quot;name&quot;: &quot;executeSQLSyncOptionalReturnValues&quot;,
-            &quot;parameters&quot;: [
-                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
-                { &quot;name&quot;: &quot;query&quot;, &quot;type&quot;: &quot;string&quot; }
-            ],
-            &quot;returns&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;optional&quot;: true, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
-                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;], &quot;optional&quot;: true }
-            ]
-        },
-        {
-            &quot;name&quot;: &quot;executeSQLAsyncOptionalReturnValues&quot;,
-            &quot;async&quot;: true,
-            &quot;parameters&quot;: [
-                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
-                { &quot;name&quot;: &quot;query&quot;, &quot;type&quot;: &quot;string&quot; }
-            ],
-            &quot;returns&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;optional&quot;: true, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
-                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;], &quot;optional&quot;: true }
-            ]
-        },
-        {
-            &quot;name&quot;: &quot;executeSQLSync&quot;,
-            &quot;parameters&quot;: [
-                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
-                { &quot;name&quot;: &quot;query&quot;, &quot;type&quot;: &quot;string&quot; }
-            ],
-            &quot;returns&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
-                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot; },
-                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot; },
-                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot; },
-                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot; },
-                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
-                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot; },
-                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot; },
-                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot; },
-                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;] }
-            ]
-        },
-        {
-            &quot;name&quot;: &quot;executeSQLAsync&quot;,
-            &quot;async&quot;: true,
-            &quot;parameters&quot;: [
-                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
-                { &quot;name&quot;: &quot;query&quot;, &quot;type&quot;: &quot;string&quot; }
-            ],
-            &quot;returns&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
-                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot; },
-                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot; },
-                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot; },
-                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot; },
-                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
-                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot; },
-                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot; },
-                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot; },
-                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;] }
-            ]
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestscommandswithoptionalcallreturnparametersjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-optional-call-return-parameters.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-optional-call-return-parameters.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-optional-call-return-parameters.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,85 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;Database&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;DatabaseId&quot;,
-            &quot;type&quot;: &quot;integer&quot;,
-            &quot;description&quot;: &quot;Unique identifier of Database object.&quot;
-        },
-        {
-            &quot;id&quot;: &quot;PrimaryColors&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;enum&quot;: [&quot;red&quot;, &quot;green&quot;, &quot;blue&quot;]
-        },
-        {
-            &quot;id&quot;: &quot;ColorList&quot;,
-            &quot;type&quot;: &quot;array&quot;,
-            &quot;items&quot;: { &quot;$ref&quot;: &quot;PrimaryColors&quot; }
-        },
-        {
-            &quot;id&quot;: &quot;Error&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;description&quot;: &quot;Database error.&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
-                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot; }
-            ]
-        }
-    ],
-    &quot;commands&quot;: [
-        {
-            &quot;name&quot;: &quot;executeAllOptionalParameters&quot;,
-            &quot;parameters&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;optional&quot;: true, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
-                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;], &quot;optional&quot;: true }
-            ],
-            &quot;returns&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;optional&quot;: true, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
-                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;], &quot;optional&quot;: true }
-            ]
-        },
-        {
-            &quot;name&quot;: &quot;executeNoOptionalParameters&quot;,
-            &quot;parameters&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
-                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot; },
-                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot; },
-                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot; },
-                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot; },
-                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
-                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot; },
-                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot; },
-                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot; },
-                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;] }
-            ],
-            &quot;returns&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
-                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot; },
-                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot; },
-                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot; },
-                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot; },
-                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
-                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot; },
-                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot; },
-                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot; },
-                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;] }
-            ]
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsdomainswithvaryingcommandsizesjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/domains-with-varying-command-sizes.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/domains-with-varying-command-sizes.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/domains-with-varying-command-sizes.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,54 +0,0 @@
</span><del>-[
-{
-    &quot;domain&quot;: &quot;Network1&quot;,
-    &quot;commands&quot;: [
-        {
-            &quot;name&quot;: &quot;loadResource1&quot;,
-            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
-        }
-    ]
-},
-{
-    &quot;domain&quot;: &quot;Network2&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;LoaderId&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;description&quot;: &quot;Unique loader identifier.&quot;
-        }
-    ]
-},
-{
-    &quot;domain&quot;: &quot;Network3&quot;,
-    &quot;commands&quot;: [
-        {
-            &quot;name&quot;: &quot;loadResource1&quot;,
-            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
-        },
-        {
-            &quot;name&quot;: &quot;loadResource2&quot;,
-            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
-        },
-        {
-            &quot;name&quot;: &quot;loadResource3&quot;,
-            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
-        },
-        {
-            &quot;name&quot;: &quot;loadResource4&quot;,
-            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
-        },
-        {
-            &quot;name&quot;: &quot;loadResource5&quot;,
-            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
-        },
-        {
-            &quot;name&quot;: &quot;loadResource6&quot;,
-            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
-        },
-        {
-            &quot;name&quot;: &quot;loadResource7&quot;,
-            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
-        }
-    ]
-}
-]
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsenumvaluesjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/enum-values.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/enum-values.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/enum-values.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,35 +0,0 @@
</span><del>-{&quot;domains&quot;:[
-{
-    &quot;domain&quot;: &quot;TypeDomain&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;TypeDomainEnum&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;enum&quot;: [&quot;shared&quot;, &quot;red&quot;, &quot;green&quot;, &quot;blue&quot;]
-        }
-    ]
-},
-{
-    &quot;domain&quot;: &quot;CommandDomain&quot;,
-    &quot;commands&quot;: [
-        {
-            &quot;name&quot;: &quot;commandWithEnumReturnValue&quot;,
-            &quot;parameters&quot;: [],
-            &quot;returns&quot;: [
-                { &quot;name&quot;: &quot;returnValue&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;shared&quot;, &quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;] }
-            ]
-        }
-    ]
-},
-{
-    &quot;domain&quot;: &quot;EventDomain&quot;,
-    &quot;events&quot;: [
-        {
-            &quot;name&quot;: &quot;eventWithEnumParameter&quot;,
-            &quot;parameters&quot;: [
-                { &quot;name&quot;: &quot;parameter&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;shared&quot;, &quot;black&quot;, &quot;white&quot;] }
-            ]
-        }
-    ]
-}
-]}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestseventswithoptionalparametersjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/events-with-optional-parameters.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/events-with-optional-parameters.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/events-with-optional-parameters.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,59 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;Database&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;DatabaseId&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;description&quot;: &quot;Unique identifier of Database object.&quot;
-        },
-        {
-            &quot;id&quot;: &quot;PrimaryColors&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;values&quot;: [&quot;red&quot;, &quot;green&quot;, &quot;blue&quot;]
-        },
-        {
-            &quot;id&quot;: &quot;ColorList&quot;,
-            &quot;type&quot;: &quot;array&quot;,
-            &quot;items&quot;: { &quot;$ref&quot;: &quot;PrimaryColors&quot; }
-        },
-        {
-            &quot;id&quot;: &quot;Error&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;description&quot;: &quot;Database error.&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
-                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot; }
-            ]
-        }
-    ],
-    &quot;events&quot;: [
-        {
-            &quot;name&quot;: &quot;didExecuteOptionalParameters&quot;,
-            &quot;parameters&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;optional&quot;: true, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
-                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;values&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;], &quot;optional&quot;: true }
-            ]
-        },
-        {
-            &quot;name&quot;: &quot;didExecuteNoOptionalParameters&quot;,
-            &quot;parameters&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
-                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot; },
-                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot; },
-                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot; },
-                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot; },
-                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot; },
-                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot; },
-                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot; },
-                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;values&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;] }
-            ]
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailondomainavailabilityjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-domain-availability.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-domain-availability.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-domain-availability.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,9 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;WebOnly&quot;,
-    &quot;availability&quot;: &quot;webb&quot;,
-    &quot;commands&quot;: [
-        {
-            &quot;name&quot;: &quot;enable&quot;
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailonduplicatecommandcallparameternamesjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-command-call-parameter-names.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-command-call-parameter-names.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-command-call-parameter-names.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,16 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;Overlay&quot;,
-    &quot;commands&quot;: [
-        {
-            &quot;name&quot;: &quot;processPoints&quot;,
-            &quot;parameters&quot;: [
-                { &quot;name&quot;: &quot;point&quot;, &quot;type&quot;: &quot;number&quot; },
-                { &quot;name&quot;: &quot;point&quot;, &quot;type&quot;: &quot;number&quot; }
-            ],
-            &quot;returns&quot;: [
-                { &quot;name&quot;: &quot;result1&quot;, &quot;type&quot;: &quot;string&quot; },
-                { &quot;name&quot;: &quot;result2&quot;, &quot;type&quot;: &quot;string&quot; }
-            ]
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailonduplicatecommandreturnparameternamesjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-command-return-parameter-names.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-command-return-parameter-names.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-command-return-parameter-names.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,16 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;Overlay&quot;,
-    &quot;commands&quot;: [
-        {
-            &quot;name&quot;: &quot;processPoints&quot;,
-            &quot;parameters&quot;: [
-                { &quot;name&quot;: &quot;point1&quot;, &quot;type&quot;: &quot;number&quot; },
-                { &quot;name&quot;: &quot;point2&quot;, &quot;type&quot;: &quot;number&quot; }
-            ],
-            &quot;returns&quot;: [
-                { &quot;name&quot;: &quot;result&quot;, &quot;type&quot;: &quot;string&quot; },
-                { &quot;name&quot;: &quot;result&quot;, &quot;type&quot;: &quot;string&quot; }
-            ]
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailonduplicateeventparameternamesjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-event-parameter-names.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-event-parameter-names.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-event-parameter-names.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,12 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;Overlay&quot;,
-    &quot;events&quot;: [
-        {
-            &quot;name&quot;: &quot;processedPoints&quot;,
-            &quot;parameters&quot;: [
-                { &quot;name&quot;: &quot;point&quot;, &quot;type&quot;: &quot;number&quot; },
-                { &quot;name&quot;: &quot;point&quot;, &quot;type&quot;: &quot;number&quot; }
-            ]
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailonduplicatetypedeclarationsjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-type-declarations.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-type-declarations.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-type-declarations.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,15 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;Runtime&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;RemoteObjectId&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;description&quot;: &quot;Unique object identifier.&quot;
-        },
-        {
-            &quot;id&quot;: &quot;RemoteObjectId&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;description&quot;: &quot;Unique object identifier.&quot;
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailonduplicatetypemembernamesjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-type-member-names.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-type-member-names.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-type-member-names.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,15 +0,0 @@
</span><del>-[
-{
-    &quot;domain&quot;: &quot;OverlayTypes&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;Point&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: &quot;integer&quot; },
-                { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: &quot;integer&quot; }
-            ]
-        }
-    ]
-}
-]
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailonenumwithnovaluesjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-enum-with-no-values.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-enum-with-no-values.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-enum-with-no-values.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,10 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;Database&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;PrimaryColors&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;enum&quot;: []
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailonnumbertypedoptionalparameterflagjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-number-typed-optional-parameter-flag.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-number-typed-optional-parameter-flag.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-number-typed-optional-parameter-flag.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,18 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;Database&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;DatabaseId&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;description&quot;: &quot;Unique identifier of Database object.&quot;
-        }
-    ],
-    &quot;events&quot;: [
-        {
-            &quot;name&quot;: &quot;didExecuteOptionalParameters&quot;,
-            &quot;parameters&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: 0 }
-            ]
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailonnumbertypedoptionaltypememberjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-number-typed-optional-type-member.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-number-typed-optional-type-member.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-number-typed-optional-type-member.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,16 +0,0 @@
</span><del>-[
-{
-    &quot;domain&quot;: &quot;Database&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;Error&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;description&quot;: &quot;Database error.&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
-                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot;, &quot;optional&quot;: 0 }
-            ]
-        }
-    ]
-}
-]
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailonstringtypedoptionalparameterflagjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-string-typed-optional-parameter-flag.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-string-typed-optional-parameter-flag.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-string-typed-optional-parameter-flag.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,18 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;Database&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;DatabaseId&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;description&quot;: &quot;Unique identifier of Database object.&quot;
-        }
-    ],
-    &quot;events&quot;: [
-        {
-            &quot;name&quot;: &quot;didExecuteOptionalParameters&quot;,
-            &quot;parameters&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: &quot;true&quot; }
-            ]
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailonstringtypedoptionaltypememberjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-string-typed-optional-type-member.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-string-typed-optional-type-member.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-string-typed-optional-type-member.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,16 +0,0 @@
</span><del>-[
-{
-    &quot;domain&quot;: &quot;Database&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;Error&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;description&quot;: &quot;Database error.&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
-                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot;, &quot;optional&quot;: &quot;false&quot; }
-            ]
-        }
-    ]
-}
-]
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailontypedeclarationusingtypereferencejson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-type-declaration-using-type-reference.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-type-declaration-using-type-reference.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-type-declaration-using-type-reference.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,13 +0,0 @@
</span><del>-[
-{
-    &quot;domain&quot;: &quot;Runtime&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;RemoteObjectId&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;$ref&quot;: &quot;SomeType&quot;,
-            &quot;description&quot;: &quot;Unique object identifier.&quot;
-        }
-    ]
-}
-]
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailontypereferenceasprimitivetypejson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-type-reference-as-primitive-type.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-type-reference-as-primitive-type.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-type-reference-as-primitive-type.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,18 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;Database&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;DatabaseId&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;description&quot;: &quot;Unique identifier of Database object.&quot;
-        }
-    ],
-    &quot;events&quot;: [
-        {
-            &quot;name&quot;: &quot;didExecuteOptionalParameters&quot;,
-            &quot;parameters&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;DatabaseId&quot; }
-            ]
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailontypewithlowercasenamejson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-type-with-lowercase-name.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-type-with-lowercase-name.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-type-with-lowercase-name.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,10 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;Database&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;databaseId&quot;,
-            &quot;type&quot;: &quot;integer&quot;,
-            &quot;description&quot;: &quot;Unique identifier of Database object.&quot;
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailonunknowntypereferenceintypedeclarationjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-unknown-type-reference-in-type-declaration.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-unknown-type-reference-in-type-declaration.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-unknown-type-reference-in-type-declaration.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,12 +0,0 @@
</span><del>-[
-{
-    &quot;domain&quot;: &quot;Runtime&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;RemoteObjectId&quot;,
-            &quot;type&quot;: &quot;dragon&quot;,
-            &quot;description&quot;: &quot;Unique object identifier.&quot;
-        }
-    ]
-}
-]
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsfailonunknowntypereferenceintypememberjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-unknown-type-reference-in-type-member.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-unknown-type-reference-in-type-member.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-unknown-type-reference-in-type-member.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,15 +0,0 @@
</span><del>-[
-{
-    &quot;domain&quot;: &quot;Fantasy&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;DragonEgg&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;description&quot;: &quot;A dragon egg.&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;color&quot;, &quot;$ref&quot;: &quot;Color&quot; }
-            ]
-        }
-    ]
-}
-]
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgeneratedomainswithfeatureguardsjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/generate-domains-with-feature-guards.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generate-domains-with-feature-guards.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generate-domains-with-feature-guards.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,36 +0,0 @@
</span><del>-[
-{
-    &quot;domain&quot;: &quot;Network1&quot;,
-    &quot;featureGuard&quot;: &quot;PLATFORM(WEB_COMMANDS)&quot;,
-    &quot;commands&quot;: [
-        {
-            &quot;name&quot;: &quot;loadResource&quot;,
-            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
-        }
-    ]
-},
-{
-    &quot;domain&quot;: &quot;Network2&quot;,
-    &quot;featureGuard&quot;: &quot;PLATFORM(WEB_TYPES)&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;NetworkError&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
-                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot; }
-            ]
-        }
-    ]
-},
-{
-    &quot;domain&quot;: &quot;Network3&quot;,
-    &quot;featureGuard&quot;: &quot;PLATFORM(WEB_EVENTS)&quot;,
-    &quot;events&quot;: [
-        {
-            &quot;name&quot;: &quot;resourceLoaded&quot;,
-            &quot;description&quot;: &quot;A resource was loaded.&quot;
-        }
-    ]
-}
-]
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericcommandswithasyncattributejsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestscommandswithasyncattributejson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-async-attribute.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-async-attribute.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-async-attribute.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-async-attribute.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,109 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Database&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;DatabaseId&quot;,
+            &quot;type&quot;: &quot;integer&quot;,
+            &quot;description&quot;: &quot;Unique identifier of Database object.&quot;
+        },
+        {
+            &quot;id&quot;: &quot;PrimaryColors&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;enum&quot;: [&quot;red&quot;, &quot;green&quot;, &quot;blue&quot;]
+        },
+        {
+            &quot;id&quot;: &quot;ColorList&quot;,
+            &quot;type&quot;: &quot;array&quot;,
+            &quot;items&quot;: { &quot;$ref&quot;: &quot;PrimaryColors&quot; }
+        },
+        {
+            &quot;id&quot;: &quot;Error&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;description&quot;: &quot;Database error.&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
+                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot; }
+            ]
+        }
+    ],
+    &quot;commands&quot;: [
+        {
+            &quot;name&quot;: &quot;executeSQLSyncOptionalReturnValues&quot;,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
+                { &quot;name&quot;: &quot;query&quot;, &quot;type&quot;: &quot;string&quot; }
+            ],
+            &quot;returns&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;optional&quot;: true, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
+                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;], &quot;optional&quot;: true }
+            ]
+        },
+        {
+            &quot;name&quot;: &quot;executeSQLAsyncOptionalReturnValues&quot;,
+            &quot;async&quot;: true,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
+                { &quot;name&quot;: &quot;query&quot;, &quot;type&quot;: &quot;string&quot; }
+            ],
+            &quot;returns&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;optional&quot;: true, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
+                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;], &quot;optional&quot;: true }
+            ]
+        },
+        {
+            &quot;name&quot;: &quot;executeSQLSync&quot;,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
+                { &quot;name&quot;: &quot;query&quot;, &quot;type&quot;: &quot;string&quot; }
+            ],
+            &quot;returns&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
+                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot; },
+                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot; },
+                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot; },
+                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot; },
+                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
+                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot; },
+                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot; },
+                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot; },
+                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;] }
+            ]
+        },
+        {
+            &quot;name&quot;: &quot;executeSQLAsync&quot;,
+            &quot;async&quot;: true,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
+                { &quot;name&quot;: &quot;query&quot;, &quot;type&quot;: &quot;string&quot; }
+            ],
+            &quot;returns&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
+                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot; },
+                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot; },
+                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot; },
+                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot; },
+                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
+                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot; },
+                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot; },
+                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot; },
+                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;] }
+            ]
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericcommandswithoptionalcallreturnparametersjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestscommandswithoptionalcallreturnparametersjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-optional-call-return-parameters.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-optional-call-return-parameters.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-optional-call-return-parameters.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-optional-call-return-parameters.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,85 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Database&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;DatabaseId&quot;,
+            &quot;type&quot;: &quot;integer&quot;,
+            &quot;description&quot;: &quot;Unique identifier of Database object.&quot;
+        },
+        {
+            &quot;id&quot;: &quot;PrimaryColors&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;enum&quot;: [&quot;red&quot;, &quot;green&quot;, &quot;blue&quot;]
+        },
+        {
+            &quot;id&quot;: &quot;ColorList&quot;,
+            &quot;type&quot;: &quot;array&quot;,
+            &quot;items&quot;: { &quot;$ref&quot;: &quot;PrimaryColors&quot; }
+        },
+        {
+            &quot;id&quot;: &quot;Error&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;description&quot;: &quot;Database error.&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
+                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot; }
+            ]
+        }
+    ],
+    &quot;commands&quot;: [
+        {
+            &quot;name&quot;: &quot;executeAllOptionalParameters&quot;,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;optional&quot;: true, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
+                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;], &quot;optional&quot;: true }
+            ],
+            &quot;returns&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;optional&quot;: true, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
+                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;], &quot;optional&quot;: true }
+            ]
+        },
+        {
+            &quot;name&quot;: &quot;executeNoOptionalParameters&quot;,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
+                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot; },
+                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot; },
+                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot; },
+                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot; },
+                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
+                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot; },
+                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot; },
+                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot; },
+                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;] }
+            ],
+            &quot;returns&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
+                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot; },
+                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot; },
+                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot; },
+                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot; },
+                { &quot;name&quot;: &quot;databaseId&quot;, &quot;$ref&quot;: &quot;DatabaseId&quot; },
+                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot; },
+                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot; },
+                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot; },
+                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;] }
+            ]
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericdomainswithvaryingcommandsizesjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsdomainswithvaryingcommandsizesjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/domains-with-varying-command-sizes.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/domains-with-varying-command-sizes.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/domains-with-varying-command-sizes.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/domains-with-varying-command-sizes.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,54 @@
</span><ins>+[
+{
+    &quot;domain&quot;: &quot;Network1&quot;,
+    &quot;commands&quot;: [
+        {
+            &quot;name&quot;: &quot;loadResource1&quot;,
+            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
+        }
+    ]
+},
+{
+    &quot;domain&quot;: &quot;Network2&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;LoaderId&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;description&quot;: &quot;Unique loader identifier.&quot;
+        }
+    ]
+},
+{
+    &quot;domain&quot;: &quot;Network3&quot;,
+    &quot;commands&quot;: [
+        {
+            &quot;name&quot;: &quot;loadResource1&quot;,
+            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
+        },
+        {
+            &quot;name&quot;: &quot;loadResource2&quot;,
+            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
+        },
+        {
+            &quot;name&quot;: &quot;loadResource3&quot;,
+            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
+        },
+        {
+            &quot;name&quot;: &quot;loadResource4&quot;,
+            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
+        },
+        {
+            &quot;name&quot;: &quot;loadResource5&quot;,
+            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
+        },
+        {
+            &quot;name&quot;: &quot;loadResource6&quot;,
+            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
+        },
+        {
+            &quot;name&quot;: &quot;loadResource7&quot;,
+            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
+        }
+    ]
+}
+]
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericenumvaluesjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsenumvaluesjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/enum-values.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/enum-values.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/enum-values.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/enum-values.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+{&quot;domains&quot;:[
+{
+    &quot;domain&quot;: &quot;TypeDomain&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;TypeDomainEnum&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;enum&quot;: [&quot;shared&quot;, &quot;red&quot;, &quot;green&quot;, &quot;blue&quot;]
+        }
+    ]
+},
+{
+    &quot;domain&quot;: &quot;CommandDomain&quot;,
+    &quot;commands&quot;: [
+        {
+            &quot;name&quot;: &quot;commandWithEnumReturnValue&quot;,
+            &quot;parameters&quot;: [],
+            &quot;returns&quot;: [
+                { &quot;name&quot;: &quot;returnValue&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;shared&quot;, &quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;] }
+            ]
+        }
+    ]
+},
+{
+    &quot;domain&quot;: &quot;EventDomain&quot;,
+    &quot;events&quot;: [
+        {
+            &quot;name&quot;: &quot;eventWithEnumParameter&quot;,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;parameter&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;shared&quot;, &quot;black&quot;, &quot;white&quot;] }
+            ]
+        }
+    ]
+}
+]}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericeventswithoptionalparametersjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestseventswithoptionalparametersjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/events-with-optional-parameters.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/events-with-optional-parameters.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/events-with-optional-parameters.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/events-with-optional-parameters.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,59 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Database&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;DatabaseId&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;description&quot;: &quot;Unique identifier of Database object.&quot;
+        },
+        {
+            &quot;id&quot;: &quot;PrimaryColors&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;values&quot;: [&quot;red&quot;, &quot;green&quot;, &quot;blue&quot;]
+        },
+        {
+            &quot;id&quot;: &quot;ColorList&quot;,
+            &quot;type&quot;: &quot;array&quot;,
+            &quot;items&quot;: { &quot;$ref&quot;: &quot;PrimaryColors&quot; }
+        },
+        {
+            &quot;id&quot;: &quot;Error&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;description&quot;: &quot;Database error.&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
+                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot; }
+            ]
+        }
+    ],
+    &quot;events&quot;: [
+        {
+            &quot;name&quot;: &quot;didExecuteOptionalParameters&quot;,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;optional&quot;: true, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
+                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;values&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;], &quot;optional&quot;: true }
+            ]
+        },
+        {
+            &quot;name&quot;: &quot;didExecuteNoOptionalParameters&quot;,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
+                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot; },
+                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot; },
+                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot; },
+                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot; },
+                { &quot;name&quot;: &quot;sqlError&quot;, &quot;$ref&quot;: &quot;Error&quot; },
+                { &quot;name&quot;: &quot;screenColor&quot;, &quot;$ref&quot;: &quot;PrimaryColors&quot; },
+                { &quot;name&quot;: &quot;alternateColors&quot;, &quot;$ref&quot;: &quot;ColorList&quot; },
+                { &quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;values&quot;: [&quot;cyan&quot;, &quot;magenta&quot;, &quot;yellow&quot;, &quot;black&quot;] }
+            ]
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedcommandswithasyncattributejsonresultfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithasyncattributejsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,1754 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+// Database.
+InspectorBackend.registerDatabaseDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, &quot;Database&quot;);
+InspectorBackend.registerEnum(&quot;Database.PrimaryColors&quot;, {Red: &quot;red&quot;, Green: &quot;green&quot;, Blue: &quot;blue&quot;});
+InspectorBackend.registerCommand(&quot;Database.executeSQLSyncOptionalReturnValues&quot;, [{&quot;name&quot;: &quot;databaseId&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: false}, {&quot;name&quot;: &quot;query&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: false}], [&quot;columnNames&quot;, &quot;notes&quot;, &quot;timestamp&quot;, &quot;values&quot;, &quot;payload&quot;, &quot;databaseId&quot;, &quot;sqlError&quot;, &quot;screenColor&quot;, &quot;alternateColors&quot;, &quot;printColor&quot;]);
+InspectorBackend.registerCommand(&quot;Database.executeSQLAsyncOptionalReturnValues&quot;, [{&quot;name&quot;: &quot;databaseId&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: false}, {&quot;name&quot;: &quot;query&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: false}], [&quot;columnNames&quot;, &quot;notes&quot;, &quot;timestamp&quot;, &quot;values&quot;, &quot;payload&quot;, &quot;databaseId&quot;, &quot;sqlError&quot;, &quot;screenColor&quot;, &quot;alternateColors&quot;, &quot;printColor&quot;]);
+InspectorBackend.registerCommand(&quot;Database.executeSQLSync&quot;, [{&quot;name&quot;: &quot;databaseId&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: false}, {&quot;name&quot;: &quot;query&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: false}], [&quot;columnNames&quot;, &quot;notes&quot;, &quot;timestamp&quot;, &quot;values&quot;, &quot;payload&quot;, &quot;databaseId&quot;, &quot;sqlError&quot;, &quot;alternateColors&quot;, &quot;screenColor&quot;, &quot;printColor&quot;]);
+InspectorBackend.registerCommand(&quot;Database.executeSQLAsync&quot;, [{&quot;name&quot;: &quot;databaseId&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: false}, {&quot;name&quot;: &quot;query&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: false}], [&quot;columnNames&quot;, &quot;notes&quot;, &quot;timestamp&quot;, &quot;values&quot;, &quot;payload&quot;, &quot;databaseId&quot;, &quot;sqlError&quot;, &quot;screenColor&quot;, &quot;alternateColors&quot;, &quot;printColor&quot;]);
+InspectorBackend.activateDomain(&quot;Database&quot;);
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+class AlternateDatabaseBackendDispatcher : public AlternateBackendDispatcher {
+public:
+    virtual ~AlternateDatabaseBackendDispatcher() { }
+    virtual void executeSQLSyncOptionalReturnValues(long callId, int in_databaseId, const String&amp; in_query) = 0;
+    virtual void executeSQLAsyncOptionalReturnValues(long callId, int in_databaseId, const String&amp; in_query) = 0;
+    virtual void executeSQLSync(long callId, int in_databaseId, const String&amp; in_query) = 0;
+    virtual void executeSQLAsync(long callId, int in_databaseId, const String&amp; in_query) = 0;
+};
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+class AlternateDatabaseBackendDispatcher;
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+class DatabaseBackendDispatcherHandler {
+public:
+    // Named after parameter 'printColor' while generating command/event executeSQLSyncOptionalReturnValues.
+    enum class PrintColor {
+        Cyan = 3,
+        Magenta = 4,
+        Yellow = 5,
+        Black = 6,
+    }; // enum class PrintColor
+    virtual void executeSQLSyncOptionalReturnValues(ErrorString&amp;, int in_databaseId, const String&amp; in_query, RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp; opt_out_columnNames, Inspector::Protocol::OptOutput&lt;String&gt;* opt_out_notes, Inspector::Protocol::OptOutput&lt;double&gt;* opt_out_timestamp, Inspector::Protocol::OptOutput&lt;Inspector::InspectorObject&gt;* opt_out_values, Inspector::Protocol::OptOutput&lt;Inspector::InspectorValue&gt;* opt_out_payload, Inspector::Protocol::OptOutput&lt;int&gt;* opt_out_databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp; opt_out_sqlError, Inspector::Protocol::Database::PrimaryColors* opt_out_screenColor, RefPtr&lt;Inspector::Protocol::Database::ColorList&gt;&amp; opt_out_alternateColors, DatabaseBackendDispatcherHandler::PrintColor* opt_out_printColor) = 0;
+    class ExecuteSQLAsyncOptionalReturnValuesCallback : public BackendDispatcher::CallbackBase {
+    public:
+        ExecuteSQLAsyncOptionalReturnValuesCallback(Ref&lt;BackendDispatcher&gt;&amp;&amp;, int id);
+        void sendSuccess(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp;&amp; columnNames, Inspector::Protocol::OptOutput&lt;String&gt;* notes, Inspector::Protocol::OptOutput&lt;double&gt;* timestamp, Inspector::Protocol::OptOutput&lt;Inspector::InspectorObject&gt;* values, Inspector::Protocol::OptOutput&lt;Inspector::InspectorValue&gt;* payload, Inspector::Protocol::OptOutput&lt;int&gt;* databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp;&amp; sqlError, Inspector::Protocol::OptOutput&lt;String&gt;* screenColor, RefPtr&lt;Inspector::Protocol::Database::ColorList&gt;&amp;&amp; alternateColors, Inspector::Protocol::OptOutput&lt;String&gt;* printColor);
+    };
+    virtual void executeSQLAsyncOptionalReturnValues(ErrorString&amp;, int in_databaseId, const String&amp; in_query, Ref&lt;ExecuteSQLAsyncOptionalReturnValuesCallback&gt;&amp;&amp; callback) = 0;
+    virtual void executeSQLSync(ErrorString&amp;, int in_databaseId, const String&amp; in_query, RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp; out_columnNames, String* out_notes, double* out_timestamp, Inspector::InspectorObject* out_values, Inspector::InspectorValue* out_payload, int* out_databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp; out_sqlError, RefPtr&lt;Inspector::Protocol::Database::ColorList&gt;&amp; out_alternateColors, Inspector::Protocol::Database::PrimaryColors* out_screenColor, DatabaseBackendDispatcherHandler::PrintColor* out_printColor) = 0;
+    class ExecuteSQLAsyncCallback : public BackendDispatcher::CallbackBase {
+    public:
+        ExecuteSQLAsyncCallback(Ref&lt;BackendDispatcher&gt;&amp;&amp;, int id);
+        void sendSuccess(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp;&amp; columnNames, const String&amp; notes, double timestamp, Inspector::InspectorObject values, Inspector::InspectorValue payload, int databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp;&amp; sqlError, const String&amp; screenColor, RefPtr&lt;Inspector::Protocol::Database::ColorList&gt;&amp;&amp; alternateColors, const String&amp; printColor);
+    };
+    virtual void executeSQLAsync(ErrorString&amp;, int in_databaseId, const String&amp; in_query, Ref&lt;ExecuteSQLAsyncCallback&gt;&amp;&amp; callback) = 0;
+protected:
+    virtual ~DatabaseBackendDispatcherHandler();
+};
+
+class DatabaseBackendDispatcher final : public SupplementalBackendDispatcher {
+public:
+    static Ref&lt;DatabaseBackendDispatcher&gt; create(BackendDispatcher&amp;, DatabaseBackendDispatcherHandler*);
+    void dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message) override;
+private:
+    void executeSQLSyncOptionalReturnValues(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+    void executeSQLAsyncOptionalReturnValues(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+    void executeSQLSync(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+    void executeSQLAsync(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+public:
+    void setAlternateDispatcher(AlternateDatabaseBackendDispatcher* alternateDispatcher) { m_alternateDispatcher = alternateDispatcher; }
+private:
+    AlternateDatabaseBackendDispatcher* m_alternateDispatcher { nullptr };
+#endif
+private:
+    DatabaseBackendDispatcher(BackendDispatcher&amp;, DatabaseBackendDispatcherHandler*);
+    DatabaseBackendDispatcherHandler* m_agent { nullptr };
+};
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+DatabaseBackendDispatcherHandler::~DatabaseBackendDispatcherHandler() { }
+
+Ref&lt;DatabaseBackendDispatcher&gt; DatabaseBackendDispatcher::create(BackendDispatcher&amp; backendDispatcher, DatabaseBackendDispatcherHandler* agent)
+{
+    return adoptRef(*new DatabaseBackendDispatcher(backendDispatcher, agent));
+}
+
+DatabaseBackendDispatcher::DatabaseBackendDispatcher(BackendDispatcher&amp; backendDispatcher, DatabaseBackendDispatcherHandler* agent)
+    : SupplementalBackendDispatcher(backendDispatcher)
+    , m_agent(agent)
+{
+    m_backendDispatcher-&gt;registerDispatcherForDomain(ASCIILiteral(&quot;Database&quot;), this);
+}
+
+void DatabaseBackendDispatcher::dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
+{
+    Ref&lt;DatabaseBackendDispatcher&gt; protect(*this);
+
+    RefPtr&lt;InspectorObject&gt; parameters;
+    message-&gt;getObject(ASCIILiteral(&quot;params&quot;), parameters);
+
+    if (method == &quot;executeSQLSyncOptionalReturnValues&quot;)
+        executeSQLSyncOptionalReturnValues(requestId, WTFMove(parameters));
+    else if (method == &quot;executeSQLAsyncOptionalReturnValues&quot;)
+        executeSQLAsyncOptionalReturnValues(requestId, WTFMove(parameters));
+    else if (method == &quot;executeSQLSync&quot;)
+        executeSQLSync(requestId, WTFMove(parameters));
+    else if (method == &quot;executeSQLAsync&quot;)
+        executeSQLAsync(requestId, WTFMove(parameters));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::MethodNotFound, makeString('\'', &quot;Database&quot;, '.', method, &quot;' was not found&quot;));
+}
+
+void DatabaseBackendDispatcher::executeSQLSyncOptionalReturnValues(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters)
+{
+    int in_databaseId = m_backendDispatcher-&gt;getInteger(parameters.get(), ASCIILiteral(&quot;databaseId&quot;), nullptr);
+    String in_query = m_backendDispatcher-&gt;getString(parameters.get(), ASCIILiteral(&quot;query&quot;), nullptr);
+    if (m_backendDispatcher-&gt;hasProtocolErrors()) {
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::InvalidParams, String::format(&quot;Some arguments of method '%s' can't be processed&quot;, &quot;Database.executeSQLSyncOptionalReturnValues&quot;));
+        return;
+    }
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;executeSQLSyncOptionalReturnValues(requestId, in_databaseId, in_query);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; out_columnNames;
+    Inspector::Protocol::OptOutput&lt;String&gt; out_notes;
+    Inspector::Protocol::OptOutput&lt;double&gt; out_timestamp;
+    Inspector::Protocol::OptOutput&lt;Inspector::InspectorObject&gt; out_values;
+    Inspector::Protocol::OptOutput&lt;Inspector::InspectorValue&gt; out_payload;
+    Inspector::Protocol::OptOutput&lt;Inspector::Protocol::Database::DatabaseId&gt; out_databaseId;
+    RefPtr&lt;Inspector::Protocol::Database::Error&gt; out_sqlError;
+    Inspector::Protocol::Database::PrimaryColors out_screenColor;
+    RefPtr&lt;Inspector::Protocol::Database::ColorList&gt; out_alternateColors;
+    DatabaseBackendDispatcherHandler::PrintColor out_printColor;
+    m_agent-&gt;executeSQLSyncOptionalReturnValues(error, in_databaseId, in_query, out_columnNames, &amp;out_notes, &amp;out_timestamp, out_values, &amp;out_payload, &amp;out_databaseId, out_sqlError, &amp;out_screenColor, out_alternateColors, &amp;out_printColor);
+
+    if (!error.length()) {
+        if (out_columnNames)
+            result-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), out_columnNames);
+        if (out_notes.isAssigned())
+            result-&gt;setString(ASCIILiteral(&quot;notes&quot;), out_notes.getValue());
+        if (out_timestamp.isAssigned())
+            result-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), out_timestamp.getValue());
+        if (out_values.isAssigned())
+            result-&gt;setObject(ASCIILiteral(&quot;values&quot;), out_values.getValue());
+        if (out_payload.isAssigned())
+            result-&gt;setValue(ASCIILiteral(&quot;payload&quot;), out_payload.getValue());
+        if (out_databaseId.isAssigned())
+            result-&gt;setInteger(ASCIILiteral(&quot;databaseId&quot;), out_databaseId.getValue());
+        if (out_sqlError)
+            result-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), out_sqlError);
+        if (out_screenColor.isAssigned())
+            result-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), out_screenColor.getValue());
+        if (out_alternateColors)
+            result-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), out_alternateColors);
+        if (out_printColor.isAssigned())
+            result-&gt;setString(ASCIILiteral(&quot;printColor&quot;), out_printColor.getValue());
+    }
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+
+DatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback::ExecuteSQLAsyncOptionalReturnValuesCallback(Ref&lt;BackendDispatcher&gt;&amp;&amp; backendDispatcher, int id) : BackendDispatcher::CallbackBase(WTFMove(backendDispatcher), id) { }
+
+void DatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback::sendSuccess(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp;&amp; columnNames, Inspector::Protocol::OptOutput&lt;String&gt;* notes, Inspector::Protocol::OptOutput&lt;double&gt;* timestamp, Inspector::Protocol::OptOutput&lt;Inspector::InspectorObject&gt;* values, Inspector::Protocol::OptOutput&lt;Inspector::InspectorValue&gt;* payload, Inspector::Protocol::OptOutput&lt;int&gt;* databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp;&amp; sqlError, Inspector::Protocol::OptOutput&lt;String&gt;* screenColor, RefPtr&lt;Inspector::Protocol::Database::ColorList&gt;&amp;&amp; alternateColors, Inspector::Protocol::OptOutput&lt;String&gt;* printColor)
+{
+    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
+    if (columnNames)
+        jsonMessage-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), columnNames);
+    if (notes.isAssigned())
+        jsonMessage-&gt;setString(ASCIILiteral(&quot;notes&quot;), notes.getValue());
+    if (timestamp.isAssigned())
+        jsonMessage-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), timestamp.getValue());
+    if (values.isAssigned())
+        jsonMessage-&gt;setObject(ASCIILiteral(&quot;values&quot;), values.getValue());
+    if (payload.isAssigned())
+        jsonMessage-&gt;setValue(ASCIILiteral(&quot;payload&quot;), payload.getValue());
+    if (databaseId.isAssigned())
+        jsonMessage-&gt;setInteger(ASCIILiteral(&quot;databaseId&quot;), databaseId.getValue());
+    if (sqlError)
+        jsonMessage-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), sqlError);
+    if (screenColor.isAssigned())
+        jsonMessage-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), screenColor.getValue());
+    if (alternateColors)
+        jsonMessage-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), alternateColors);
+    if (printColor.isAssigned())
+        jsonMessage-&gt;setString(ASCIILiteral(&quot;printColor&quot;), printColor.getValue());
+    CallbackBase::sendSuccess(WTFMove(jsonMessage));
+}
+
+void DatabaseBackendDispatcher::executeSQLAsyncOptionalReturnValues(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters)
+{
+    int in_databaseId = m_backendDispatcher-&gt;getInteger(parameters.get(), ASCIILiteral(&quot;databaseId&quot;), nullptr);
+    String in_query = m_backendDispatcher-&gt;getString(parameters.get(), ASCIILiteral(&quot;query&quot;), nullptr);
+    if (m_backendDispatcher-&gt;hasProtocolErrors()) {
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::InvalidParams, String::format(&quot;Some arguments of method '%s' can't be processed&quot;, &quot;Database.executeSQLAsyncOptionalReturnValues&quot;));
+        return;
+    }
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;executeSQLAsyncOptionalReturnValues(requestId, in_databaseId, in_query);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    Ref&lt;DatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback&gt; callback = adoptRef(*new DatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback(m_backendDispatcher.copyRef(), requestId));
+    m_agent-&gt;executeSQLAsyncOptionalReturnValues(error, in_databaseId, in_query, callback.copyRef());
+
+    if (error.length()) {
+        callback-&gt;disable();
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, error);
+        return;
+    }
+}
+
+void DatabaseBackendDispatcher::executeSQLSync(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters)
+{
+    int in_databaseId = m_backendDispatcher-&gt;getInteger(parameters.get(), ASCIILiteral(&quot;databaseId&quot;), nullptr);
+    String in_query = m_backendDispatcher-&gt;getString(parameters.get(), ASCIILiteral(&quot;query&quot;), nullptr);
+    if (m_backendDispatcher-&gt;hasProtocolErrors()) {
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::InvalidParams, String::format(&quot;Some arguments of method '%s' can't be processed&quot;, &quot;Database.executeSQLSync&quot;));
+        return;
+    }
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;executeSQLSync(requestId, in_databaseId, in_query);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; out_columnNames;
+    String out_notes;
+    double out_timestamp;
+    Inspector::InspectorObject out_values;
+    Inspector::InspectorValue out_payload;
+    Inspector::Protocol::Database::DatabaseId out_databaseId;
+    RefPtr&lt;Inspector::Protocol::Database::Error&gt; out_sqlError;
+    RefPtr&lt;Inspector::Protocol::Database::ColorList&gt; out_alternateColors;
+    Inspector::Protocol::Database::PrimaryColors out_screenColor;
+    DatabaseBackendDispatcherHandler::PrintColor out_printColor;
+    m_agent-&gt;executeSQLSync(error, in_databaseId, in_query, out_columnNames, &amp;out_notes, &amp;out_timestamp, out_values, &amp;out_payload, &amp;out_databaseId, out_sqlError, out_alternateColors, &amp;out_screenColor, &amp;out_printColor);
+
+    if (!error.length()) {
+        result-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), out_columnNames);
+        result-&gt;setString(ASCIILiteral(&quot;notes&quot;), out_notes);
+        result-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), out_timestamp);
+        result-&gt;setObject(ASCIILiteral(&quot;values&quot;), out_values);
+        result-&gt;setValue(ASCIILiteral(&quot;payload&quot;), out_payload);
+        result-&gt;setInteger(ASCIILiteral(&quot;databaseId&quot;), out_databaseId);
+        result-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), out_sqlError);
+        result-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), out_alternateColors);
+        result-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), Inspector::Protocol::TestHelpers::getEnumConstantValue(out_screenColor));
+        result-&gt;setString(ASCIILiteral(&quot;printColor&quot;), Inspector::Protocol::TestHelpers::getEnumConstantValue(out_printColor));
+    }
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+
+DatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback::ExecuteSQLAsyncCallback(Ref&lt;BackendDispatcher&gt;&amp;&amp; backendDispatcher, int id) : BackendDispatcher::CallbackBase(WTFMove(backendDispatcher), id) { }
+
+void DatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback::sendSuccess(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp;&amp; columnNames, const String&amp; notes, double timestamp, Inspector::InspectorObject values, Inspector::InspectorValue payload, int databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp;&amp; sqlError, const String&amp; screenColor, RefPtr&lt;Inspector::Protocol::Database::ColorList&gt;&amp;&amp; alternateColors, const String&amp; printColor)
+{
+    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
+    jsonMessage-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), columnNames);
+    jsonMessage-&gt;setString(ASCIILiteral(&quot;notes&quot;), notes);
+    jsonMessage-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), timestamp);
+    jsonMessage-&gt;setObject(ASCIILiteral(&quot;values&quot;), values);
+    jsonMessage-&gt;setValue(ASCIILiteral(&quot;payload&quot;), payload);
+    jsonMessage-&gt;setInteger(ASCIILiteral(&quot;databaseId&quot;), databaseId);
+    jsonMessage-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), sqlError);
+    jsonMessage-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), Inspector::Protocol::TestHelpers::getEnumConstantValue(screenColor));
+    jsonMessage-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), alternateColors);
+    jsonMessage-&gt;setString(ASCIILiteral(&quot;printColor&quot;), Inspector::Protocol::TestHelpers::getEnumConstantValue(printColor));
+    CallbackBase::sendSuccess(WTFMove(jsonMessage));
+}
+
+void DatabaseBackendDispatcher::executeSQLAsync(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters)
+{
+    int in_databaseId = m_backendDispatcher-&gt;getInteger(parameters.get(), ASCIILiteral(&quot;databaseId&quot;), nullptr);
+    String in_query = m_backendDispatcher-&gt;getString(parameters.get(), ASCIILiteral(&quot;query&quot;), nullptr);
+    if (m_backendDispatcher-&gt;hasProtocolErrors()) {
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::InvalidParams, String::format(&quot;Some arguments of method '%s' can't be processed&quot;, &quot;Database.executeSQLAsync&quot;));
+        return;
+    }
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;executeSQLAsync(requestId, in_databaseId, in_query);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    Ref&lt;DatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback&gt; callback = adoptRef(*new DatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback(m_backendDispatcher.copyRef(), requestId));
+    m_agent-&gt;executeSQLAsync(error, in_databaseId, in_query, callback.copyRef());
+
+    if (error.length()) {
+        callback-&gt;disable();
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, error);
+        return;
+    }
+}
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+// Forward declarations.
+namespace Database {
+class Error;
+enum class PrimaryColors;
+} // Database
+// End of forward declarations.
+
+
+// Typedefs.
+namespace Database {
+/* Unique identifier of Database object. */
+typedef int DatabaseId;
+typedef Inspector::Protocol::Array&lt;Inspector::Protocol::Database::PrimaryColors&gt; ColorList;
+} // Database
+// End of typedefs.
+
+namespace TestHelpers {
+
+String getEnumConstantValue(int code);
+
+template&lt;typename T&gt; String getEnumConstantValue(T enumValue)
+{
+    return getEnumConstantValue(static_cast&lt;int&gt;(enumValue));
+}
+
+} // namespace TestHelpers
+
+namespace Database {
+/*  */
+enum class PrimaryColors {
+    Red = 0,
+    Green = 1,
+    Blue = 2,
+}; // enum class PrimaryColors
+/* Database error. */
+class Error : public Inspector::InspectorObjectBase {
+public:
+    enum {
+        NoFieldsSet = 0,
+        MessageSet = 1 &lt;&lt; 0,
+        CodeSet = 1 &lt;&lt; 1,
+        AllFieldsSet = (MessageSet | CodeSet)
+    };
+
+    template&lt;int STATE&gt;
+    class Builder {
+    private:
+        RefPtr&lt;InspectorObject&gt; m_result;
+
+        template&lt;int STEP&gt; Builder&lt;STATE | STEP&gt;&amp; castState()
+        {
+            return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
+        }
+
+        Builder(Ref&lt;/*Error*/InspectorObject&gt;&amp;&amp; object)
+            : m_result(WTFMove(object))
+        {
+            COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
+        }
+        friend class Error;
+    public:
+
+        Builder&lt;STATE | MessageSet&gt;&amp; setMessage(const String&amp; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; MessageSet), property_message_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;message&quot;), value);
+            return castState&lt;MessageSet&gt;();
+        }
+
+        Builder&lt;STATE | CodeSet&gt;&amp; setCode(int value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; CodeSet), property_code_already_set);
+            m_result-&gt;setInteger(ASCIILiteral(&quot;code&quot;), value);
+            return castState&lt;CodeSet&gt;();
+        }
+
+        Ref&lt;Error&gt; release()
+        {
+            COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
+            COMPILE_ASSERT(sizeof(Error) == sizeof(InspectorObject), cannot_cast);
+
+            Ref&lt;InspectorObject&gt; result = m_result.releaseNonNull();
+            return WTFMove(*reinterpret_cast&lt;Ref&lt;Error&gt;*&gt;(&amp;result));
+        }
+    };
+
+    /*
+     * Synthetic constructor:
+     * Ref&lt;Error&gt; result = Error::create()
+     *     .setMessage(...)
+     *     .setCode(...)
+     *     .release();
+     */
+    static Builder&lt;NoFieldsSet&gt; create()
+    {
+        return Builder&lt;NoFieldsSet&gt;(InspectorObject::create());
+    }
+};
+
+} // Database
+
+
+
+namespace TestHelpers {
+
+template&lt;typename ProtocolEnumType&gt;
+std::optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
+
+// Enums in the 'Database' Domain
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Database::PrimaryColors&gt; parseEnumValueFromString&lt;Inspector::Protocol::Database::PrimaryColors&gt;(const String&amp;);
+
+} // namespace TestHelpers
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+namespace TestHelpers {
+
+static const char* const enum_constant_values[] = {
+    &quot;red&quot;,
+    &quot;green&quot;,
+    &quot;blue&quot;,
+    &quot;cyan&quot;,
+    &quot;magenta&quot;,
+    &quot;yellow&quot;,
+    &quot;black&quot;,
+};
+
+String getEnumConstantValue(int code) {
+    return enum_constant_values[code];
+}
+
+// Enums in the 'Database' Domain
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Database::PrimaryColors&gt; parseEnumValueFromString&lt;Inspector::Protocol::Database::PrimaryColors&gt;(const String&amp; protocolString)
+{
+    static const size_t constantValues[] = {
+        (size_t)Inspector::Protocol::Database::PrimaryColors::Red,
+        (size_t)Inspector::Protocol::Database::PrimaryColors::Green,
+        (size_t)Inspector::Protocol::Database::PrimaryColors::Blue,
+    };
+    for (size_t i = 0; i &lt; 3; ++i)
+        if (protocolString == enum_constant_values[constantValues[i]])
+            return (Inspector::Protocol::Database::PrimaryColors)constantValues[i];
+
+    return std::nullopt;
+}
+
+
+} // namespace TestHelpers
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+@protocol TestProtocolDatabaseDomainHandler;
+
+namespace Inspector {
+
+
+class ObjCInspectorDatabaseBackendDispatcher final : public AlternateDatabaseBackendDispatcher {
+public:
+    ObjCInspectorDatabaseBackendDispatcher(id&lt;TestProtocolDatabaseDomainHandler&gt; handler) { m_delegate = handler; }
+    virtual void executeSQLSyncOptionalReturnValues(long requestId, int in_databaseId, const String&amp; in_query) override;
+    virtual void executeSQLAsyncOptionalReturnValues(long requestId, int in_databaseId, const String&amp; in_query) override;
+    virtual void executeSQLSync(long requestId, int in_databaseId, const String&amp; in_query) override;
+    virtual void executeSQLAsync(long requestId, int in_databaseId, const String&amp; in_query) override;
+private:
+    RetainPtr&lt;id&lt;TestProtocolDatabaseDomainHandler&gt;&gt; m_delegate;
+};
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+    id&lt;TestProtocolDatabaseDomainHandler&gt; _databaseHandler;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [_databaseHandler release];
+    [super dealloc];
+}
+
+- (void)setDatabaseHandler:(id&lt;TestProtocolDatabaseDomainHandler&gt;)handler
+{
+    if (handler == _databaseHandler)
+        return;
+
+    [_databaseHandler release];
+    _databaseHandler = [handler retain];
+
+    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorDatabaseBackendDispatcher&gt;(handler);
+    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;DatabaseBackendDispatcher, AlternateDatabaseBackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Database&quot;), *_controller, WTFMove(alternateDispatcher));
+    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
+}
+
+- (id&lt;TestProtocolDatabaseDomainHandler&gt;)databaseHandler
+{
+    return _databaseHandler;
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@property (nonatomic, retain, setter=setDatabaseHandler:) id&lt;TestProtocolDatabaseDomainHandler&gt; databaseHandler;
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+void ObjCInspectorDatabaseBackendDispatcher::executeSQLSyncOptionalReturnValues(long requestId, int in_databaseId, const String&amp; in_query)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^(NSArray/*&lt;NSString&gt;*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, TestProtocolDatabaseError **sqlError, TestProtocolDatabasePrimaryColors *screenColor, NSArray/*&lt;NSString&gt;*/ **alternateColors, TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColor *printColor) {
+        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(columnNames, @&quot;columnNames&quot;);
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(notes, @&quot;notes&quot;);
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(values, @&quot;values&quot;);
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(payload, @&quot;payload&quot;);
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(sqlError, @&quot;sqlError&quot;);
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(alternateColors, @&quot;alternateColors&quot;);
+        if (columnNames)
+            resultObject-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), inspectorStringArray(*columnNames));
+        if (notes)
+            resultObject-&gt;setString(ASCIILiteral(&quot;notes&quot;), *notes);
+        if (timestamp)
+            resultObject-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), *timestamp);
+        if (values)
+            resultObject-&gt;setObject(ASCIILiteral(&quot;values&quot;), [*values toInspectorObject]);
+        if (payload)
+            resultObject-&gt;setValue(ASCIILiteral(&quot;payload&quot;), [*payload toInspectorObject]);
+        if (databaseId)
+            resultObject-&gt;setInteger(ASCIILiteral(&quot;databaseId&quot;), *databaseId);
+        if (sqlError)
+            resultObject-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), [*sqlError toInspectorObject]);
+        if (screenColor)
+            resultObject-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), toProtocolString(*screenColor));
+        if (alternateColors)
+            resultObject-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), inspectorStringArray(*alternateColors));
+        if (printColor)
+            resultObject-&gt;setString(ASCIILiteral(&quot;printColor&quot;), toProtocolString(*printColor));
+        backendDispatcher()-&gt;sendResponse(requestId, WTFMove(resultObject));
+    };
+
+    int o_in_databaseId = in_databaseId;
+    NSString *o_in_query = in_query;
+
+    [m_delegate executeSQLSyncOptionalReturnValuesWithErrorCallback:errorCallback successCallback:successCallback databaseId:o_in_databaseId query:o_in_query];
+}
+
+void ObjCInspectorDatabaseBackendDispatcher::executeSQLAsyncOptionalReturnValues(long requestId, int in_databaseId, const String&amp; in_query)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^(NSArray/*&lt;NSString&gt;*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, TestProtocolDatabaseError **sqlError, TestProtocolDatabasePrimaryColors *screenColor, NSArray/*&lt;NSString&gt;*/ **alternateColors, TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColor *printColor) {
+        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(columnNames, @&quot;columnNames&quot;);
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(notes, @&quot;notes&quot;);
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(values, @&quot;values&quot;);
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(payload, @&quot;payload&quot;);
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(sqlError, @&quot;sqlError&quot;);
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(alternateColors, @&quot;alternateColors&quot;);
+        if (columnNames)
+            resultObject-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), inspectorStringArray(*columnNames));
+        if (notes)
+            resultObject-&gt;setString(ASCIILiteral(&quot;notes&quot;), *notes);
+        if (timestamp)
+            resultObject-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), *timestamp);
+        if (values)
+            resultObject-&gt;setObject(ASCIILiteral(&quot;values&quot;), [*values toInspectorObject]);
+        if (payload)
+            resultObject-&gt;setValue(ASCIILiteral(&quot;payload&quot;), [*payload toInspectorObject]);
+        if (databaseId)
+            resultObject-&gt;setInteger(ASCIILiteral(&quot;databaseId&quot;), *databaseId);
+        if (sqlError)
+            resultObject-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), [*sqlError toInspectorObject]);
+        if (screenColor)
+            resultObject-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), toProtocolString(*screenColor));
+        if (alternateColors)
+            resultObject-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), inspectorStringArray(*alternateColors));
+        if (printColor)
+            resultObject-&gt;setString(ASCIILiteral(&quot;printColor&quot;), toProtocolString(*printColor));
+        backendDispatcher()-&gt;sendResponse(requestId, WTFMove(resultObject));
+    };
+
+    int o_in_databaseId = in_databaseId;
+    NSString *o_in_query = in_query;
+
+    [m_delegate executeSQLAsyncOptionalReturnValuesWithErrorCallback:errorCallback successCallback:successCallback databaseId:o_in_databaseId query:o_in_query];
+}
+
+void ObjCInspectorDatabaseBackendDispatcher::executeSQLSync(long requestId, int in_databaseId, const String&amp; in_query)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^(NSArray/*&lt;NSString&gt;*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, TestProtocolDatabaseError *sqlError, NSArray/*&lt;NSString&gt;*/ *alternateColors, TestProtocolDatabasePrimaryColors screenColor, TestProtocolDatabaseExecuteSQLSyncPrintColor printColor) {
+        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(columnNames, @&quot;columnNames&quot;);
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(notes, @&quot;notes&quot;);
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(values, @&quot;values&quot;);
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(payload, @&quot;payload&quot;);
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(sqlError, @&quot;sqlError&quot;);
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(alternateColors, @&quot;alternateColors&quot;);
+        resultObject-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), inspectorStringArray(columnNames));
+        resultObject-&gt;setString(ASCIILiteral(&quot;notes&quot;), notes);
+        resultObject-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), timestamp);
+        resultObject-&gt;setObject(ASCIILiteral(&quot;values&quot;), [values toInspectorObject]);
+        resultObject-&gt;setValue(ASCIILiteral(&quot;payload&quot;), [payload toInspectorObject]);
+        resultObject-&gt;setInteger(ASCIILiteral(&quot;databaseId&quot;), databaseId);
+        resultObject-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), [sqlError toInspectorObject]);
+        resultObject-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), inspectorStringArray(alternateColors));
+        resultObject-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), toProtocolString(screenColor));
+        resultObject-&gt;setString(ASCIILiteral(&quot;printColor&quot;), toProtocolString(printColor));
+        backendDispatcher()-&gt;sendResponse(requestId, WTFMove(resultObject));
+    };
+
+    int o_in_databaseId = in_databaseId;
+    NSString *o_in_query = in_query;
+
+    [m_delegate executeSQLSyncWithErrorCallback:errorCallback successCallback:successCallback databaseId:o_in_databaseId query:o_in_query];
+}
+
+void ObjCInspectorDatabaseBackendDispatcher::executeSQLAsync(long requestId, int in_databaseId, const String&amp; in_query)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^(NSArray/*&lt;NSString&gt;*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, TestProtocolDatabaseError *sqlError, TestProtocolDatabasePrimaryColors screenColor, NSArray/*&lt;NSString&gt;*/ *alternateColors, TestProtocolDatabaseExecuteSQLAsyncPrintColor printColor) {
+        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(columnNames, @&quot;columnNames&quot;);
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(notes, @&quot;notes&quot;);
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(values, @&quot;values&quot;);
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(payload, @&quot;payload&quot;);
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(sqlError, @&quot;sqlError&quot;);
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(alternateColors, @&quot;alternateColors&quot;);
+        resultObject-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), inspectorStringArray(columnNames));
+        resultObject-&gt;setString(ASCIILiteral(&quot;notes&quot;), notes);
+        resultObject-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), timestamp);
+        resultObject-&gt;setObject(ASCIILiteral(&quot;values&quot;), [values toInspectorObject]);
+        resultObject-&gt;setValue(ASCIILiteral(&quot;payload&quot;), [payload toInspectorObject]);
+        resultObject-&gt;setInteger(ASCIILiteral(&quot;databaseId&quot;), databaseId);
+        resultObject-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), [sqlError toInspectorObject]);
+        resultObject-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), toProtocolString(screenColor));
+        resultObject-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), inspectorStringArray(alternateColors));
+        resultObject-&gt;setString(ASCIILiteral(&quot;printColor&quot;), toProtocolString(printColor));
+        backendDispatcher()-&gt;sendResponse(requestId, WTFMove(resultObject));
+    };
+
+    int o_in_databaseId = in_databaseId;
+    NSString *o_in_query = in_query;
+
+    [m_delegate executeSQLAsyncWithErrorCallback:errorCallback successCallback:successCallback databaseId:o_in_databaseId query:o_in_query];
+}
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+@class TestProtocolDatabaseError;
+
+
+typedef NS_ENUM(NSInteger, TestProtocolDatabasePrimaryColors) {
+    TestProtocolDatabasePrimaryColorsRed,
+    TestProtocolDatabasePrimaryColorsGreen,
+    TestProtocolDatabasePrimaryColorsBlue,
+};
+
+typedef NS_ENUM(NSInteger, TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColor) {
+    TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColorCyan,
+    TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColorMagenta,
+    TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColorYellow,
+    TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColorBlack,
+};
+
+typedef NS_ENUM(NSInteger, TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColor) {
+    TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColorCyan,
+    TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColorMagenta,
+    TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColorYellow,
+    TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColorBlack,
+};
+
+typedef NS_ENUM(NSInteger, TestProtocolDatabaseExecuteSQLSyncPrintColor) {
+    TestProtocolDatabaseExecuteSQLSyncPrintColorCyan,
+    TestProtocolDatabaseExecuteSQLSyncPrintColorMagenta,
+    TestProtocolDatabaseExecuteSQLSyncPrintColorYellow,
+    TestProtocolDatabaseExecuteSQLSyncPrintColorBlack,
+};
+
+typedef NS_ENUM(NSInteger, TestProtocolDatabaseExecuteSQLAsyncPrintColor) {
+    TestProtocolDatabaseExecuteSQLAsyncPrintColorCyan,
+    TestProtocolDatabaseExecuteSQLAsyncPrintColorMagenta,
+    TestProtocolDatabaseExecuteSQLAsyncPrintColorYellow,
+    TestProtocolDatabaseExecuteSQLAsyncPrintColorBlack,
+};
+
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolDatabaseError : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+- (instancetype)initWithMessage:(NSString *)message code:(int)code;
+/* required */ @property (nonatomic, copy) NSString *message;
+/* required */ @property (nonatomic, assign) int code;
+@end
+
+@protocol TestProtocolDatabaseDomainHandler &lt;NSObject&gt;
+@required
+- (void)executeSQLSyncOptionalReturnValuesWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*&lt;NSString&gt;*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, TestProtocolDatabaseError **sqlError, TestProtocolDatabasePrimaryColors *screenColor, NSArray/*&lt;NSString&gt;*/ **alternateColors, TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColor *printColor))successCallback databaseId:(int)databaseId query:(NSString *)query;
+- (void)executeSQLAsyncOptionalReturnValuesWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*&lt;NSString&gt;*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, TestProtocolDatabaseError **sqlError, TestProtocolDatabasePrimaryColors *screenColor, NSArray/*&lt;NSString&gt;*/ **alternateColors, TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColor *printColor))successCallback databaseId:(int)databaseId query:(NSString *)query;
+- (void)executeSQLSyncWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*&lt;NSString&gt;*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, TestProtocolDatabaseError *sqlError, NSArray/*&lt;NSString&gt;*/ *alternateColors, TestProtocolDatabasePrimaryColors screenColor, TestProtocolDatabaseExecuteSQLSyncPrintColor printColor))successCallback databaseId:(int)databaseId query:(NSString *)query;
+- (void)executeSQLAsyncWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*&lt;NSString&gt;*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, TestProtocolDatabaseError *sqlError, TestProtocolDatabasePrimaryColors screenColor, NSArray/*&lt;NSString&gt;*/ *alternateColors, TestProtocolDatabaseExecuteSQLAsyncPrintColor printColor))successCallback databaseId:(int)databaseId query:(NSString *)query;
+@end
+
+
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+
+inline String toProtocolString(TestProtocolDatabasePrimaryColors value)
+{
+    switch(value) {
+    case TestProtocolDatabasePrimaryColorsRed:
+        return ASCIILiteral(&quot;red&quot;);
+    case TestProtocolDatabasePrimaryColorsGreen:
+        return ASCIILiteral(&quot;green&quot;);
+    case TestProtocolDatabasePrimaryColorsBlue:
+        return ASCIILiteral(&quot;blue&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolDatabasePrimaryColors fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;red&quot;)
+        return TestProtocolDatabasePrimaryColorsRed;
+    if (value == &quot;green&quot;)
+        return TestProtocolDatabasePrimaryColorsGreen;
+    if (value == &quot;blue&quot;)
+        return TestProtocolDatabasePrimaryColorsBlue;
+    ASSERT_NOT_REACHED();
+    return TestProtocolDatabasePrimaryColorsRed;
+}
+
+inline String toProtocolString(TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColor value)
+{
+    switch(value) {
+    case TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColorCyan:
+        return ASCIILiteral(&quot;cyan&quot;);
+    case TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColorMagenta:
+        return ASCIILiteral(&quot;magenta&quot;);
+    case TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColorYellow:
+        return ASCIILiteral(&quot;yellow&quot;);
+    case TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColorBlack:
+        return ASCIILiteral(&quot;black&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColor fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;cyan&quot;)
+        return TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColorCyan;
+    if (value == &quot;magenta&quot;)
+        return TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColorMagenta;
+    if (value == &quot;yellow&quot;)
+        return TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColorYellow;
+    if (value == &quot;black&quot;)
+        return TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColorBlack;
+    ASSERT_NOT_REACHED();
+    return TestProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColorCyan;
+}
+
+inline String toProtocolString(TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColor value)
+{
+    switch(value) {
+    case TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColorCyan:
+        return ASCIILiteral(&quot;cyan&quot;);
+    case TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColorMagenta:
+        return ASCIILiteral(&quot;magenta&quot;);
+    case TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColorYellow:
+        return ASCIILiteral(&quot;yellow&quot;);
+    case TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColorBlack:
+        return ASCIILiteral(&quot;black&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColor fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;cyan&quot;)
+        return TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColorCyan;
+    if (value == &quot;magenta&quot;)
+        return TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColorMagenta;
+    if (value == &quot;yellow&quot;)
+        return TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColorYellow;
+    if (value == &quot;black&quot;)
+        return TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColorBlack;
+    ASSERT_NOT_REACHED();
+    return TestProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColorCyan;
+}
+
+inline String toProtocolString(TestProtocolDatabaseExecuteSQLSyncPrintColor value)
+{
+    switch(value) {
+    case TestProtocolDatabaseExecuteSQLSyncPrintColorCyan:
+        return ASCIILiteral(&quot;cyan&quot;);
+    case TestProtocolDatabaseExecuteSQLSyncPrintColorMagenta:
+        return ASCIILiteral(&quot;magenta&quot;);
+    case TestProtocolDatabaseExecuteSQLSyncPrintColorYellow:
+        return ASCIILiteral(&quot;yellow&quot;);
+    case TestProtocolDatabaseExecuteSQLSyncPrintColorBlack:
+        return ASCIILiteral(&quot;black&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolDatabaseExecuteSQLSyncPrintColor fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;cyan&quot;)
+        return TestProtocolDatabaseExecuteSQLSyncPrintColorCyan;
+    if (value == &quot;magenta&quot;)
+        return TestProtocolDatabaseExecuteSQLSyncPrintColorMagenta;
+    if (value == &quot;yellow&quot;)
+        return TestProtocolDatabaseExecuteSQLSyncPrintColorYellow;
+    if (value == &quot;black&quot;)
+        return TestProtocolDatabaseExecuteSQLSyncPrintColorBlack;
+    ASSERT_NOT_REACHED();
+    return TestProtocolDatabaseExecuteSQLSyncPrintColorCyan;
+}
+
+inline String toProtocolString(TestProtocolDatabaseExecuteSQLAsyncPrintColor value)
+{
+    switch(value) {
+    case TestProtocolDatabaseExecuteSQLAsyncPrintColorCyan:
+        return ASCIILiteral(&quot;cyan&quot;);
+    case TestProtocolDatabaseExecuteSQLAsyncPrintColorMagenta:
+        return ASCIILiteral(&quot;magenta&quot;);
+    case TestProtocolDatabaseExecuteSQLAsyncPrintColorYellow:
+        return ASCIILiteral(&quot;yellow&quot;);
+    case TestProtocolDatabaseExecuteSQLAsyncPrintColorBlack:
+        return ASCIILiteral(&quot;black&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolDatabaseExecuteSQLAsyncPrintColor fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;cyan&quot;)
+        return TestProtocolDatabaseExecuteSQLAsyncPrintColorCyan;
+    if (value == &quot;magenta&quot;)
+        return TestProtocolDatabaseExecuteSQLAsyncPrintColorMagenta;
+    if (value == &quot;yellow&quot;)
+        return TestProtocolDatabaseExecuteSQLAsyncPrintColorYellow;
+    if (value == &quot;black&quot;)
+        return TestProtocolDatabaseExecuteSQLAsyncPrintColorBlack;
+    ASSERT_NOT_REACHED();
+    return TestProtocolDatabaseExecuteSQLAsyncPrintColorCyan;
+}
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+@interface TestProtocolTypeConversions (DatabaseDomain)
+
++ (void)_parseDatabaseId:(NSNumber **)outValue fromPayload:(id)payload;
++ (void)_parsePrimaryColors:(NSNumber **)outValue fromPayload:(id)payload;
++ (void)_parseColorList:(NSArray/*&lt;NSString&gt;*/ **)outValue fromPayload:(id)payload;
++ (void)_parseError:(TestProtocolDatabaseError **)outValue fromPayload:(id)payload;
+
+@end
+
+@implementation TestProtocolTypeConversions (DatabaseDomain)
+
++ (void)_parseDatabaseId:(NSNumber **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSNumber class]);
+    *outValue = (NSNumber *)payload;
+}
+
++ (void)_parsePrimaryColors:(NSNumber **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSString class]);
+    *outValue = @(Inspector::fromProtocolString&lt;TestProtocolDatabasePrimaryColors&gt;(payload));
+}
+
++ (void)_parseColorList:(NSArray/*&lt;NSString&gt;*/ **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSArray/*&lt;NSString&gt;*/ class]);
+    *outValue = (NSArray/*&lt;NSString&gt;*/ *)payload;
+}
+
++ (void)_parseError:(TestProtocolDatabaseError **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolDatabaseError alloc] initWithPayload:payload];
+}
+
+@end
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+@implementation TestProtocolDatabaseError
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;message&quot;], @&quot;message&quot;);
+    self.message = payload[@&quot;message&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;code&quot;], @&quot;code&quot;);
+    self.code = [payload[@&quot;code&quot;] integerValue];
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+- (instancetype)initWithMessage:(NSString *)message code:(int)code
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(message, @&quot;message&quot;);
+
+    self.message = message;
+    self.code = code;
+
+    return self;
+}
+
+- (void)setMessage:(NSString *)message
+{
+    [super setString:message forKey:@&quot;message&quot;];
+}
+
+- (NSString *)message
+{
+    return [super stringForKey:@&quot;message&quot;];
+}
+
+- (void)setCode:(int)code
+{
+    [super setInteger:code forKey:@&quot;code&quot;];
+}
+
+- (int)code
+{
+    return [super integerForKey:@&quot;code&quot;];
+}
+
+@end
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedcommandswithoptionalcallreturnparametersjsonresultfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithoptionalcallreturnparametersjsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,1609 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+// Database.
+InspectorBackend.registerEnum(&quot;Database.PrimaryColors&quot;, {Red: &quot;red&quot;, Green: &quot;green&quot;, Blue: &quot;blue&quot;});
+InspectorBackend.registerCommand(&quot;Database.executeAllOptionalParameters&quot;, [{&quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true}, {&quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true}, {&quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true}, {&quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true}, {&quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true}, {&quot;name&quot;: &quot;databaseId&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true}, {&quot;name&quot;: &quot;sqlError&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true}, {&quot;name&quot;: &quot;screenColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true}, {&quot;name&quot;: &quot;alternateCol
 ors&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true}, {&quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true}], [&quot;columnNames&quot;, &quot;notes&quot;, &quot;timestamp&quot;, &quot;values&quot;, &quot;payload&quot;, &quot;databaseId&quot;, &quot;sqlError&quot;, &quot;screenColor&quot;, &quot;alternateColors&quot;, &quot;printColor&quot;]);
+InspectorBackend.registerCommand(&quot;Database.executeNoOptionalParameters&quot;, [{&quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: false}, {&quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: false}, {&quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: false}, {&quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: false}, {&quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: false}, {&quot;name&quot;: &quot;databaseId&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: false}, {&quot;name&quot;: &quot;sqlError&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: false}, {&quot;name&quot;: &quot;screenColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: false}, {&quot;name&quot;: &quot;alter
 nateColors&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: false}, {&quot;name&quot;: &quot;printColor&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: false}], [&quot;columnNames&quot;, &quot;notes&quot;, &quot;timestamp&quot;, &quot;values&quot;, &quot;payload&quot;, &quot;databaseId&quot;, &quot;sqlError&quot;, &quot;screenColor&quot;, &quot;alternateColors&quot;, &quot;printColor&quot;]);
+InspectorBackend.activateDomain(&quot;Database&quot;);
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+class AlternateDatabaseBackendDispatcher : public AlternateBackendDispatcher {
+public:
+    virtual ~AlternateDatabaseBackendDispatcher() { }
+    virtual void executeAllOptionalParameters(long callId, const Inspector::InspectorArray* in_columnNames, const String* const in_notes, const double* const in_timestamp, const Inspector::InspectorObject* in_values, const Inspector::InspectorValue* const in_payload, const int* const in_databaseId, const Inspector::InspectorObject* in_sqlError, const String* const in_screenColor, const Inspector::InspectorArray* in_alternateColors, const String* const in_printColor) = 0;
+    virtual void executeNoOptionalParameters(long callId, const Inspector::InspectorArray&amp; in_columnNames, const String&amp; in_notes, double in_timestamp, const Inspector::InspectorObject&amp; in_values, Inspector::InspectorValue in_payload, int in_databaseId, const Inspector::InspectorObject&amp; in_sqlError, const String&amp; in_screenColor, const Inspector::InspectorArray&amp; in_alternateColors, const String&amp; in_printColor) = 0;
+};
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+class AlternateDatabaseBackendDispatcher;
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+class DatabaseBackendDispatcherHandler {
+public:
+    // Named after parameter 'printColor' while generating command/event executeAllOptionalParameters.
+    enum class PrintColor {
+        Cyan = 3,
+        Magenta = 4,
+        Yellow = 5,
+        Black = 6,
+    }; // enum class PrintColor
+    virtual void executeAllOptionalParameters(ErrorString&amp;, const Inspector::InspectorArray* opt_in_columnNames, const String* const opt_in_notes, const double* const opt_in_timestamp, const Inspector::InspectorObject* opt_in_values, const Inspector::InspectorValue* const opt_in_payload, const int* const opt_in_databaseId, const Inspector::InspectorObject* opt_in_sqlError, const String* const opt_in_screenColor, const Inspector::InspectorArray* opt_in_alternateColors, const String* const opt_in_printColor, RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp; opt_out_columnNames, Inspector::Protocol::OptOutput&lt;String&gt;* opt_out_notes, Inspector::Protocol::OptOutput&lt;double&gt;* opt_out_timestamp, Inspector::Protocol::OptOutput&lt;Inspector::InspectorObject&gt;* opt_out_values, Inspector::Protocol::OptOutput&lt;Inspector::InspectorValue&gt;* opt_out_payload, Inspector::Protocol::OptOutput&lt;int&gt;* opt_out_databaseId, RefPtr&lt;Inspector::Protocol::Database
 ::Error&gt;&amp; opt_out_sqlError, Inspector::Protocol::Database::PrimaryColors* opt_out_screenColor, RefPtr&lt;Inspector::Protocol::Database::ColorList&gt;&amp; opt_out_alternateColors, DatabaseBackendDispatcherHandler::PrintColor* opt_out_printColor) = 0;
+    virtual void executeNoOptionalParameters(ErrorString&amp;, const Inspector::InspectorArray&amp; in_columnNames, const String&amp; in_notes, double in_timestamp, const Inspector::InspectorObject&amp; in_values, Inspector::InspectorValue in_payload, int in_databaseId, const Inspector::InspectorObject&amp; in_sqlError, const String&amp; in_screenColor, const Inspector::InspectorArray&amp; in_alternateColors, const String&amp; in_printColor, RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt;&amp; out_columnNames, String* out_notes, double* out_timestamp, Inspector::InspectorObject* out_values, Inspector::InspectorValue* out_payload, int* out_databaseId, RefPtr&lt;Inspector::Protocol::Database::Error&gt;&amp; out_sqlError, Inspector::Protocol::Database::PrimaryColors* out_screenColor, RefPtr&lt;Inspector::Protocol::Database::ColorList&gt;&amp; out_alternateColors, DatabaseBackendDispatcherHandler::PrintColor* out_printColor) = 0;
+protected:
+    virtual ~DatabaseBackendDispatcherHandler();
+};
+
+class DatabaseBackendDispatcher final : public SupplementalBackendDispatcher {
+public:
+    static Ref&lt;DatabaseBackendDispatcher&gt; create(BackendDispatcher&amp;, DatabaseBackendDispatcherHandler*);
+    void dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message) override;
+private:
+    void executeAllOptionalParameters(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+    void executeNoOptionalParameters(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+public:
+    void setAlternateDispatcher(AlternateDatabaseBackendDispatcher* alternateDispatcher) { m_alternateDispatcher = alternateDispatcher; }
+private:
+    AlternateDatabaseBackendDispatcher* m_alternateDispatcher { nullptr };
+#endif
+private:
+    DatabaseBackendDispatcher(BackendDispatcher&amp;, DatabaseBackendDispatcherHandler*);
+    DatabaseBackendDispatcherHandler* m_agent { nullptr };
+};
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+DatabaseBackendDispatcherHandler::~DatabaseBackendDispatcherHandler() { }
+
+Ref&lt;DatabaseBackendDispatcher&gt; DatabaseBackendDispatcher::create(BackendDispatcher&amp; backendDispatcher, DatabaseBackendDispatcherHandler* agent)
+{
+    return adoptRef(*new DatabaseBackendDispatcher(backendDispatcher, agent));
+}
+
+DatabaseBackendDispatcher::DatabaseBackendDispatcher(BackendDispatcher&amp; backendDispatcher, DatabaseBackendDispatcherHandler* agent)
+    : SupplementalBackendDispatcher(backendDispatcher)
+    , m_agent(agent)
+{
+    m_backendDispatcher-&gt;registerDispatcherForDomain(ASCIILiteral(&quot;Database&quot;), this);
+}
+
+void DatabaseBackendDispatcher::dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
+{
+    Ref&lt;DatabaseBackendDispatcher&gt; protect(*this);
+
+    RefPtr&lt;InspectorObject&gt; parameters;
+    message-&gt;getObject(ASCIILiteral(&quot;params&quot;), parameters);
+
+    if (method == &quot;executeAllOptionalParameters&quot;)
+        executeAllOptionalParameters(requestId, WTFMove(parameters));
+    else if (method == &quot;executeNoOptionalParameters&quot;)
+        executeNoOptionalParameters(requestId, WTFMove(parameters));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::MethodNotFound, makeString('\'', &quot;Database&quot;, '.', method, &quot;' was not found&quot;));
+}
+
+void DatabaseBackendDispatcher::executeAllOptionalParameters(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters)
+{
+    bool opt_in_columnNames_valueFound = false;
+    RefPtr&lt;Inspector::InspectorArray&gt; opt_in_columnNames = m_backendDispatcher-&gt;getArray(parameters.get(), ASCIILiteral(&quot;columnNames&quot;), &amp;opt_in_columnNames_valueFound);
+    bool opt_in_notes_valueFound = false;
+    String opt_in_notes = m_backendDispatcher-&gt;getString(parameters.get(), ASCIILiteral(&quot;notes&quot;), &amp;opt_in_notes_valueFound);
+    bool opt_in_timestamp_valueFound = false;
+    Inspector::Protocol::OptOutput&lt;double&gt; opt_in_timestamp = m_backendDispatcher-&gt;getDouble(parameters.get(), ASCIILiteral(&quot;timestamp&quot;), &amp;opt_in_timestamp_valueFound);
+    bool opt_in_values_valueFound = false;
+    RefPtr&lt;Inspector::InspectorObject&gt; opt_in_values = m_backendDispatcher-&gt;getObject(parameters.get(), ASCIILiteral(&quot;values&quot;), &amp;opt_in_values_valueFound);
+    bool opt_in_payload_valueFound = false;
+    RefPtr&lt;Inspector::InspectorValue&gt; opt_in_payload = m_backendDispatcher-&gt;getValue(parameters.get(), ASCIILiteral(&quot;payload&quot;), &amp;opt_in_payload_valueFound);
+    bool opt_in_databaseId_valueFound = false;
+    int opt_in_databaseId = m_backendDispatcher-&gt;getInteger(parameters.get(), ASCIILiteral(&quot;databaseId&quot;), &amp;opt_in_databaseId_valueFound);
+    bool opt_in_sqlError_valueFound = false;
+    RefPtr&lt;Inspector::InspectorObject&gt; opt_in_sqlError = m_backendDispatcher-&gt;getObject(parameters.get(), ASCIILiteral(&quot;sqlError&quot;), &amp;opt_in_sqlError_valueFound);
+    bool opt_in_screenColor_valueFound = false;
+    String opt_in_screenColor = m_backendDispatcher-&gt;getString(parameters.get(), ASCIILiteral(&quot;screenColor&quot;), &amp;opt_in_screenColor_valueFound);
+    bool opt_in_alternateColors_valueFound = false;
+    RefPtr&lt;Inspector::InspectorArray&gt; opt_in_alternateColors = m_backendDispatcher-&gt;getArray(parameters.get(), ASCIILiteral(&quot;alternateColors&quot;), &amp;opt_in_alternateColors_valueFound);
+    bool opt_in_printColor_valueFound = false;
+    String opt_in_printColor = m_backendDispatcher-&gt;getString(parameters.get(), ASCIILiteral(&quot;printColor&quot;), &amp;opt_in_printColor_valueFound);
+    if (m_backendDispatcher-&gt;hasProtocolErrors()) {
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::InvalidParams, String::format(&quot;Some arguments of method '%s' can't be processed&quot;, &quot;Database.executeAllOptionalParameters&quot;));
+        return;
+    }
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;executeAllOptionalParameters(requestId, opt_in_columnNames_valueFound ? opt_in_columnNames.get() : nullptr, opt_in_notes_valueFound ? &amp;opt_in_notes : nullptr, opt_in_timestamp_valueFound ? &amp;opt_in_timestamp : nullptr, opt_in_values_valueFound ? opt_in_values.get() : nullptr, opt_in_payload_valueFound ? opt_in_payload.get() : nullptr, opt_in_databaseId_valueFound ? &amp;opt_in_databaseId : nullptr, opt_in_sqlError_valueFound ? opt_in_sqlError.get() : nullptr, opt_in_screenColor_valueFound ? &amp;opt_in_screenColor : nullptr, opt_in_alternateColors_valueFound ? opt_in_alternateColors.get() : nullptr, opt_in_printColor_valueFound ? &amp;opt_in_printColor : nullptr);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; out_columnNames;
+    Inspector::Protocol::OptOutput&lt;String&gt; out_notes;
+    Inspector::Protocol::OptOutput&lt;double&gt; out_timestamp;
+    Inspector::Protocol::OptOutput&lt;Inspector::InspectorObject&gt; out_values;
+    Inspector::Protocol::OptOutput&lt;Inspector::InspectorValue&gt; out_payload;
+    Inspector::Protocol::OptOutput&lt;Inspector::Protocol::Database::DatabaseId&gt; out_databaseId;
+    RefPtr&lt;Inspector::Protocol::Database::Error&gt; out_sqlError;
+    Inspector::Protocol::Database::PrimaryColors out_screenColor;
+    RefPtr&lt;Inspector::Protocol::Database::ColorList&gt; out_alternateColors;
+    DatabaseBackendDispatcherHandler::PrintColor out_printColor;
+    m_agent-&gt;executeAllOptionalParameters(error, opt_in_columnNames_valueFound ? opt_in_columnNames.get() : nullptr, opt_in_notes_valueFound ? &amp;opt_in_notes : nullptr, opt_in_timestamp_valueFound ? &amp;opt_in_timestamp : nullptr, opt_in_values_valueFound ? opt_in_values.get() : nullptr, opt_in_payload_valueFound ? opt_in_payload.get() : nullptr, opt_in_databaseId_valueFound ? &amp;opt_in_databaseId : nullptr, opt_in_sqlError_valueFound ? opt_in_sqlError.get() : nullptr, opt_in_screenColor_valueFound ? &amp;opt_in_screenColor : nullptr, opt_in_alternateColors_valueFound ? opt_in_alternateColors.get() : nullptr, opt_in_printColor_valueFound ? &amp;opt_in_printColor : nullptr, out_columnNames, &amp;out_notes, &amp;out_timestamp, out_values, &amp;out_payload, &amp;out_databaseId, out_sqlError, &amp;out_screenColor, out_alternateColors, &amp;out_printColor);
+
+    if (!error.length()) {
+        if (out_columnNames)
+            result-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), out_columnNames);
+        if (out_notes.isAssigned())
+            result-&gt;setString(ASCIILiteral(&quot;notes&quot;), out_notes.getValue());
+        if (out_timestamp.isAssigned())
+            result-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), out_timestamp.getValue());
+        if (out_values.isAssigned())
+            result-&gt;setObject(ASCIILiteral(&quot;values&quot;), out_values.getValue());
+        if (out_payload.isAssigned())
+            result-&gt;setValue(ASCIILiteral(&quot;payload&quot;), out_payload.getValue());
+        if (out_databaseId.isAssigned())
+            result-&gt;setInteger(ASCIILiteral(&quot;databaseId&quot;), out_databaseId.getValue());
+        if (out_sqlError)
+            result-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), out_sqlError);
+        if (out_screenColor.isAssigned())
+            result-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), out_screenColor.getValue());
+        if (out_alternateColors)
+            result-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), out_alternateColors);
+        if (out_printColor.isAssigned())
+            result-&gt;setString(ASCIILiteral(&quot;printColor&quot;), out_printColor.getValue());
+    }
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+
+void DatabaseBackendDispatcher::executeNoOptionalParameters(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters)
+{
+    RefPtr&lt;Inspector::InspectorArray&gt; in_columnNames = m_backendDispatcher-&gt;getArray(parameters.get(), ASCIILiteral(&quot;columnNames&quot;), nullptr);
+    String in_notes = m_backendDispatcher-&gt;getString(parameters.get(), ASCIILiteral(&quot;notes&quot;), nullptr);
+    double in_timestamp = m_backendDispatcher-&gt;getDouble(parameters.get(), ASCIILiteral(&quot;timestamp&quot;), nullptr);
+    RefPtr&lt;Inspector::InspectorObject&gt; in_values = m_backendDispatcher-&gt;getObject(parameters.get(), ASCIILiteral(&quot;values&quot;), nullptr);
+    RefPtr&lt;Inspector::InspectorValue&gt; in_payload = m_backendDispatcher-&gt;getValue(parameters.get(), ASCIILiteral(&quot;payload&quot;), nullptr);
+    int in_databaseId = m_backendDispatcher-&gt;getInteger(parameters.get(), ASCIILiteral(&quot;databaseId&quot;), nullptr);
+    RefPtr&lt;Inspector::InspectorObject&gt; in_sqlError = m_backendDispatcher-&gt;getObject(parameters.get(), ASCIILiteral(&quot;sqlError&quot;), nullptr);
+    String in_screenColor = m_backendDispatcher-&gt;getString(parameters.get(), ASCIILiteral(&quot;screenColor&quot;), nullptr);
+    RefPtr&lt;Inspector::InspectorArray&gt; in_alternateColors = m_backendDispatcher-&gt;getArray(parameters.get(), ASCIILiteral(&quot;alternateColors&quot;), nullptr);
+    String in_printColor = m_backendDispatcher-&gt;getString(parameters.get(), ASCIILiteral(&quot;printColor&quot;), nullptr);
+    if (m_backendDispatcher-&gt;hasProtocolErrors()) {
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::InvalidParams, String::format(&quot;Some arguments of method '%s' can't be processed&quot;, &quot;Database.executeNoOptionalParameters&quot;));
+        return;
+    }
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;executeNoOptionalParameters(requestId, *in_columnNames, in_notes, in_timestamp, *in_values, *in_payload, in_databaseId, *in_sqlError, in_screenColor, *in_alternateColors, in_printColor);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; out_columnNames;
+    String out_notes;
+    double out_timestamp;
+    Inspector::InspectorObject out_values;
+    Inspector::InspectorValue out_payload;
+    Inspector::Protocol::Database::DatabaseId out_databaseId;
+    RefPtr&lt;Inspector::Protocol::Database::Error&gt; out_sqlError;
+    Inspector::Protocol::Database::PrimaryColors out_screenColor;
+    RefPtr&lt;Inspector::Protocol::Database::ColorList&gt; out_alternateColors;
+    DatabaseBackendDispatcherHandler::PrintColor out_printColor;
+    m_agent-&gt;executeNoOptionalParameters(error, *in_columnNames, in_notes, in_timestamp, *in_values, *in_payload, in_databaseId, *in_sqlError, in_screenColor, *in_alternateColors, in_printColor, out_columnNames, &amp;out_notes, &amp;out_timestamp, out_values, &amp;out_payload, &amp;out_databaseId, out_sqlError, &amp;out_screenColor, out_alternateColors, &amp;out_printColor);
+
+    if (!error.length()) {
+        result-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), out_columnNames);
+        result-&gt;setString(ASCIILiteral(&quot;notes&quot;), out_notes);
+        result-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), out_timestamp);
+        result-&gt;setObject(ASCIILiteral(&quot;values&quot;), out_values);
+        result-&gt;setValue(ASCIILiteral(&quot;payload&quot;), out_payload);
+        result-&gt;setInteger(ASCIILiteral(&quot;databaseId&quot;), out_databaseId);
+        result-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), out_sqlError);
+        result-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), Inspector::Protocol::TestHelpers::getEnumConstantValue(out_screenColor));
+        result-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), out_alternateColors);
+        result-&gt;setString(ASCIILiteral(&quot;printColor&quot;), Inspector::Protocol::TestHelpers::getEnumConstantValue(out_printColor));
+    }
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+// Forward declarations.
+namespace Database {
+class Error;
+enum class PrimaryColors;
+} // Database
+// End of forward declarations.
+
+
+// Typedefs.
+namespace Database {
+/* Unique identifier of Database object. */
+typedef int DatabaseId;
+typedef Inspector::Protocol::Array&lt;Inspector::Protocol::Database::PrimaryColors&gt; ColorList;
+} // Database
+// End of typedefs.
+
+namespace TestHelpers {
+
+String getEnumConstantValue(int code);
+
+template&lt;typename T&gt; String getEnumConstantValue(T enumValue)
+{
+    return getEnumConstantValue(static_cast&lt;int&gt;(enumValue));
+}
+
+} // namespace TestHelpers
+
+namespace Database {
+/*  */
+enum class PrimaryColors {
+    Red = 0,
+    Green = 1,
+    Blue = 2,
+}; // enum class PrimaryColors
+/* Database error. */
+class Error : public Inspector::InspectorObjectBase {
+public:
+    enum {
+        NoFieldsSet = 0,
+        MessageSet = 1 &lt;&lt; 0,
+        CodeSet = 1 &lt;&lt; 1,
+        AllFieldsSet = (MessageSet | CodeSet)
+    };
+
+    template&lt;int STATE&gt;
+    class Builder {
+    private:
+        RefPtr&lt;InspectorObject&gt; m_result;
+
+        template&lt;int STEP&gt; Builder&lt;STATE | STEP&gt;&amp; castState()
+        {
+            return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
+        }
+
+        Builder(Ref&lt;/*Error*/InspectorObject&gt;&amp;&amp; object)
+            : m_result(WTFMove(object))
+        {
+            COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
+        }
+        friend class Error;
+    public:
+
+        Builder&lt;STATE | MessageSet&gt;&amp; setMessage(const String&amp; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; MessageSet), property_message_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;message&quot;), value);
+            return castState&lt;MessageSet&gt;();
+        }
+
+        Builder&lt;STATE | CodeSet&gt;&amp; setCode(int value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; CodeSet), property_code_already_set);
+            m_result-&gt;setInteger(ASCIILiteral(&quot;code&quot;), value);
+            return castState&lt;CodeSet&gt;();
+        }
+
+        Ref&lt;Error&gt; release()
+        {
+            COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
+            COMPILE_ASSERT(sizeof(Error) == sizeof(InspectorObject), cannot_cast);
+
+            Ref&lt;InspectorObject&gt; result = m_result.releaseNonNull();
+            return WTFMove(*reinterpret_cast&lt;Ref&lt;Error&gt;*&gt;(&amp;result));
+        }
+    };
+
+    /*
+     * Synthetic constructor:
+     * Ref&lt;Error&gt; result = Error::create()
+     *     .setMessage(...)
+     *     .setCode(...)
+     *     .release();
+     */
+    static Builder&lt;NoFieldsSet&gt; create()
+    {
+        return Builder&lt;NoFieldsSet&gt;(InspectorObject::create());
+    }
+};
+
+} // Database
+
+
+
+namespace TestHelpers {
+
+template&lt;typename ProtocolEnumType&gt;
+std::optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
+
+// Enums in the 'Database' Domain
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Database::PrimaryColors&gt; parseEnumValueFromString&lt;Inspector::Protocol::Database::PrimaryColors&gt;(const String&amp;);
+
+} // namespace TestHelpers
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+namespace TestHelpers {
+
+static const char* const enum_constant_values[] = {
+    &quot;red&quot;,
+    &quot;green&quot;,
+    &quot;blue&quot;,
+    &quot;cyan&quot;,
+    &quot;magenta&quot;,
+    &quot;yellow&quot;,
+    &quot;black&quot;,
+};
+
+String getEnumConstantValue(int code) {
+    return enum_constant_values[code];
+}
+
+// Enums in the 'Database' Domain
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Database::PrimaryColors&gt; parseEnumValueFromString&lt;Inspector::Protocol::Database::PrimaryColors&gt;(const String&amp; protocolString)
+{
+    static const size_t constantValues[] = {
+        (size_t)Inspector::Protocol::Database::PrimaryColors::Red,
+        (size_t)Inspector::Protocol::Database::PrimaryColors::Green,
+        (size_t)Inspector::Protocol::Database::PrimaryColors::Blue,
+    };
+    for (size_t i = 0; i &lt; 3; ++i)
+        if (protocolString == enum_constant_values[constantValues[i]])
+            return (Inspector::Protocol::Database::PrimaryColors)constantValues[i];
+
+    return std::nullopt;
+}
+
+
+} // namespace TestHelpers
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+@protocol TestProtocolDatabaseDomainHandler;
+
+namespace Inspector {
+
+
+class ObjCInspectorDatabaseBackendDispatcher final : public AlternateDatabaseBackendDispatcher {
+public:
+    ObjCInspectorDatabaseBackendDispatcher(id&lt;TestProtocolDatabaseDomainHandler&gt; handler) { m_delegate = handler; }
+    virtual void executeAllOptionalParameters(long requestId, const Inspector::InspectorArray* in_columnNames, const String* const in_notes, const double* const in_timestamp, const Inspector::InspectorObject* in_values, const Inspector::InspectorValue* const in_payload, const int* const in_databaseId, const Inspector::InspectorObject* in_sqlError, const String* const in_screenColor, const Inspector::InspectorArray* in_alternateColors, const String* const in_printColor) override;
+    virtual void executeNoOptionalParameters(long requestId, const Inspector::InspectorArray&amp; in_columnNames, const String&amp; in_notes, double in_timestamp, const Inspector::InspectorObject&amp; in_values, Inspector::InspectorValue in_payload, int in_databaseId, const Inspector::InspectorObject&amp; in_sqlError, const String&amp; in_screenColor, const Inspector::InspectorArray&amp; in_alternateColors, const String&amp; in_printColor) override;
+private:
+    RetainPtr&lt;id&lt;TestProtocolDatabaseDomainHandler&gt;&gt; m_delegate;
+};
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+    id&lt;TestProtocolDatabaseDomainHandler&gt; _databaseHandler;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [_databaseHandler release];
+    [super dealloc];
+}
+
+- (void)setDatabaseHandler:(id&lt;TestProtocolDatabaseDomainHandler&gt;)handler
+{
+    if (handler == _databaseHandler)
+        return;
+
+    [_databaseHandler release];
+    _databaseHandler = [handler retain];
+
+    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorDatabaseBackendDispatcher&gt;(handler);
+    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;DatabaseBackendDispatcher, AlternateDatabaseBackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Database&quot;), *_controller, WTFMove(alternateDispatcher));
+    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
+}
+
+- (id&lt;TestProtocolDatabaseDomainHandler&gt;)databaseHandler
+{
+    return _databaseHandler;
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@property (nonatomic, retain, setter=setDatabaseHandler:) id&lt;TestProtocolDatabaseDomainHandler&gt; databaseHandler;
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+void ObjCInspectorDatabaseBackendDispatcher::executeAllOptionalParameters(long requestId, const Inspector::InspectorArray* in_columnNames, const String* const in_notes, const double* const in_timestamp, const Inspector::InspectorObject* in_values, const Inspector::InspectorValue* const in_payload, const int* const in_databaseId, const Inspector::InspectorObject* in_sqlError, const String* const in_screenColor, const Inspector::InspectorArray* in_alternateColors, const String* const in_printColor)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^(NSArray/*&lt;NSString&gt;*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, TestProtocolDatabaseError **sqlError, TestProtocolDatabasePrimaryColors *screenColor, NSArray/*&lt;NSString&gt;*/ **alternateColors, TestProtocolDatabaseExecuteAllOptionalParametersPrintColor *printColor) {
+        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(columnNames, @&quot;columnNames&quot;);
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(notes, @&quot;notes&quot;);
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(values, @&quot;values&quot;);
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(payload, @&quot;payload&quot;);
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(sqlError, @&quot;sqlError&quot;);
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(alternateColors, @&quot;alternateColors&quot;);
+        if (columnNames)
+            resultObject-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), inspectorStringArray(*columnNames));
+        if (notes)
+            resultObject-&gt;setString(ASCIILiteral(&quot;notes&quot;), *notes);
+        if (timestamp)
+            resultObject-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), *timestamp);
+        if (values)
+            resultObject-&gt;setObject(ASCIILiteral(&quot;values&quot;), [*values toInspectorObject]);
+        if (payload)
+            resultObject-&gt;setValue(ASCIILiteral(&quot;payload&quot;), [*payload toInspectorObject]);
+        if (databaseId)
+            resultObject-&gt;setInteger(ASCIILiteral(&quot;databaseId&quot;), *databaseId);
+        if (sqlError)
+            resultObject-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), [*sqlError toInspectorObject]);
+        if (screenColor)
+            resultObject-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), toProtocolString(*screenColor));
+        if (alternateColors)
+            resultObject-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), inspectorStringArray(*alternateColors));
+        if (printColor)
+            resultObject-&gt;setString(ASCIILiteral(&quot;printColor&quot;), toProtocolString(*printColor));
+        backendDispatcher()-&gt;sendResponse(requestId, WTFMove(resultObject));
+    };
+
+    NSArray/*&lt;NSString&gt;*/ *o_in_columnNames;
+    if (in_columnNames)
+        o_in_columnNames = objcStringArray(in_columnNames);
+    NSString *o_in_notes;
+    if (in_notes)
+        o_in_notes = *in_notes;
+    double o_in_timestamp;
+    if (in_timestamp)
+        o_in_timestamp = *in_timestamp;
+    RWIProtocolJSONObject *o_in_values;
+    if (in_values)
+        o_in_values = [[[RWIProtocolJSONObject alloc] initWithInspectorObject:in_values] autorelease];
+    RWIProtocolJSONObject *o_in_payload;
+    if (in_payload)
+        o_in_payload = [[[RWIProtocolJSONObject alloc] initWithInspectorObject:in_payload] autorelease];
+    int o_in_databaseId;
+    if (in_databaseId)
+        o_in_databaseId = *in_databaseId;
+    TestProtocolDatabaseError *o_in_sqlError;
+    if (in_sqlError)
+        o_in_sqlError = [[[TestProtocolDatabaseError alloc] initWithInspectorObject:in_sqlError] autorelease];
+    TestProtocolDatabasePrimaryColors o_in_screenColor;
+    if (in_screenColor)
+        o_in_screenColor = fromProtocolString&lt;TestProtocolDatabasePrimaryColors&gt;(*in_screenColor);
+    NSArray/*&lt;NSString&gt;*/ *o_in_alternateColors;
+    if (in_alternateColors)
+        o_in_alternateColors = objcStringArray(in_alternateColors);
+    TestProtocolDatabaseExecuteAllOptionalParametersPrintColor o_in_printColor;
+    if (in_printColor)
+        o_in_printColor = fromProtocolString&lt;TestProtocolDatabaseExecuteAllOptionalParametersPrintColor&gt;(*in_printColor);
+
+    [m_delegate executeAllOptionalParametersWithErrorCallback:errorCallback successCallback:successCallback columnNames:(in_columnNames ? &amp;o_in_columnNames : nil) notes:(in_notes ? &amp;o_in_notes : nil) timestamp:(in_timestamp ? &amp;o_in_timestamp : nil) values:(in_values ? &amp;o_in_values : nil) payload:(in_payload ? &amp;o_in_payload : nil) databaseId:(in_databaseId ? &amp;o_in_databaseId : nil) sqlError:(in_sqlError ? &amp;o_in_sqlError : nil) screenColor:(in_screenColor ? &amp;o_in_screenColor : nil) alternateColors:(in_alternateColors ? &amp;o_in_alternateColors : nil) printColor:(in_printColor ? &amp;o_in_printColor : nil)];
+}
+
+void ObjCInspectorDatabaseBackendDispatcher::executeNoOptionalParameters(long requestId, const Inspector::InspectorArray&amp; in_columnNames, const String&amp; in_notes, double in_timestamp, const Inspector::InspectorObject&amp; in_values, Inspector::InspectorValue in_payload, int in_databaseId, const Inspector::InspectorObject&amp; in_sqlError, const String&amp; in_screenColor, const Inspector::InspectorArray&amp; in_alternateColors, const String&amp; in_printColor)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^(NSArray/*&lt;NSString&gt;*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, TestProtocolDatabaseError *sqlError, TestProtocolDatabasePrimaryColors screenColor, NSArray/*&lt;NSString&gt;*/ *alternateColors, TestProtocolDatabaseExecuteNoOptionalParametersPrintColor printColor) {
+        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(columnNames, @&quot;columnNames&quot;);
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(notes, @&quot;notes&quot;);
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(values, @&quot;values&quot;);
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(payload, @&quot;payload&quot;);
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(sqlError, @&quot;sqlError&quot;);
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(alternateColors, @&quot;alternateColors&quot;);
+        resultObject-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), inspectorStringArray(columnNames));
+        resultObject-&gt;setString(ASCIILiteral(&quot;notes&quot;), notes);
+        resultObject-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), timestamp);
+        resultObject-&gt;setObject(ASCIILiteral(&quot;values&quot;), [values toInspectorObject]);
+        resultObject-&gt;setValue(ASCIILiteral(&quot;payload&quot;), [payload toInspectorObject]);
+        resultObject-&gt;setInteger(ASCIILiteral(&quot;databaseId&quot;), databaseId);
+        resultObject-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), [sqlError toInspectorObject]);
+        resultObject-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), toProtocolString(screenColor));
+        resultObject-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), inspectorStringArray(alternateColors));
+        resultObject-&gt;setString(ASCIILiteral(&quot;printColor&quot;), toProtocolString(printColor));
+        backendDispatcher()-&gt;sendResponse(requestId, WTFMove(resultObject));
+    };
+
+    NSArray/*&lt;NSString&gt;*/ *o_in_columnNames = objcStringArray(&amp;in_columnNames);
+    NSString *o_in_notes = in_notes;
+    double o_in_timestamp = in_timestamp;
+    RWIProtocolJSONObject *o_in_values = [[[RWIProtocolJSONObject alloc] initWithInspectorObject:&amp;in_values] autorelease];
+    RWIProtocolJSONObject *o_in_payload = [[[RWIProtocolJSONObject alloc] initWithInspectorObject:&amp;in_payload] autorelease];
+    int o_in_databaseId = in_databaseId;
+    TestProtocolDatabaseError *o_in_sqlError = [[[TestProtocolDatabaseError alloc] initWithInspectorObject:&amp;in_sqlError] autorelease];
+    TestProtocolDatabasePrimaryColors o_in_screenColor = fromProtocolString&lt;TestProtocolDatabasePrimaryColors&gt;(in_screenColor);
+    NSArray/*&lt;NSString&gt;*/ *o_in_alternateColors = objcStringArray(&amp;in_alternateColors);
+    TestProtocolDatabaseExecuteNoOptionalParametersPrintColor o_in_printColor = fromProtocolString&lt;TestProtocolDatabaseExecuteNoOptionalParametersPrintColor&gt;(in_printColor);
+
+    [m_delegate executeNoOptionalParametersWithErrorCallback:errorCallback successCallback:successCallback columnNames:o_in_columnNames notes:o_in_notes timestamp:o_in_timestamp values:o_in_values payload:o_in_payload databaseId:o_in_databaseId sqlError:o_in_sqlError screenColor:o_in_screenColor alternateColors:o_in_alternateColors printColor:o_in_printColor];
+}
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+@class TestProtocolDatabaseError;
+
+
+typedef NS_ENUM(NSInteger, TestProtocolDatabasePrimaryColors) {
+    TestProtocolDatabasePrimaryColorsRed,
+    TestProtocolDatabasePrimaryColorsGreen,
+    TestProtocolDatabasePrimaryColorsBlue,
+};
+
+typedef NS_ENUM(NSInteger, TestProtocolDatabaseExecuteAllOptionalParametersPrintColor) {
+    TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan,
+    TestProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta,
+    TestProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow,
+    TestProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack,
+};
+
+typedef NS_ENUM(NSInteger, TestProtocolDatabaseExecuteAllOptionalParametersPrintColor) {
+    TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan,
+    TestProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta,
+    TestProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow,
+    TestProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack,
+};
+
+typedef NS_ENUM(NSInteger, TestProtocolDatabaseExecuteNoOptionalParametersPrintColor) {
+    TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan,
+    TestProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta,
+    TestProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow,
+    TestProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack,
+};
+
+typedef NS_ENUM(NSInteger, TestProtocolDatabaseExecuteNoOptionalParametersPrintColor) {
+    TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan,
+    TestProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta,
+    TestProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow,
+    TestProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack,
+};
+
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolDatabaseError : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+- (instancetype)initWithMessage:(NSString *)message code:(int)code;
+/* required */ @property (nonatomic, copy) NSString *message;
+/* required */ @property (nonatomic, assign) int code;
+@end
+
+@protocol TestProtocolDatabaseDomainHandler &lt;NSObject&gt;
+@required
+- (void)executeAllOptionalParametersWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*&lt;NSString&gt;*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, TestProtocolDatabaseError **sqlError, TestProtocolDatabasePrimaryColors *screenColor, NSArray/*&lt;NSString&gt;*/ **alternateColors, TestProtocolDatabaseExecuteAllOptionalParametersPrintColor *printColor))successCallback columnNames:(NSArray/*&lt;NSString&gt;*/ **)columnNames notes:(NSString **)notes timestamp:(double *)timestamp values:(RWIProtocolJSONObject **)values payload:(RWIProtocolJSONObject **)payload databaseId:(int *)databaseId sqlError:(TestProtocolDatabaseError **)sqlError screenColor:(TestProtocolDatabasePrimaryColors *)screenColor alternateColors:(NSArray/*&lt;NSString&gt;*/ **)alternateColors printColor:(TestProtocolDatabaseExecuteAllOptionalParametersPrintColor *)printColor;
+- (void)executeNoOptionalParametersWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*&lt;NSString&gt;*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, TestProtocolDatabaseError *sqlError, TestProtocolDatabasePrimaryColors screenColor, NSArray/*&lt;NSString&gt;*/ *alternateColors, TestProtocolDatabaseExecuteNoOptionalParametersPrintColor printColor))successCallback columnNames:(NSArray/*&lt;NSString&gt;*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload databaseId:(int)databaseId sqlError:(TestProtocolDatabaseError *)sqlError screenColor:(TestProtocolDatabasePrimaryColors)screenColor alternateColors:(NSArray/*&lt;NSString&gt;*/ *)alternateColors printColor:(TestProtocolDatabaseExecuteNoOptionalParametersPrintColor)printColor;
+@end
+
+
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+
+inline String toProtocolString(TestProtocolDatabasePrimaryColors value)
+{
+    switch(value) {
+    case TestProtocolDatabasePrimaryColorsRed:
+        return ASCIILiteral(&quot;red&quot;);
+    case TestProtocolDatabasePrimaryColorsGreen:
+        return ASCIILiteral(&quot;green&quot;);
+    case TestProtocolDatabasePrimaryColorsBlue:
+        return ASCIILiteral(&quot;blue&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolDatabasePrimaryColors fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;red&quot;)
+        return TestProtocolDatabasePrimaryColorsRed;
+    if (value == &quot;green&quot;)
+        return TestProtocolDatabasePrimaryColorsGreen;
+    if (value == &quot;blue&quot;)
+        return TestProtocolDatabasePrimaryColorsBlue;
+    ASSERT_NOT_REACHED();
+    return TestProtocolDatabasePrimaryColorsRed;
+}
+
+inline String toProtocolString(TestProtocolDatabaseExecuteAllOptionalParametersPrintColor value)
+{
+    switch(value) {
+    case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan:
+        return ASCIILiteral(&quot;cyan&quot;);
+    case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta:
+        return ASCIILiteral(&quot;magenta&quot;);
+    case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow:
+        return ASCIILiteral(&quot;yellow&quot;);
+    case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack:
+        return ASCIILiteral(&quot;black&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolDatabaseExecuteAllOptionalParametersPrintColor fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;cyan&quot;)
+        return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan;
+    if (value == &quot;magenta&quot;)
+        return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta;
+    if (value == &quot;yellow&quot;)
+        return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow;
+    if (value == &quot;black&quot;)
+        return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack;
+    ASSERT_NOT_REACHED();
+    return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan;
+}
+
+inline String toProtocolString(TestProtocolDatabaseExecuteAllOptionalParametersPrintColor value)
+{
+    switch(value) {
+    case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan:
+        return ASCIILiteral(&quot;cyan&quot;);
+    case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta:
+        return ASCIILiteral(&quot;magenta&quot;);
+    case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow:
+        return ASCIILiteral(&quot;yellow&quot;);
+    case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack:
+        return ASCIILiteral(&quot;black&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolDatabaseExecuteAllOptionalParametersPrintColor fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;cyan&quot;)
+        return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan;
+    if (value == &quot;magenta&quot;)
+        return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta;
+    if (value == &quot;yellow&quot;)
+        return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow;
+    if (value == &quot;black&quot;)
+        return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack;
+    ASSERT_NOT_REACHED();
+    return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan;
+}
+
+inline String toProtocolString(TestProtocolDatabaseExecuteNoOptionalParametersPrintColor value)
+{
+    switch(value) {
+    case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan:
+        return ASCIILiteral(&quot;cyan&quot;);
+    case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta:
+        return ASCIILiteral(&quot;magenta&quot;);
+    case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow:
+        return ASCIILiteral(&quot;yellow&quot;);
+    case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack:
+        return ASCIILiteral(&quot;black&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolDatabaseExecuteNoOptionalParametersPrintColor fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;cyan&quot;)
+        return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan;
+    if (value == &quot;magenta&quot;)
+        return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta;
+    if (value == &quot;yellow&quot;)
+        return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow;
+    if (value == &quot;black&quot;)
+        return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack;
+    ASSERT_NOT_REACHED();
+    return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan;
+}
+
+inline String toProtocolString(TestProtocolDatabaseExecuteNoOptionalParametersPrintColor value)
+{
+    switch(value) {
+    case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan:
+        return ASCIILiteral(&quot;cyan&quot;);
+    case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta:
+        return ASCIILiteral(&quot;magenta&quot;);
+    case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow:
+        return ASCIILiteral(&quot;yellow&quot;);
+    case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack:
+        return ASCIILiteral(&quot;black&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolDatabaseExecuteNoOptionalParametersPrintColor fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;cyan&quot;)
+        return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan;
+    if (value == &quot;magenta&quot;)
+        return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta;
+    if (value == &quot;yellow&quot;)
+        return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow;
+    if (value == &quot;black&quot;)
+        return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack;
+    ASSERT_NOT_REACHED();
+    return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan;
+}
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+@interface TestProtocolTypeConversions (DatabaseDomain)
+
++ (void)_parseDatabaseId:(NSNumber **)outValue fromPayload:(id)payload;
++ (void)_parsePrimaryColors:(NSNumber **)outValue fromPayload:(id)payload;
++ (void)_parseColorList:(NSArray/*&lt;NSString&gt;*/ **)outValue fromPayload:(id)payload;
++ (void)_parseError:(TestProtocolDatabaseError **)outValue fromPayload:(id)payload;
+
+@end
+
+@implementation TestProtocolTypeConversions (DatabaseDomain)
+
++ (void)_parseDatabaseId:(NSNumber **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSNumber class]);
+    *outValue = (NSNumber *)payload;
+}
+
++ (void)_parsePrimaryColors:(NSNumber **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSString class]);
+    *outValue = @(Inspector::fromProtocolString&lt;TestProtocolDatabasePrimaryColors&gt;(payload));
+}
+
++ (void)_parseColorList:(NSArray/*&lt;NSString&gt;*/ **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSArray/*&lt;NSString&gt;*/ class]);
+    *outValue = (NSArray/*&lt;NSString&gt;*/ *)payload;
+}
+
++ (void)_parseError:(TestProtocolDatabaseError **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolDatabaseError alloc] initWithPayload:payload];
+}
+
+@end
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+@implementation TestProtocolDatabaseError
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;message&quot;], @&quot;message&quot;);
+    self.message = payload[@&quot;message&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;code&quot;], @&quot;code&quot;);
+    self.code = [payload[@&quot;code&quot;] integerValue];
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+- (instancetype)initWithMessage:(NSString *)message code:(int)code
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(message, @&quot;message&quot;);
+
+    self.message = message;
+    self.code = code;
+
+    return self;
+}
+
+- (void)setMessage:(NSString *)message
+{
+    [super setString:message forKey:@&quot;message&quot;];
+}
+
+- (NSString *)message
+{
+    return [super stringForKey:@&quot;message&quot;];
+}
+
+- (void)setCode:(int)code
+{
+    [super setInteger:code forKey:@&quot;code&quot;];
+}
+
+- (int)code
+{
+    return [super integerForKey:@&quot;code&quot;];
+}
+
+@end
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpecteddomainswithvaryingcommandsizesjsonresultfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpecteddomainswithvaryingcommandsizesjsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,1398 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+// Network1.
+InspectorBackend.registerCommand(&quot;Network1.loadResource1&quot;, [], []);
+InspectorBackend.activateDomain(&quot;Network1&quot;);
+
+// Network3.
+InspectorBackend.registerCommand(&quot;Network3.loadResource1&quot;, [], []);
+InspectorBackend.registerCommand(&quot;Network3.loadResource2&quot;, [], []);
+InspectorBackend.registerCommand(&quot;Network3.loadResource3&quot;, [], []);
+InspectorBackend.registerCommand(&quot;Network3.loadResource4&quot;, [], []);
+InspectorBackend.registerCommand(&quot;Network3.loadResource5&quot;, [], []);
+InspectorBackend.registerCommand(&quot;Network3.loadResource6&quot;, [], []);
+InspectorBackend.registerCommand(&quot;Network3.loadResource7&quot;, [], []);
+InspectorBackend.activateDomain(&quot;Network3&quot;);
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+class AlternateNetwork1BackendDispatcher : public AlternateBackendDispatcher {
+public:
+    virtual ~AlternateNetwork1BackendDispatcher() { }
+    virtual void loadResource1(long callId) = 0;
+};
+class AlternateNetwork3BackendDispatcher : public AlternateBackendDispatcher {
+public:
+    virtual ~AlternateNetwork3BackendDispatcher() { }
+    virtual void loadResource1(long callId) = 0;
+    virtual void loadResource2(long callId) = 0;
+    virtual void loadResource3(long callId) = 0;
+    virtual void loadResource4(long callId) = 0;
+    virtual void loadResource5(long callId) = 0;
+    virtual void loadResource6(long callId) = 0;
+    virtual void loadResource7(long callId) = 0;
+};
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+class AlternateNetwork1BackendDispatcher;
+class AlternateNetwork3BackendDispatcher;
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+class Network1BackendDispatcherHandler {
+public:
+    virtual void loadResource1(ErrorString&amp;) = 0;
+protected:
+    virtual ~Network1BackendDispatcherHandler();
+};
+
+class Network3BackendDispatcherHandler {
+public:
+    virtual void loadResource1(ErrorString&amp;) = 0;
+    virtual void loadResource2(ErrorString&amp;) = 0;
+    virtual void loadResource3(ErrorString&amp;) = 0;
+    virtual void loadResource4(ErrorString&amp;) = 0;
+    virtual void loadResource5(ErrorString&amp;) = 0;
+    virtual void loadResource6(ErrorString&amp;) = 0;
+    virtual void loadResource7(ErrorString&amp;) = 0;
+protected:
+    virtual ~Network3BackendDispatcherHandler();
+};
+
+class Network1BackendDispatcher final : public SupplementalBackendDispatcher {
+public:
+    static Ref&lt;Network1BackendDispatcher&gt; create(BackendDispatcher&amp;, Network1BackendDispatcherHandler*);
+    void dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message) override;
+private:
+    void loadResource1(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+public:
+    void setAlternateDispatcher(AlternateNetwork1BackendDispatcher* alternateDispatcher) { m_alternateDispatcher = alternateDispatcher; }
+private:
+    AlternateNetwork1BackendDispatcher* m_alternateDispatcher { nullptr };
+#endif
+private:
+    Network1BackendDispatcher(BackendDispatcher&amp;, Network1BackendDispatcherHandler*);
+    Network1BackendDispatcherHandler* m_agent { nullptr };
+};
+
+class Network3BackendDispatcher final : public SupplementalBackendDispatcher {
+public:
+    static Ref&lt;Network3BackendDispatcher&gt; create(BackendDispatcher&amp;, Network3BackendDispatcherHandler*);
+    void dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message) override;
+private:
+    void loadResource1(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+    void loadResource2(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+    void loadResource3(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+    void loadResource4(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+    void loadResource5(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+    void loadResource6(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+    void loadResource7(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+public:
+    void setAlternateDispatcher(AlternateNetwork3BackendDispatcher* alternateDispatcher) { m_alternateDispatcher = alternateDispatcher; }
+private:
+    AlternateNetwork3BackendDispatcher* m_alternateDispatcher { nullptr };
+#endif
+private:
+    Network3BackendDispatcher(BackendDispatcher&amp;, Network3BackendDispatcherHandler*);
+    Network3BackendDispatcherHandler* m_agent { nullptr };
+};
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+Network1BackendDispatcherHandler::~Network1BackendDispatcherHandler() { }
+Network3BackendDispatcherHandler::~Network3BackendDispatcherHandler() { }
+
+Ref&lt;Network1BackendDispatcher&gt; Network1BackendDispatcher::create(BackendDispatcher&amp; backendDispatcher, Network1BackendDispatcherHandler* agent)
+{
+    return adoptRef(*new Network1BackendDispatcher(backendDispatcher, agent));
+}
+
+Network1BackendDispatcher::Network1BackendDispatcher(BackendDispatcher&amp; backendDispatcher, Network1BackendDispatcherHandler* agent)
+    : SupplementalBackendDispatcher(backendDispatcher)
+    , m_agent(agent)
+{
+    m_backendDispatcher-&gt;registerDispatcherForDomain(ASCIILiteral(&quot;Network1&quot;), this);
+}
+
+void Network1BackendDispatcher::dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
+{
+    Ref&lt;Network1BackendDispatcher&gt; protect(*this);
+
+    RefPtr&lt;InspectorObject&gt; parameters;
+    message-&gt;getObject(ASCIILiteral(&quot;params&quot;), parameters);
+
+    if (method == &quot;loadResource1&quot;)
+        loadResource1(requestId, WTFMove(parameters));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::MethodNotFound, makeString('\'', &quot;Network1&quot;, '.', method, &quot;' was not found&quot;));
+}
+
+void Network1BackendDispatcher::loadResource1(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp;)
+{
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;loadResource1(requestId);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    m_agent-&gt;loadResource1(error);
+
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+
+Ref&lt;Network3BackendDispatcher&gt; Network3BackendDispatcher::create(BackendDispatcher&amp; backendDispatcher, Network3BackendDispatcherHandler* agent)
+{
+    return adoptRef(*new Network3BackendDispatcher(backendDispatcher, agent));
+}
+
+Network3BackendDispatcher::Network3BackendDispatcher(BackendDispatcher&amp; backendDispatcher, Network3BackendDispatcherHandler* agent)
+    : SupplementalBackendDispatcher(backendDispatcher)
+    , m_agent(agent)
+{
+    m_backendDispatcher-&gt;registerDispatcherForDomain(ASCIILiteral(&quot;Network3&quot;), this);
+}
+
+void Network3BackendDispatcher::dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
+{
+    Ref&lt;Network3BackendDispatcher&gt; protect(*this);
+
+    RefPtr&lt;InspectorObject&gt; parameters;
+    message-&gt;getObject(ASCIILiteral(&quot;params&quot;), parameters);
+
+    typedef void (Network3BackendDispatcher::*CallHandler)(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; message);
+    typedef HashMap&lt;String, CallHandler&gt; DispatchMap;
+    static NeverDestroyed&lt;DispatchMap&gt; dispatchMap;
+    if (dispatchMap.get().isEmpty()) {
+        static const struct MethodTable {
+            const char* name;
+            CallHandler handler;
+        } commands[] = {
+            { &quot;loadResource1&quot;, &amp;Network3BackendDispatcher::loadResource1 },
+            { &quot;loadResource2&quot;, &amp;Network3BackendDispatcher::loadResource2 },
+            { &quot;loadResource3&quot;, &amp;Network3BackendDispatcher::loadResource3 },
+            { &quot;loadResource4&quot;, &amp;Network3BackendDispatcher::loadResource4 },
+            { &quot;loadResource5&quot;, &amp;Network3BackendDispatcher::loadResource5 },
+            { &quot;loadResource6&quot;, &amp;Network3BackendDispatcher::loadResource6 },
+            { &quot;loadResource7&quot;, &amp;Network3BackendDispatcher::loadResource7 },
+        };
+        size_t length = WTF_ARRAY_LENGTH(commands);
+        for (size_t i = 0; i &lt; length; ++i)
+            dispatchMap.get().add(commands[i].name, commands[i].handler);
+    }
+
+    auto findResult = dispatchMap.get().find(method);
+    if (findResult == dispatchMap.get().end()) {
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::MethodNotFound, makeString('\'', &quot;Network3&quot;, '.', method, &quot;' was not found&quot;));
+        return;
+    }
+
+    ((*this).*findResult-&gt;value)(requestId, WTFMove(parameters));
+}
+
+void Network3BackendDispatcher::loadResource1(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp;)
+{
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;loadResource1(requestId);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    m_agent-&gt;loadResource1(error);
+
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+
+void Network3BackendDispatcher::loadResource2(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp;)
+{
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;loadResource2(requestId);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    m_agent-&gt;loadResource2(error);
+
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+
+void Network3BackendDispatcher::loadResource3(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp;)
+{
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;loadResource3(requestId);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    m_agent-&gt;loadResource3(error);
+
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+
+void Network3BackendDispatcher::loadResource4(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp;)
+{
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;loadResource4(requestId);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    m_agent-&gt;loadResource4(error);
+
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+
+void Network3BackendDispatcher::loadResource5(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp;)
+{
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;loadResource5(requestId);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    m_agent-&gt;loadResource5(error);
+
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+
+void Network3BackendDispatcher::loadResource6(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp;)
+{
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;loadResource6(requestId);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    m_agent-&gt;loadResource6(error);
+
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+
+void Network3BackendDispatcher::loadResource7(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp;)
+{
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;loadResource7(requestId);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    m_agent-&gt;loadResource7(error);
+
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+
+
+// Typedefs.
+namespace Network2 {
+/* Unique loader identifier. */
+typedef String LoaderId;
+} // Network2
+// End of typedefs.
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+@protocol TestProtocolNetwork1DomainHandler;
+@protocol TestProtocolNetwork3DomainHandler;
+
+namespace Inspector {
+
+
+class ObjCInspectorNetwork1BackendDispatcher final : public AlternateNetwork1BackendDispatcher {
+public:
+    ObjCInspectorNetwork1BackendDispatcher(id&lt;TestProtocolNetwork1DomainHandler&gt; handler) { m_delegate = handler; }
+    virtual void loadResource1(long requestId) override;
+private:
+    RetainPtr&lt;id&lt;TestProtocolNetwork1DomainHandler&gt;&gt; m_delegate;
+};
+
+
+
+class ObjCInspectorNetwork3BackendDispatcher final : public AlternateNetwork3BackendDispatcher {
+public:
+    ObjCInspectorNetwork3BackendDispatcher(id&lt;TestProtocolNetwork3DomainHandler&gt; handler) { m_delegate = handler; }
+    virtual void loadResource1(long requestId) override;
+    virtual void loadResource2(long requestId) override;
+    virtual void loadResource3(long requestId) override;
+    virtual void loadResource4(long requestId) override;
+    virtual void loadResource5(long requestId) override;
+    virtual void loadResource6(long requestId) override;
+    virtual void loadResource7(long requestId) override;
+private:
+    RetainPtr&lt;id&lt;TestProtocolNetwork3DomainHandler&gt;&gt; m_delegate;
+};
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+    id&lt;TestProtocolNetwork1DomainHandler&gt; _network1Handler;
+    id&lt;TestProtocolNetwork3DomainHandler&gt; _network3Handler;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [_network1Handler release];
+    [_network3Handler release];
+    [super dealloc];
+}
+
+- (void)setNetwork1Handler:(id&lt;TestProtocolNetwork1DomainHandler&gt;)handler
+{
+    if (handler == _network1Handler)
+        return;
+
+    [_network1Handler release];
+    _network1Handler = [handler retain];
+
+    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorNetwork1BackendDispatcher&gt;(handler);
+    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;Network1BackendDispatcher, AlternateNetwork1BackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Network1&quot;), *_controller, WTFMove(alternateDispatcher));
+    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
+}
+
+- (id&lt;TestProtocolNetwork1DomainHandler&gt;)network1Handler
+{
+    return _network1Handler;
+}
+
+- (void)setNetwork3Handler:(id&lt;TestProtocolNetwork3DomainHandler&gt;)handler
+{
+    if (handler == _network3Handler)
+        return;
+
+    [_network3Handler release];
+    _network3Handler = [handler retain];
+
+    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorNetwork3BackendDispatcher&gt;(handler);
+    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;Network3BackendDispatcher, AlternateNetwork3BackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Network3&quot;), *_controller, WTFMove(alternateDispatcher));
+    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
+}
+
+- (id&lt;TestProtocolNetwork3DomainHandler&gt;)network3Handler
+{
+    return _network3Handler;
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@property (nonatomic, retain, setter=setNetwork1Handler:) id&lt;TestProtocolNetwork1DomainHandler&gt; network1Handler;
+@property (nonatomic, retain, setter=setNetwork3Handler:) id&lt;TestProtocolNetwork3DomainHandler&gt; network3Handler;
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+void ObjCInspectorNetwork1BackendDispatcher::loadResource1(long requestId)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResource1WithErrorCallback:errorCallback successCallback:successCallback];
+}
+
+
+
+
+void ObjCInspectorNetwork3BackendDispatcher::loadResource1(long requestId)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResource1WithErrorCallback:errorCallback successCallback:successCallback];
+}
+
+void ObjCInspectorNetwork3BackendDispatcher::loadResource2(long requestId)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResource2WithErrorCallback:errorCallback successCallback:successCallback];
+}
+
+void ObjCInspectorNetwork3BackendDispatcher::loadResource3(long requestId)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResource3WithErrorCallback:errorCallback successCallback:successCallback];
+}
+
+void ObjCInspectorNetwork3BackendDispatcher::loadResource4(long requestId)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResource4WithErrorCallback:errorCallback successCallback:successCallback];
+}
+
+void ObjCInspectorNetwork3BackendDispatcher::loadResource5(long requestId)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResource5WithErrorCallback:errorCallback successCallback:successCallback];
+}
+
+void ObjCInspectorNetwork3BackendDispatcher::loadResource6(long requestId)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResource6WithErrorCallback:errorCallback successCallback:successCallback];
+}
+
+void ObjCInspectorNetwork3BackendDispatcher::loadResource7(long requestId)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResource7WithErrorCallback:errorCallback successCallback:successCallback];
+}
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+
+
+
+
+
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+
+
+
+
+
+
+@protocol TestProtocolNetwork1DomainHandler &lt;NSObject&gt;
+@required
+- (void)loadResource1WithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)())successCallback;
+@end
+
+@protocol TestProtocolNetwork3DomainHandler &lt;NSObject&gt;
+@required
+- (void)loadResource1WithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)())successCallback;
+- (void)loadResource2WithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)())successCallback;
+- (void)loadResource3WithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)())successCallback;
+- (void)loadResource4WithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)())successCallback;
+- (void)loadResource5WithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)())successCallback;
+- (void)loadResource6WithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)())successCallback;
+- (void)loadResource7WithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)())successCallback;
+@end
+
+
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+
+
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+@interface TestProtocolTypeConversions (Network1Domain)
+
+@end
+@interface TestProtocolTypeConversions (Network2Domain)
+
++ (void)_parseLoaderId:(NSString **)outValue fromPayload:(id)payload;
+
+@end
+@interface TestProtocolTypeConversions (Network3Domain)
+
+@end
+
+@implementation TestProtocolTypeConversions (Network1Domain)
+
+@end
+@implementation TestProtocolTypeConversions (Network2Domain)
+
++ (void)_parseLoaderId:(NSString **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSString class]);
+    *outValue = (NSString *)payload;
+}
+
+@end
+@implementation TestProtocolTypeConversions (Network3Domain)
+
+@end
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+
+
+
+
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedenumvaluesjsonresultfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedenumvaluesjsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/enum-values.json-result (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/enum-values.json-result) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/enum-values.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/enum-values.json-result        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,1273 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+// TypeDomain.
+InspectorBackend.registerEnum(&quot;TypeDomain.TypeDomainEnum&quot;, {Shared: &quot;shared&quot;, Red: &quot;red&quot;, Green: &quot;green&quot;, Blue: &quot;blue&quot;});
+
+// CommandDomain.
+InspectorBackend.registerCommand(&quot;CommandDomain.commandWithEnumReturnValue&quot;, [], [&quot;returnValue&quot;]);
+InspectorBackend.activateDomain(&quot;CommandDomain&quot;);
+
+// EventDomain.
+InspectorBackend.registerEventDomainDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, &quot;EventDomain&quot;);
+InspectorBackend.registerEnum(&quot;EventDomain.EventWithEnumParameterParameter&quot;, {Shared: &quot;shared&quot;, Black: &quot;black&quot;, White: &quot;white&quot;});
+InspectorBackend.registerEvent(&quot;EventDomain.eventWithEnumParameter&quot;, [&quot;parameter&quot;]);
+InspectorBackend.activateDomain(&quot;EventDomain&quot;);
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+class AlternateCommandDomainBackendDispatcher : public AlternateBackendDispatcher {
+public:
+    virtual ~AlternateCommandDomainBackendDispatcher() { }
+    virtual void commandWithEnumReturnValue(long callId) = 0;
+};
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+class AlternateCommandDomainBackendDispatcher;
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+class CommandDomainBackendDispatcherHandler {
+public:
+    // Named after parameter 'returnValue' while generating command/event commandWithEnumReturnValue.
+    enum class ReturnValue {
+        Shared = 0,
+        Cyan = 6,
+        Magenta = 7,
+        Yellow = 8,
+    }; // enum class ReturnValue
+    virtual void commandWithEnumReturnValue(ErrorString&amp;, CommandDomainBackendDispatcherHandler::ReturnValue* out_returnValue) = 0;
+protected:
+    virtual ~CommandDomainBackendDispatcherHandler();
+};
+
+class CommandDomainBackendDispatcher final : public SupplementalBackendDispatcher {
+public:
+    static Ref&lt;CommandDomainBackendDispatcher&gt; create(BackendDispatcher&amp;, CommandDomainBackendDispatcherHandler*);
+    void dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message) override;
+private:
+    void commandWithEnumReturnValue(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+public:
+    void setAlternateDispatcher(AlternateCommandDomainBackendDispatcher* alternateDispatcher) { m_alternateDispatcher = alternateDispatcher; }
+private:
+    AlternateCommandDomainBackendDispatcher* m_alternateDispatcher { nullptr };
+#endif
+private:
+    CommandDomainBackendDispatcher(BackendDispatcher&amp;, CommandDomainBackendDispatcherHandler*);
+    CommandDomainBackendDispatcherHandler* m_agent { nullptr };
+};
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+CommandDomainBackendDispatcherHandler::~CommandDomainBackendDispatcherHandler() { }
+
+Ref&lt;CommandDomainBackendDispatcher&gt; CommandDomainBackendDispatcher::create(BackendDispatcher&amp; backendDispatcher, CommandDomainBackendDispatcherHandler* agent)
+{
+    return adoptRef(*new CommandDomainBackendDispatcher(backendDispatcher, agent));
+}
+
+CommandDomainBackendDispatcher::CommandDomainBackendDispatcher(BackendDispatcher&amp; backendDispatcher, CommandDomainBackendDispatcherHandler* agent)
+    : SupplementalBackendDispatcher(backendDispatcher)
+    , m_agent(agent)
+{
+    m_backendDispatcher-&gt;registerDispatcherForDomain(ASCIILiteral(&quot;CommandDomain&quot;), this);
+}
+
+void CommandDomainBackendDispatcher::dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
+{
+    Ref&lt;CommandDomainBackendDispatcher&gt; protect(*this);
+
+    RefPtr&lt;InspectorObject&gt; parameters;
+    message-&gt;getObject(ASCIILiteral(&quot;params&quot;), parameters);
+
+    if (method == &quot;commandWithEnumReturnValue&quot;)
+        commandWithEnumReturnValue(requestId, WTFMove(parameters));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::MethodNotFound, makeString('\'', &quot;CommandDomain&quot;, '.', method, &quot;' was not found&quot;));
+}
+
+void CommandDomainBackendDispatcher::commandWithEnumReturnValue(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp;)
+{
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;commandWithEnumReturnValue(requestId);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    CommandDomainBackendDispatcherHandler::ReturnValue out_returnValue;
+    m_agent-&gt;commandWithEnumReturnValue(error, &amp;out_returnValue);
+
+    if (!error.length())
+        result-&gt;setString(ASCIILiteral(&quot;returnValue&quot;), Inspector::Protocol::TestHelpers::getEnumConstantValue(out_returnValue));
+
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+class EventDomainFrontendDispatcher {
+public:
+    EventDomainFrontendDispatcher(FrontendRouter&amp; frontendRouter) : m_frontendRouter(frontendRouter) { }
+        // Named after parameter 'parameter' while generating command/event eventWithEnumParameter.
+        enum class Parameter {
+            Shared = 0,
+            Black = 4,
+            White = 5,
+        }; // enum class Parameter
+    void eventWithEnumParameter(Parameter parameter);
+private:
+    FrontendRouter&amp; m_frontendRouter;
+};
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+void EventDomainFrontendDispatcher::eventWithEnumParameter(Parameter parameter)
+{
+    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
+    jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;EventDomain.eventWithEnumParameter&quot;));
+    Ref&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
+    paramsObject-&gt;setString(ASCIILiteral(&quot;parameter&quot;), Inspector::Protocol::TestHelpers::getEnumConstantValue(parameter));
+    jsonMessage-&gt;setObject(ASCIILiteral(&quot;params&quot;), WTFMove(paramsObject));
+
+    m_frontendRouter.sendEvent(jsonMessage-&gt;toJSONString());
+}
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+// Forward declarations.
+namespace TypeDomain {
+enum class TypeDomainEnum;
+} // TypeDomain
+// End of forward declarations.
+
+
+
+
+namespace TestHelpers {
+
+String getEnumConstantValue(int code);
+
+template&lt;typename T&gt; String getEnumConstantValue(T enumValue)
+{
+    return getEnumConstantValue(static_cast&lt;int&gt;(enumValue));
+}
+
+} // namespace TestHelpers
+
+namespace TypeDomain {
+/*  */
+enum class TypeDomainEnum {
+    Shared = 0,
+    Red = 1,
+    Green = 2,
+    Blue = 3,
+}; // enum class TypeDomainEnum
+} // TypeDomain
+
+
+
+namespace TestHelpers {
+
+template&lt;typename ProtocolEnumType&gt;
+std::optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
+
+// Enums in the 'TypeDomain' Domain
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::TypeDomain::TypeDomainEnum&gt; parseEnumValueFromString&lt;Inspector::Protocol::TypeDomain::TypeDomainEnum&gt;(const String&amp;);
+
+} // namespace TestHelpers
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+namespace TestHelpers {
+
+static const char* const enum_constant_values[] = {
+    &quot;shared&quot;,
+    &quot;red&quot;,
+    &quot;green&quot;,
+    &quot;blue&quot;,
+    &quot;black&quot;,
+    &quot;white&quot;,
+    &quot;cyan&quot;,
+    &quot;magenta&quot;,
+    &quot;yellow&quot;,
+};
+
+String getEnumConstantValue(int code) {
+    return enum_constant_values[code];
+}
+
+// Enums in the 'TypeDomain' Domain
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::TypeDomain::TypeDomainEnum&gt; parseEnumValueFromString&lt;Inspector::Protocol::TypeDomain::TypeDomainEnum&gt;(const String&amp; protocolString)
+{
+    static const size_t constantValues[] = {
+        (size_t)Inspector::Protocol::TypeDomain::TypeDomainEnum::Shared,
+        (size_t)Inspector::Protocol::TypeDomain::TypeDomainEnum::Red,
+        (size_t)Inspector::Protocol::TypeDomain::TypeDomainEnum::Green,
+        (size_t)Inspector::Protocol::TypeDomain::TypeDomainEnum::Blue,
+    };
+    for (size_t i = 0; i &lt; 4; ++i)
+        if (protocolString == enum_constant_values[constantValues[i]])
+            return (Inspector::Protocol::TypeDomain::TypeDomainEnum)constantValues[i];
+
+    return std::nullopt;
+}
+
+
+} // namespace TestHelpers
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+@protocol TestProtocolCommandDomainDomainHandler;
+
+namespace Inspector {
+
+
+
+
+class ObjCInspectorCommandDomainBackendDispatcher final : public AlternateCommandDomainBackendDispatcher {
+public:
+    ObjCInspectorCommandDomainBackendDispatcher(id&lt;TestProtocolCommandDomainDomainHandler&gt; handler) { m_delegate = handler; }
+    virtual void commandWithEnumReturnValue(long requestId) override;
+private:
+    RetainPtr&lt;id&lt;TestProtocolCommandDomainDomainHandler&gt;&gt; m_delegate;
+};
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+    id&lt;TestProtocolCommandDomainDomainHandler&gt; _commandDomainHandler;
+    TestProtocolEventDomainDomainEventDispatcher *_eventDomainEventDispatcher;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [_commandDomainHandler release];
+    [_eventDomainEventDispatcher release];
+    [super dealloc];
+}
+
+- (void)setCommandDomainHandler:(id&lt;TestProtocolCommandDomainDomainHandler&gt;)handler
+{
+    if (handler == _commandDomainHandler)
+        return;
+
+    [_commandDomainHandler release];
+    _commandDomainHandler = [handler retain];
+
+    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorCommandDomainBackendDispatcher&gt;(handler);
+    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;CommandDomainBackendDispatcher, AlternateCommandDomainBackendDispatcher&gt;&gt;(ASCIILiteral(&quot;CommandDomain&quot;), *_controller, WTFMove(alternateDispatcher));
+    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
+}
+
+- (id&lt;TestProtocolCommandDomainDomainHandler&gt;)commandDomainHandler
+{
+    return _commandDomainHandler;
+}
+
+- (TestProtocolEventDomainDomainEventDispatcher *)eventDomainEventDispatcher
+{
+    if (!_eventDomainEventDispatcher)
+        _eventDomainEventDispatcher = [[TestProtocolEventDomainDomainEventDispatcher alloc] initWithController:_controller];
+    return _eventDomainEventDispatcher;
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@property (nonatomic, retain, setter=setCommandDomainHandler:) id&lt;TestProtocolCommandDomainDomainHandler&gt; commandDomainHandler;
+@property (nonatomic, readonly) TestProtocolEventDomainDomainEventDispatcher *eventDomainEventDispatcher;
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+
+
+void ObjCInspectorCommandDomainBackendDispatcher::commandWithEnumReturnValue(long requestId)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^(TestProtocolCommandDomainCommandWithEnumReturnValueReturnValue returnValue) {
+        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
+        resultObject-&gt;setString(ASCIILiteral(&quot;returnValue&quot;), toProtocolString(returnValue));
+        backendDispatcher()-&gt;sendResponse(requestId, WTFMove(resultObject));
+    };
+
+    [m_delegate commandWithEnumReturnValueWithErrorCallback:errorCallback successCallback:successCallback];
+}
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+
+
+
+
+@implementation TestProtocolEventDomainDomainEventDispatcher
+{
+    AugmentableInspectorController* _controller;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller;
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)eventWithEnumParameterWithParameter:(TestProtocolEventDomainEventWithEnumParameterParameter)parameter
+{
+    const FrontendRouter&amp; router = _controller-&gt;frontendRouter();
+
+    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
+    jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;EventDomain.eventWithEnumParameter&quot;));
+    Ref&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
+    paramsObject-&gt;setString(ASCIILiteral(&quot;parameter&quot;), toProtocolString(parameter));
+    jsonMessage-&gt;setObject(ASCIILiteral(&quot;params&quot;), WTFMove(paramsObject));
+    router.sendEvent(jsonMessage-&gt;toJSONString());
+}
+
+@end
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+
+
+
+typedef NS_ENUM(NSInteger, TestProtocolTypeDomainEnum) {
+    TestProtocolTypeDomainEnumShared,
+    TestProtocolTypeDomainEnumRed,
+    TestProtocolTypeDomainEnumGreen,
+    TestProtocolTypeDomainEnumBlue,
+};
+
+typedef NS_ENUM(NSInteger, TestProtocolCommandDomainCommandWithEnumReturnValueReturnValue) {
+    TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueShared,
+    TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueCyan,
+    TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueMagenta,
+    TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueYellow,
+};
+
+typedef NS_ENUM(NSInteger, TestProtocolEventDomainEventWithEnumParameterParameter) {
+    TestProtocolEventDomainEventWithEnumParameterParameterShared,
+    TestProtocolEventDomainEventWithEnumParameterParameterBlack,
+    TestProtocolEventDomainEventWithEnumParameterParameterWhite,
+};
+
+
+
+@protocol TestProtocolCommandDomainDomainHandler &lt;NSObject&gt;
+@required
+- (void)commandWithEnumReturnValueWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(TestProtocolCommandDomainCommandWithEnumReturnValueReturnValue returnValue))successCallback;
+@end
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolEventDomainDomainEventDispatcher : NSObject
+- (void)eventWithEnumParameterWithParameter:(TestProtocolEventDomainEventWithEnumParameterParameter)parameter;
+@end
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+@interface TestProtocolEventDomainDomainEventDispatcher (Private)
+- (instancetype)initWithController:(Inspector::AugmentableInspectorController*)controller;
+@end
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+
+inline String toProtocolString(TestProtocolTypeDomainEnum value)
+{
+    switch(value) {
+    case TestProtocolTypeDomainEnumShared:
+        return ASCIILiteral(&quot;shared&quot;);
+    case TestProtocolTypeDomainEnumRed:
+        return ASCIILiteral(&quot;red&quot;);
+    case TestProtocolTypeDomainEnumGreen:
+        return ASCIILiteral(&quot;green&quot;);
+    case TestProtocolTypeDomainEnumBlue:
+        return ASCIILiteral(&quot;blue&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolTypeDomainEnum fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;shared&quot;)
+        return TestProtocolTypeDomainEnumShared;
+    if (value == &quot;red&quot;)
+        return TestProtocolTypeDomainEnumRed;
+    if (value == &quot;green&quot;)
+        return TestProtocolTypeDomainEnumGreen;
+    if (value == &quot;blue&quot;)
+        return TestProtocolTypeDomainEnumBlue;
+    ASSERT_NOT_REACHED();
+    return TestProtocolTypeDomainEnumShared;
+}
+
+
+inline String toProtocolString(TestProtocolCommandDomainCommandWithEnumReturnValueReturnValue value)
+{
+    switch(value) {
+    case TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueShared:
+        return ASCIILiteral(&quot;shared&quot;);
+    case TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueCyan:
+        return ASCIILiteral(&quot;cyan&quot;);
+    case TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueMagenta:
+        return ASCIILiteral(&quot;magenta&quot;);
+    case TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueYellow:
+        return ASCIILiteral(&quot;yellow&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolCommandDomainCommandWithEnumReturnValueReturnValue fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;shared&quot;)
+        return TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueShared;
+    if (value == &quot;cyan&quot;)
+        return TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueCyan;
+    if (value == &quot;magenta&quot;)
+        return TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueMagenta;
+    if (value == &quot;yellow&quot;)
+        return TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueYellow;
+    ASSERT_NOT_REACHED();
+    return TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueShared;
+}
+
+
+inline String toProtocolString(TestProtocolEventDomainEventWithEnumParameterParameter value)
+{
+    switch(value) {
+    case TestProtocolEventDomainEventWithEnumParameterParameterShared:
+        return ASCIILiteral(&quot;shared&quot;);
+    case TestProtocolEventDomainEventWithEnumParameterParameterBlack:
+        return ASCIILiteral(&quot;black&quot;);
+    case TestProtocolEventDomainEventWithEnumParameterParameterWhite:
+        return ASCIILiteral(&quot;white&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolEventDomainEventWithEnumParameterParameter fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;shared&quot;)
+        return TestProtocolEventDomainEventWithEnumParameterParameterShared;
+    if (value == &quot;black&quot;)
+        return TestProtocolEventDomainEventWithEnumParameterParameterBlack;
+    if (value == &quot;white&quot;)
+        return TestProtocolEventDomainEventWithEnumParameterParameterWhite;
+    ASSERT_NOT_REACHED();
+    return TestProtocolEventDomainEventWithEnumParameterParameterShared;
+}
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+@interface TestProtocolTypeConversions (TypeDomainDomain)
+
++ (void)_parseTypeDomainEnum:(NSNumber **)outValue fromPayload:(id)payload;
+
+@end
+@interface TestProtocolTypeConversions (CommandDomainDomain)
+
+@end
+@interface TestProtocolTypeConversions (EventDomainDomain)
+
+@end
+
+@implementation TestProtocolTypeConversions (TypeDomainDomain)
+
++ (void)_parseTypeDomainEnum:(NSNumber **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSString class]);
+    *outValue = @(Inspector::fromProtocolString&lt;TestProtocolTypeDomainEnum&gt;(payload));
+}
+
+@end
+@implementation TestProtocolTypeConversions (CommandDomainDomain)
+
+@end
+@implementation TestProtocolTypeConversions (EventDomainDomain)
+
+@end
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from enum-values.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+
+
+
+
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedeventswithoptionalparametersjsonresultfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedeventswithoptionalparametersjsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/events-with-optional-parameters.json-result) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,1183 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+// Database.
+InspectorBackend.registerDatabaseDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, &quot;Database&quot;);
+InspectorBackend.registerEvent(&quot;Database.didExecuteOptionalParameters&quot;, [&quot;columnNames&quot;, &quot;notes&quot;, &quot;timestamp&quot;, &quot;values&quot;, &quot;payload&quot;, &quot;sqlError&quot;, &quot;screenColor&quot;, &quot;alternateColors&quot;, &quot;printColor&quot;]);
+InspectorBackend.registerEvent(&quot;Database.didExecuteNoOptionalParameters&quot;, [&quot;columnNames&quot;, &quot;notes&quot;, &quot;timestamp&quot;, &quot;values&quot;, &quot;payload&quot;, &quot;sqlError&quot;, &quot;screenColor&quot;, &quot;alternateColors&quot;, &quot;printColor&quot;]);
+InspectorBackend.activateDomain(&quot;Database&quot;);
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+class DatabaseFrontendDispatcher {
+public:
+    DatabaseFrontendDispatcher(FrontendRouter&amp; frontendRouter) : m_frontendRouter(frontendRouter) { }
+    void didExecuteOptionalParameters(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, const String* const notes, const double* const timestamp, RefPtr&lt;Inspector::InspectorObject&gt; values, RefPtr&lt;Inspector::InspectorValue&gt; payload, RefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, const Inspector::Protocol::Database::PrimaryColors* const screenColor, RefPtr&lt;Inspector::Protocol::Database::ColorList&gt; alternateColors, const String* const printColor);
+    void didExecuteNoOptionalParameters(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, const String&amp; notes, double timestamp, RefPtr&lt;Inspector::InspectorObject&gt; values, RefPtr&lt;Inspector::InspectorValue&gt; payload, RefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, const Inspector::Protocol::Database::PrimaryColors&amp; screenColor, RefPtr&lt;Inspector::Protocol::Database::ColorList&gt; alternateColors, const String&amp; printColor);
+private:
+    FrontendRouter&amp; m_frontendRouter;
+};
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+void DatabaseFrontendDispatcher::didExecuteOptionalParameters(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, const String* const notes, const double* const timestamp, RefPtr&lt;Inspector::InspectorObject&gt; values, RefPtr&lt;Inspector::InspectorValue&gt; payload, RefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, const Inspector::Protocol::Database::PrimaryColors* const screenColor, RefPtr&lt;Inspector::Protocol::Database::ColorList&gt; alternateColors, const String* const printColor)
+{
+    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
+    jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Database.didExecuteOptionalParameters&quot;));
+    Ref&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
+    if (columnNames)
+        paramsObject-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), columnNames);
+    if (notes)
+        paramsObject-&gt;setString(ASCIILiteral(&quot;notes&quot;), *notes);
+    if (timestamp)
+        paramsObject-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), *timestamp);
+    if (values)
+        paramsObject-&gt;setObject(ASCIILiteral(&quot;values&quot;), values);
+    if (payload)
+        paramsObject-&gt;setValue(ASCIILiteral(&quot;payload&quot;), *payload);
+    if (sqlError)
+        paramsObject-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), sqlError);
+    if (screenColor)
+        paramsObject-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), *screenColor);
+    if (alternateColors)
+        paramsObject-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), alternateColors);
+    if (printColor)
+        paramsObject-&gt;setString(ASCIILiteral(&quot;printColor&quot;), *printColor);
+    jsonMessage-&gt;setObject(ASCIILiteral(&quot;params&quot;), WTFMove(paramsObject));
+
+    m_frontendRouter.sendEvent(jsonMessage-&gt;toJSONString());
+}
+
+void DatabaseFrontendDispatcher::didExecuteNoOptionalParameters(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; columnNames, const String&amp; notes, double timestamp, RefPtr&lt;Inspector::InspectorObject&gt; values, RefPtr&lt;Inspector::InspectorValue&gt; payload, RefPtr&lt;Inspector::Protocol::Database::Error&gt; sqlError, const Inspector::Protocol::Database::PrimaryColors&amp; screenColor, RefPtr&lt;Inspector::Protocol::Database::ColorList&gt; alternateColors, const String&amp; printColor)
+{
+    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
+    jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Database.didExecuteNoOptionalParameters&quot;));
+    Ref&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
+    paramsObject-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), columnNames);
+    paramsObject-&gt;setString(ASCIILiteral(&quot;notes&quot;), notes);
+    paramsObject-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), timestamp);
+    paramsObject-&gt;setObject(ASCIILiteral(&quot;values&quot;), values);
+    paramsObject-&gt;setValue(ASCIILiteral(&quot;payload&quot;), payload);
+    paramsObject-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), sqlError);
+    paramsObject-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), screenColor);
+    paramsObject-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), alternateColors);
+    paramsObject-&gt;setString(ASCIILiteral(&quot;printColor&quot;), printColor);
+    jsonMessage-&gt;setObject(ASCIILiteral(&quot;params&quot;), WTFMove(paramsObject));
+
+    m_frontendRouter.sendEvent(jsonMessage-&gt;toJSONString());
+}
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+// Forward declarations.
+namespace Database {
+class Error;
+} // Database
+// End of forward declarations.
+
+
+// Typedefs.
+namespace Database {
+/* Unique identifier of Database object. */
+typedef String DatabaseId;
+typedef String PrimaryColors;
+typedef Inspector::Protocol::Array&lt;Inspector::Protocol::Database::PrimaryColors&gt; ColorList;
+} // Database
+// End of typedefs.
+
+namespace Database {
+/* Database error. */
+class Error : public Inspector::InspectorObjectBase {
+public:
+    enum {
+        NoFieldsSet = 0,
+        MessageSet = 1 &lt;&lt; 0,
+        CodeSet = 1 &lt;&lt; 1,
+        AllFieldsSet = (MessageSet | CodeSet)
+    };
+
+    template&lt;int STATE&gt;
+    class Builder {
+    private:
+        RefPtr&lt;InspectorObject&gt; m_result;
+
+        template&lt;int STEP&gt; Builder&lt;STATE | STEP&gt;&amp; castState()
+        {
+            return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
+        }
+
+        Builder(Ref&lt;/*Error*/InspectorObject&gt;&amp;&amp; object)
+            : m_result(WTFMove(object))
+        {
+            COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
+        }
+        friend class Error;
+    public:
+
+        Builder&lt;STATE | MessageSet&gt;&amp; setMessage(const String&amp; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; MessageSet), property_message_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;message&quot;), value);
+            return castState&lt;MessageSet&gt;();
+        }
+
+        Builder&lt;STATE | CodeSet&gt;&amp; setCode(int value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; CodeSet), property_code_already_set);
+            m_result-&gt;setInteger(ASCIILiteral(&quot;code&quot;), value);
+            return castState&lt;CodeSet&gt;();
+        }
+
+        Ref&lt;Error&gt; release()
+        {
+            COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
+            COMPILE_ASSERT(sizeof(Error) == sizeof(InspectorObject), cannot_cast);
+
+            Ref&lt;InspectorObject&gt; result = m_result.releaseNonNull();
+            return WTFMove(*reinterpret_cast&lt;Ref&lt;Error&gt;*&gt;(&amp;result));
+        }
+    };
+
+    /*
+     * Synthetic constructor:
+     * Ref&lt;Error&gt; result = Error::create()
+     *     .setMessage(...)
+     *     .setCode(...)
+     *     .release();
+     */
+    static Builder&lt;NoFieldsSet&gt; create()
+    {
+        return Builder&lt;NoFieldsSet&gt;(InspectorObject::create());
+    }
+};
+
+} // Database
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+
+
+namespace Inspector {
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+    TestProtocolDatabaseDomainEventDispatcher *_databaseEventDispatcher;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [_databaseEventDispatcher release];
+    [super dealloc];
+}
+
+- (TestProtocolDatabaseDomainEventDispatcher *)databaseEventDispatcher
+{
+    if (!_databaseEventDispatcher)
+        _databaseEventDispatcher = [[TestProtocolDatabaseDomainEventDispatcher alloc] initWithController:_controller];
+    return _databaseEventDispatcher;
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@property (nonatomic, readonly) TestProtocolDatabaseDomainEventDispatcher *databaseEventDispatcher;
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolDatabaseDomainEventDispatcher
+{
+    AugmentableInspectorController* _controller;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller;
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)didExecuteOptionalParametersWithColumnNames:(NSArray/*&lt;NSString&gt;*/ **)columnNames notes:(NSString **)notes timestamp:(double *)timestamp values:(RWIProtocolJSONObject **)values payload:(RWIProtocolJSONObject **)payload sqlError:(TestProtocolDatabaseError **)sqlError screenColor:(NSString **)screenColor alternateColors:(NSArray/*&lt;NSString&gt;*/ **)alternateColors printColor:(NSString **)printColor
+{
+    const FrontendRouter&amp; router = _controller-&gt;frontendRouter();
+
+    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(columnNames, @&quot;columnNames&quot;);
+    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(notes, @&quot;notes&quot;);
+    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(values, @&quot;values&quot;);
+    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(payload, @&quot;payload&quot;);
+    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(sqlError, @&quot;sqlError&quot;);
+    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(screenColor, @&quot;screenColor&quot;);
+    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(alternateColors, @&quot;alternateColors&quot;);
+    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(printColor, @&quot;printColor&quot;);
+
+    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
+    jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Database.didExecuteOptionalParameters&quot;));
+    Ref&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
+    if (columnNames)
+        paramsObject-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), inspectorStringArray((*columnNames)));
+    if (notes)
+        paramsObject-&gt;setString(ASCIILiteral(&quot;notes&quot;), (*notes));
+    if (timestamp)
+        paramsObject-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), (*timestamp));
+    if (values)
+        paramsObject-&gt;setObject(ASCIILiteral(&quot;values&quot;), [(*values) toInspectorObject]);
+    if (payload)
+        paramsObject-&gt;setValue(ASCIILiteral(&quot;payload&quot;), [(*payload) toInspectorObject]);
+    if (sqlError)
+        paramsObject-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), [(*sqlError) toInspectorObject]);
+    if (screenColor)
+        paramsObject-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), (*screenColor));
+    if (alternateColors)
+        paramsObject-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), inspectorStringArray((*alternateColors)));
+    if (printColor)
+        paramsObject-&gt;setString(ASCIILiteral(&quot;printColor&quot;), (*printColor));
+    jsonMessage-&gt;setObject(ASCIILiteral(&quot;params&quot;), WTFMove(paramsObject));
+    router.sendEvent(jsonMessage-&gt;toJSONString());
+}
+
+- (void)didExecuteNoOptionalParametersWithColumnNames:(NSArray/*&lt;NSString&gt;*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload sqlError:(TestProtocolDatabaseError *)sqlError screenColor:(NSString *)screenColor alternateColors:(NSArray/*&lt;NSString&gt;*/ *)alternateColors printColor:(NSString *)printColor
+{
+    const FrontendRouter&amp; router = _controller-&gt;frontendRouter();
+
+    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(columnNames, @&quot;columnNames&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(notes, @&quot;notes&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(values, @&quot;values&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(payload, @&quot;payload&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(sqlError, @&quot;sqlError&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(screenColor, @&quot;screenColor&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(alternateColors, @&quot;alternateColors&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(printColor, @&quot;printColor&quot;);
+
+    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
+    jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Database.didExecuteNoOptionalParameters&quot;));
+    Ref&lt;InspectorObject&gt; paramsObject = InspectorObject::create();
+    paramsObject-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), inspectorStringArray(columnNames));
+    paramsObject-&gt;setString(ASCIILiteral(&quot;notes&quot;), notes);
+    paramsObject-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), timestamp);
+    paramsObject-&gt;setObject(ASCIILiteral(&quot;values&quot;), [values toInspectorObject]);
+    paramsObject-&gt;setValue(ASCIILiteral(&quot;payload&quot;), [payload toInspectorObject]);
+    paramsObject-&gt;setObject(ASCIILiteral(&quot;sqlError&quot;), [sqlError toInspectorObject]);
+    paramsObject-&gt;setString(ASCIILiteral(&quot;screenColor&quot;), screenColor);
+    paramsObject-&gt;setArray(ASCIILiteral(&quot;alternateColors&quot;), inspectorStringArray(alternateColors));
+    paramsObject-&gt;setString(ASCIILiteral(&quot;printColor&quot;), printColor);
+    jsonMessage-&gt;setObject(ASCIILiteral(&quot;params&quot;), WTFMove(paramsObject));
+    router.sendEvent(jsonMessage-&gt;toJSONString());
+}
+
+@end
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+@class TestProtocolDatabaseError;
+
+
+
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolDatabaseError : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+- (instancetype)initWithMessage:(NSString *)message code:(int)code;
+/* required */ @property (nonatomic, copy) NSString *message;
+/* required */ @property (nonatomic, assign) int code;
+@end
+
+
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolDatabaseDomainEventDispatcher : NSObject
+- (void)didExecuteOptionalParametersWithColumnNames:(NSArray/*&lt;NSString&gt;*/ **)columnNames notes:(NSString **)notes timestamp:(double *)timestamp values:(RWIProtocolJSONObject **)values payload:(RWIProtocolJSONObject **)payload sqlError:(TestProtocolDatabaseError **)sqlError screenColor:(NSString **)screenColor alternateColors:(NSArray/*&lt;NSString&gt;*/ **)alternateColors printColor:(NSString **)printColor;
+- (void)didExecuteNoOptionalParametersWithColumnNames:(NSArray/*&lt;NSString&gt;*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload sqlError:(TestProtocolDatabaseError *)sqlError screenColor:(NSString *)screenColor alternateColors:(NSArray/*&lt;NSString&gt;*/ *)alternateColors printColor:(NSString *)printColor;
+@end
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+@interface TestProtocolDatabaseDomainEventDispatcher (Private)
+- (instancetype)initWithController:(Inspector::AugmentableInspectorController*)controller;
+@end
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+@interface TestProtocolTypeConversions (DatabaseDomain)
+
++ (void)_parseDatabaseId:(NSString **)outValue fromPayload:(id)payload;
++ (void)_parsePrimaryColors:(NSString **)outValue fromPayload:(id)payload;
++ (void)_parseColorList:(NSArray/*&lt;NSString&gt;*/ **)outValue fromPayload:(id)payload;
++ (void)_parseError:(TestProtocolDatabaseError **)outValue fromPayload:(id)payload;
+
+@end
+
+@implementation TestProtocolTypeConversions (DatabaseDomain)
+
++ (void)_parseDatabaseId:(NSString **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSString class]);
+    *outValue = (NSString *)payload;
+}
+
++ (void)_parsePrimaryColors:(NSString **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSString class]);
+    *outValue = (NSString *)payload;
+}
+
++ (void)_parseColorList:(NSArray/*&lt;NSString&gt;*/ **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSArray/*&lt;NSString&gt;*/ class]);
+    *outValue = (NSArray/*&lt;NSString&gt;*/ *)payload;
+}
+
++ (void)_parseError:(TestProtocolDatabaseError **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolDatabaseError alloc] initWithPayload:payload];
+}
+
+@end
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+@implementation TestProtocolDatabaseError
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;message&quot;], @&quot;message&quot;);
+    self.message = payload[@&quot;message&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;code&quot;], @&quot;code&quot;);
+    self.code = [payload[@&quot;code&quot;] integerValue];
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+- (instancetype)initWithMessage:(NSString *)message code:(int)code
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(message, @&quot;message&quot;);
+
+    self.message = message;
+    self.code = code;
+
+    return self;
+}
+
+- (void)setMessage:(NSString *)message
+{
+    [super setString:message forKey:@&quot;message&quot;];
+}
+
+- (NSString *)message
+{
+    return [super stringForKey:@&quot;message&quot;];
+}
+
+- (void)setCode:(int)code
+{
+    [super setInteger:code forKey:@&quot;code&quot;];
+}
+
+- (int)code
+{
+    return [super integerForKey:@&quot;code&quot;];
+}
+
+@end
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailondomainavailabilityjsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailondomainavailabilityjsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-availability.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-domain-availability.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-availability.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-availability.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: Malformed domain specification: availability is an unsupported string. Was: &quot;webb&quot;, Allowed values: web
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonduplicatecommandcallparameternamesjsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailonduplicatecommandcallparameternamesjsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-call-parameter-names.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-duplicate-command-call-parameter-names.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-call-parameter-names.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-call-parameter-names.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: Malformed domain specification: call parameter list for command processPoints has duplicate parameter names
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonduplicatecommandreturnparameternamesjsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailonduplicatecommandreturnparameternamesjsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-return-parameter-names.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-duplicate-command-return-parameter-names.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-return-parameter-names.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-return-parameter-names.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: Malformed domain specification: return parameter list for command processPoints has duplicate parameter names
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonduplicateeventparameternamesjsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailonduplicateeventparameternamesjsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-event-parameter-names.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-duplicate-event-parameter-names.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-event-parameter-names.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-event-parameter-names.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: Malformed domain specification: parameter list for event processedPoints has duplicate parameter names
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonduplicatetypedeclarationsjsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailonduplicatetypedeclarationsjsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-declarations.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-duplicate-type-declarations.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-declarations.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-declarations.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: Duplicate type declaration: Runtime.RemoteObjectId
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonduplicatetypemembernamesjsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailonduplicatetypemembernamesjsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-member-names.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-duplicate-type-member-names.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-member-names.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-member-names.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: Malformed domain specification: type declaration for Point has duplicate member names
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonenumwithnovaluesjsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailonenumwithnovaluesjsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-enum-with-no-values.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-enum-with-no-values.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-enum-with-no-values.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-enum-with-no-values.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: Type reference with enum values must have at least one enum value.
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonnumbertypedoptionalparameterflagjsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailonnumbertypedoptionalparameterflagjsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-parameter-flag.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-number-typed-optional-parameter-flag.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-parameter-flag.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-parameter-flag.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: The 'optional' flag for a parameter must be a boolean literal.
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonnumbertypedoptionaltypememberjsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailonnumbertypedoptionaltypememberjsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-type-member.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-number-typed-optional-type-member.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-type-member.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-type-member.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: The 'optional' flag for a type member must be a boolean literal.
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonstringtypedoptionalparameterflagjsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailonstringtypedoptionalparameterflagjsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-parameter-flag.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-string-typed-optional-parameter-flag.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-parameter-flag.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-parameter-flag.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: The 'optional' flag for a parameter must be a boolean literal.
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonstringtypedoptionaltypememberjsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailonstringtypedoptionaltypememberjsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-type-member.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-string-typed-optional-type-member.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-type-member.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-type-member.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: The 'optional' flag for a type member must be a boolean literal.
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailontypedeclarationusingtypereferencejsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailontypedeclarationusingtypereferencejsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-declaration-using-type-reference.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-type-declaration-using-type-reference.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-declaration-using-type-reference.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-declaration-using-type-reference.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: Type reference cannot have both 'type' and '$ref' keys.
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailontypereferenceasprimitivetypejsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailontypereferenceasprimitivetypejsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-reference-as-primitive-type.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-type-reference-as-primitive-type.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-reference-as-primitive-type.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-reference-as-primitive-type.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: Type reference 'DatabaseId' is not a primitive type. Allowed values: integer, number, string, boolean, enum, object, array, any
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailontypewithlowercasenamejsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailontypewithlowercasenamejsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-with-lowercase-name.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-type-with-lowercase-name.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-with-lowercase-name.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-with-lowercase-name.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: Types must begin with an uppercase character.
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonunknowntypereferenceintypedeclarationjsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailonunknowntypereferenceintypedeclarationjsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-declaration.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-unknown-type-reference-in-type-declaration.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-declaration.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-declaration.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: Type reference 'dragon' is not a primitive type. Allowed values: integer, number, string, boolean, enum, object, array, any
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailonunknowntypereferenceintypememberjsonerrorfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedfailonunknowntypereferenceintypememberjsonerror"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-member.json-error (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/fail-on-unknown-type-reference-in-type-member.json-error) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-member.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-member.json-error        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: Lookup failed for type reference: Color (referenced from domain: Fantasy)
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedgeneratedomainswithfeatureguardsjsonresultfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedgeneratedomainswithfeatureguardsjsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,1231 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+// Network1.
+InspectorBackend.registerCommand(&quot;Network1.loadResource&quot;, [], []);
+InspectorBackend.activateDomain(&quot;Network1&quot;);
+
+// Network3.
+InspectorBackend.registerNetwork3Dispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, &quot;Network3&quot;);
+InspectorBackend.registerEvent(&quot;Network3.resourceLoaded&quot;, []);
+InspectorBackend.activateDomain(&quot;Network3&quot;);
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+#if PLATFORM(WEB_COMMANDS)
+class AlternateNetwork1BackendDispatcher : public AlternateBackendDispatcher {
+public:
+    virtual ~AlternateNetwork1BackendDispatcher() { }
+    virtual void loadResource(long callId) = 0;
+};
+#endif // PLATFORM(WEB_COMMANDS)
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#if PLATFORM(WEB_COMMANDS)
+class AlternateNetwork1BackendDispatcher;
+#endif // PLATFORM(WEB_COMMANDS)
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#if PLATFORM(WEB_COMMANDS)
+class Network1BackendDispatcherHandler {
+public:
+    virtual void loadResource(ErrorString&amp;) = 0;
+protected:
+    virtual ~Network1BackendDispatcherHandler();
+};
+#endif // PLATFORM(WEB_COMMANDS)
+
+#if PLATFORM(WEB_COMMANDS)
+class Network1BackendDispatcher final : public SupplementalBackendDispatcher {
+public:
+    static Ref&lt;Network1BackendDispatcher&gt; create(BackendDispatcher&amp;, Network1BackendDispatcherHandler*);
+    void dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message) override;
+private:
+    void loadResource(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+public:
+    void setAlternateDispatcher(AlternateNetwork1BackendDispatcher* alternateDispatcher) { m_alternateDispatcher = alternateDispatcher; }
+private:
+    AlternateNetwork1BackendDispatcher* m_alternateDispatcher { nullptr };
+#endif
+private:
+    Network1BackendDispatcher(BackendDispatcher&amp;, Network1BackendDispatcherHandler*);
+    Network1BackendDispatcherHandler* m_agent { nullptr };
+};
+#endif // PLATFORM(WEB_COMMANDS)
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+#if PLATFORM(WEB_COMMANDS)
+Network1BackendDispatcherHandler::~Network1BackendDispatcherHandler() { }
+#endif // PLATFORM(WEB_COMMANDS)
+
+#if PLATFORM(WEB_COMMANDS)
+Ref&lt;Network1BackendDispatcher&gt; Network1BackendDispatcher::create(BackendDispatcher&amp; backendDispatcher, Network1BackendDispatcherHandler* agent)
+{
+    return adoptRef(*new Network1BackendDispatcher(backendDispatcher, agent));
+}
+
+Network1BackendDispatcher::Network1BackendDispatcher(BackendDispatcher&amp; backendDispatcher, Network1BackendDispatcherHandler* agent)
+    : SupplementalBackendDispatcher(backendDispatcher)
+    , m_agent(agent)
+{
+    m_backendDispatcher-&gt;registerDispatcherForDomain(ASCIILiteral(&quot;Network1&quot;), this);
+}
+
+void Network1BackendDispatcher::dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
+{
+    Ref&lt;Network1BackendDispatcher&gt; protect(*this);
+
+    RefPtr&lt;InspectorObject&gt; parameters;
+    message-&gt;getObject(ASCIILiteral(&quot;params&quot;), parameters);
+
+    if (method == &quot;loadResource&quot;)
+        loadResource(requestId, WTFMove(parameters));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::MethodNotFound, makeString('\'', &quot;Network1&quot;, '.', method, &quot;' was not found&quot;));
+}
+
+void Network1BackendDispatcher::loadResource(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp;)
+{
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;loadResource(requestId);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    m_agent-&gt;loadResource(error);
+
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+#endif // PLATFORM(WEB_COMMANDS)
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+#if PLATFORM(WEB_EVENTS)
+class Network3FrontendDispatcher {
+public:
+    Network3FrontendDispatcher(FrontendRouter&amp; frontendRouter) : m_frontendRouter(frontendRouter) { }
+    void resourceLoaded();
+private:
+    FrontendRouter&amp; m_frontendRouter;
+};
+#endif // PLATFORM(WEB_EVENTS)
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+#if PLATFORM(WEB_EVENTS)
+void Network3FrontendDispatcher::resourceLoaded()
+{
+    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
+    jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Network3.resourceLoaded&quot;));
+
+    m_frontendRouter.sendEvent(jsonMessage-&gt;toJSONString());
+}
+#endif // PLATFORM(WEB_EVENTS)
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+// Forward declarations.
+#if PLATFORM(WEB_TYPES)
+namespace Network2 {
+class NetworkError;
+} // Network2
+#endif // PLATFORM(WEB_TYPES)
+// End of forward declarations.
+
+
+
+
+#if PLATFORM(WEB_TYPES)
+namespace Network2 {
+class NetworkError : public Inspector::InspectorObjectBase {
+public:
+    enum {
+        NoFieldsSet = 0,
+        MessageSet = 1 &lt;&lt; 0,
+        CodeSet = 1 &lt;&lt; 1,
+        AllFieldsSet = (MessageSet | CodeSet)
+    };
+
+    template&lt;int STATE&gt;
+    class Builder {
+    private:
+        RefPtr&lt;InspectorObject&gt; m_result;
+
+        template&lt;int STEP&gt; Builder&lt;STATE | STEP&gt;&amp; castState()
+        {
+            return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
+        }
+
+        Builder(Ref&lt;/*NetworkError*/InspectorObject&gt;&amp;&amp; object)
+            : m_result(WTFMove(object))
+        {
+            COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
+        }
+        friend class NetworkError;
+    public:
+
+        Builder&lt;STATE | MessageSet&gt;&amp; setMessage(const String&amp; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; MessageSet), property_message_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;message&quot;), value);
+            return castState&lt;MessageSet&gt;();
+        }
+
+        Builder&lt;STATE | CodeSet&gt;&amp; setCode(int value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; CodeSet), property_code_already_set);
+            m_result-&gt;setInteger(ASCIILiteral(&quot;code&quot;), value);
+            return castState&lt;CodeSet&gt;();
+        }
+
+        Ref&lt;NetworkError&gt; release()
+        {
+            COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
+            COMPILE_ASSERT(sizeof(NetworkError) == sizeof(InspectorObject), cannot_cast);
+
+            Ref&lt;InspectorObject&gt; result = m_result.releaseNonNull();
+            return WTFMove(*reinterpret_cast&lt;Ref&lt;NetworkError&gt;*&gt;(&amp;result));
+        }
+    };
+
+    /*
+     * Synthetic constructor:
+     * Ref&lt;NetworkError&gt; result = NetworkError::create()
+     *     .setMessage(...)
+     *     .setCode(...)
+     *     .release();
+     */
+    static Builder&lt;NoFieldsSet&gt; create()
+    {
+        return Builder&lt;NoFieldsSet&gt;(InspectorObject::create());
+    }
+};
+
+} // Network2
+#endif // PLATFORM(WEB_TYPES)
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+@protocol TestProtocolNetwork1DomainHandler;
+
+namespace Inspector {
+
+
+#if PLATFORM(WEB_COMMANDS)
+class ObjCInspectorNetwork1BackendDispatcher final : public AlternateNetwork1BackendDispatcher {
+public:
+    ObjCInspectorNetwork1BackendDispatcher(id&lt;TestProtocolNetwork1DomainHandler&gt; handler) { m_delegate = handler; }
+    virtual void loadResource(long requestId) override;
+private:
+    RetainPtr&lt;id&lt;TestProtocolNetwork1DomainHandler&gt;&gt; m_delegate;
+};
+#endif // PLATFORM(WEB_COMMANDS)
+
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+    id&lt;TestProtocolNetwork1DomainHandler&gt; _network1Handler;
+    TestProtocolNetwork3DomainEventDispatcher *_network3EventDispatcher;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [_network1Handler release];
+    [_network3EventDispatcher release];
+    [super dealloc];
+}
+
+- (void)setNetwork1Handler:(id&lt;TestProtocolNetwork1DomainHandler&gt;)handler
+{
+    if (handler == _network1Handler)
+        return;
+
+    [_network1Handler release];
+    _network1Handler = [handler retain];
+
+    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorNetwork1BackendDispatcher&gt;(handler);
+    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;Network1BackendDispatcher, AlternateNetwork1BackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Network1&quot;), *_controller, WTFMove(alternateDispatcher));
+    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
+}
+
+- (id&lt;TestProtocolNetwork1DomainHandler&gt;)network1Handler
+{
+    return _network1Handler;
+}
+
+- (TestProtocolNetwork3DomainEventDispatcher *)network3EventDispatcher
+{
+    if (!_network3EventDispatcher)
+        _network3EventDispatcher = [[TestProtocolNetwork3DomainEventDispatcher alloc] initWithController:_controller];
+    return _network3EventDispatcher;
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@property (nonatomic, retain, setter=setNetwork1Handler:) id&lt;TestProtocolNetwork1DomainHandler&gt; network1Handler;
+@property (nonatomic, readonly) TestProtocolNetwork3DomainEventDispatcher *network3EventDispatcher;
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+#if PLATFORM(WEB_COMMANDS)
+void ObjCInspectorNetwork1BackendDispatcher::loadResource(long requestId)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResourceWithErrorCallback:errorCallback successCallback:successCallback];
+}
+
+#endif // PLATFORM(WEB_COMMANDS)
+
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+
+
+
+
+@implementation TestProtocolNetwork3DomainEventDispatcher
+{
+    AugmentableInspectorController* _controller;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller;
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)resourceLoaded
+{
+    const FrontendRouter&amp; router = _controller-&gt;frontendRouter();
+
+    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
+    jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Network3.resourceLoaded&quot;));
+    router.sendEvent(jsonMessage-&gt;toJSONString());
+}
+
+@end
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+@class TestProtocolNetwork2NetworkError;
+
+
+
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolNetwork2NetworkError : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+- (instancetype)initWithMessage:(NSString *)message code:(int)code;
+/* required */ @property (nonatomic, copy) NSString *message;
+/* required */ @property (nonatomic, assign) int code;
+@end
+
+@protocol TestProtocolNetwork1DomainHandler &lt;NSObject&gt;
+@required
+- (void)loadResourceWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)())successCallback;
+@end
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolNetwork3DomainEventDispatcher : NSObject
+- (void)resourceLoaded;
+@end
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+@interface TestProtocolNetwork3DomainEventDispatcher (Private)
+- (instancetype)initWithController:(Inspector::AugmentableInspectorController*)controller;
+@end
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+
+
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+@interface TestProtocolTypeConversions (Network1Domain)
+
+@end
+@interface TestProtocolTypeConversions (Network2Domain)
+
++ (void)_parseNetworkError:(TestProtocolNetwork2NetworkError **)outValue fromPayload:(id)payload;
+
+@end
+@interface TestProtocolTypeConversions (Network3Domain)
+
+@end
+
+@implementation TestProtocolTypeConversions (Network1Domain)
+
+@end
+@implementation TestProtocolTypeConversions (Network2Domain)
+
++ (void)_parseNetworkError:(TestProtocolNetwork2NetworkError **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolNetwork2NetworkError alloc] initWithPayload:payload];
+}
+
+@end
+@implementation TestProtocolTypeConversions (Network3Domain)
+
+@end
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+
+
+@implementation TestProtocolNetwork2NetworkError
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;message&quot;], @&quot;message&quot;);
+    self.message = payload[@&quot;message&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;code&quot;], @&quot;code&quot;);
+    self.code = [payload[@&quot;code&quot;] integerValue];
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+- (instancetype)initWithMessage:(NSString *)message code:(int)code
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(message, @&quot;message&quot;);
+
+    self.message = message;
+    self.code = code;
+
+    return self;
+}
+
+- (void)setMessage:(NSString *)message
+{
+    [super setString:message forKey:@&quot;message&quot;];
+}
+
+- (NSString *)message
+{
+    return [super stringForKey:@&quot;message&quot;];
+}
+
+- (void)setCode:(int)code
+{
+    [super setInteger:code forKey:@&quot;code&quot;];
+}
+
+- (int)code
+{
+    return [super integerForKey:@&quot;code&quot;];
+}
+
+@end
+
+
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedsametypeiddifferentdomainjsonresultfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedsametypeiddifferentdomainjsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/same-type-id-different-domain.json-result) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,891 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+
+
+// Typedefs.
+namespace Runtime {
+/* Unique object identifier. */
+typedef String RemoteObjectId;
+} // Runtime
+
+namespace Runtime2 {
+/* Unique object identifier. */
+typedef String RemoteObjectId;
+} // Runtime2
+// End of typedefs.
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+
+
+namespace Inspector {
+
+
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [super dealloc];
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+
+
+
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+@interface TestProtocolTypeConversions (RuntimeDomain)
+
++ (void)_parseRemoteObjectId:(NSString **)outValue fromPayload:(id)payload;
+
+@end
+@interface TestProtocolTypeConversions (Runtime2Domain)
+
++ (void)_parseRemoteObjectId:(NSString **)outValue fromPayload:(id)payload;
+
+@end
+
+@implementation TestProtocolTypeConversions (RuntimeDomain)
+
++ (void)_parseRemoteObjectId:(NSString **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSString class]);
+    *outValue = (NSString *)payload;
+}
+
+@end
+@implementation TestProtocolTypeConversions (Runtime2Domain)
+
++ (void)_parseRemoteObjectId:(NSString **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSString class]);
+    *outValue = (NSString *)payload;
+}
+
+@end
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+
+
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedshadowedoptionaltypesettersjsonresultfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedshadowedoptionaltypesettersjsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,1093 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+// Forward declarations.
+namespace Runtime {
+class KeyPath;
+} // Runtime
+// End of forward declarations.
+
+
+
+
+namespace TestHelpers {
+
+String getEnumConstantValue(int code);
+
+template&lt;typename T&gt; String getEnumConstantValue(T enumValue)
+{
+    return getEnumConstantValue(static_cast&lt;int&gt;(enumValue));
+}
+
+} // namespace TestHelpers
+
+namespace Runtime {
+/* Key path. */
+class KeyPath : public Inspector::InspectorObjectBase {
+public:
+    // Named after property name 'type' while generating KeyPath.
+    enum class Type {
+        Null = 0,
+        String = 1,
+        Array = 2,
+    }; // enum class Type
+    enum {
+        NoFieldsSet = 0,
+        TypeSet = 1 &lt;&lt; 0,
+        AllFieldsSet = (TypeSet)
+    };
+
+    template&lt;int STATE&gt;
+    class Builder {
+    private:
+        RefPtr&lt;InspectorObject&gt; m_result;
+
+        template&lt;int STEP&gt; Builder&lt;STATE | STEP&gt;&amp; castState()
+        {
+            return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
+        }
+
+        Builder(Ref&lt;/*KeyPath*/InspectorObject&gt;&amp;&amp; object)
+            : m_result(WTFMove(object))
+        {
+            COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
+        }
+        friend class KeyPath;
+    public:
+
+        Builder&lt;STATE | TypeSet&gt;&amp; setType(Type value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; TypeSet), property_type_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;type&quot;), Inspector::Protocol::TestHelpers::getEnumConstantValue(value));
+            return castState&lt;TypeSet&gt;();
+        }
+
+        Ref&lt;KeyPath&gt; release()
+        {
+            COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
+            COMPILE_ASSERT(sizeof(KeyPath) == sizeof(InspectorObject), cannot_cast);
+
+            Ref&lt;InspectorObject&gt; result = m_result.releaseNonNull();
+            return WTFMove(*reinterpret_cast&lt;Ref&lt;KeyPath&gt;*&gt;(&amp;result));
+        }
+    };
+
+    /*
+     * Synthetic constructor:
+     * Ref&lt;KeyPath&gt; result = KeyPath::create()
+     *     .setType(...)
+     *     .release();
+     */
+    static Builder&lt;NoFieldsSet&gt; create()
+    {
+        return Builder&lt;NoFieldsSet&gt;(InspectorObject::create());
+    }
+
+    void setString(const String&amp; value)
+    {
+        InspectorObjectBase::setString(ASCIILiteral(&quot;string&quot;), value);
+    }
+
+    void setArray(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; value)
+    {
+        InspectorObjectBase::setArray(ASCIILiteral(&quot;array&quot;), WTFMove(value));
+    }
+};
+
+} // Runtime
+
+
+
+namespace TestHelpers {
+
+template&lt;typename ProtocolEnumType&gt;
+std::optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
+
+// Enums in the 'Runtime' Domain
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Runtime::KeyPath::Type&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::KeyPath::Type&gt;(const String&amp;);
+
+} // namespace TestHelpers
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+namespace TestHelpers {
+
+static const char* const enum_constant_values[] = {
+    &quot;null&quot;,
+    &quot;string&quot;,
+    &quot;array&quot;,
+};
+
+String getEnumConstantValue(int code) {
+    return enum_constant_values[code];
+}
+
+// Enums in the 'Runtime' Domain
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Runtime::KeyPath::Type&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::KeyPath::Type&gt;(const String&amp; protocolString)
+{
+    static const size_t constantValues[] = {
+        (size_t)Inspector::Protocol::Runtime::KeyPath::Type::Null,
+        (size_t)Inspector::Protocol::Runtime::KeyPath::Type::String,
+        (size_t)Inspector::Protocol::Runtime::KeyPath::Type::Array,
+    };
+    for (size_t i = 0; i &lt; 3; ++i)
+        if (protocolString == enum_constant_values[constantValues[i]])
+            return (Inspector::Protocol::Runtime::KeyPath::Type)constantValues[i];
+
+    return std::nullopt;
+}
+
+
+} // namespace TestHelpers
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+
+
+namespace Inspector {
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [super dealloc];
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+@class TestProtocolRuntimeKeyPath;
+
+
+typedef NS_ENUM(NSInteger, TestProtocolRuntimeKeyPathType) {
+    TestProtocolRuntimeKeyPathTypeNull,
+    TestProtocolRuntimeKeyPathTypeString,
+    TestProtocolRuntimeKeyPathTypeArray,
+};
+
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolRuntimeKeyPath : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+- (instancetype)initWithType:(TestProtocolRuntimeKeyPathType)type;
+/* required */ @property (nonatomic, assign) TestProtocolRuntimeKeyPathType type;
+/* optional */ @property (nonatomic, copy) NSString *string;
+/* optional */ @property (nonatomic, copy) NSArray/*&lt;NSString&gt;*/ *array;
+@end
+
+
+
+
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+
+inline String toProtocolString(TestProtocolRuntimeKeyPathType value)
+{
+    switch(value) {
+    case TestProtocolRuntimeKeyPathTypeNull:
+        return ASCIILiteral(&quot;null&quot;);
+    case TestProtocolRuntimeKeyPathTypeString:
+        return ASCIILiteral(&quot;string&quot;);
+    case TestProtocolRuntimeKeyPathTypeArray:
+        return ASCIILiteral(&quot;array&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolRuntimeKeyPathType fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;null&quot;)
+        return TestProtocolRuntimeKeyPathTypeNull;
+    if (value == &quot;string&quot;)
+        return TestProtocolRuntimeKeyPathTypeString;
+    if (value == &quot;array&quot;)
+        return TestProtocolRuntimeKeyPathTypeArray;
+    ASSERT_NOT_REACHED();
+    return TestProtocolRuntimeKeyPathTypeNull;
+}
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+@interface TestProtocolTypeConversions (RuntimeDomain)
+
++ (void)_parseKeyPath:(TestProtocolRuntimeKeyPath **)outValue fromPayload:(id)payload;
+
+@end
+
+@implementation TestProtocolTypeConversions (RuntimeDomain)
+
++ (void)_parseKeyPath:(TestProtocolRuntimeKeyPath **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolRuntimeKeyPath alloc] initWithPayload:payload];
+}
+
+@end
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+@implementation TestProtocolRuntimeKeyPath
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;type&quot;], @&quot;type&quot;);
+    self.type = fromProtocolString&lt;TestProtocolRuntimeKeyPathType&gt;(payload[@&quot;type&quot;]);
+
+    self.string = payload[@&quot;string&quot;];
+
+    self.array = objcArrayFromPayload&lt;NSString&gt;(payload[@&quot;array&quot;]);
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+- (instancetype)initWithType:(TestProtocolRuntimeKeyPathType)type
+{
+    if (!(self = [super init]))
+        return nil;
+
+    self.type = type;
+
+    return self;
+}
+
+- (void)setType:(TestProtocolRuntimeKeyPathType)type
+{
+    [super setString:toProtocolString(type) forKey:@&quot;type&quot;];
+}
+
+- (TestProtocolRuntimeKeyPathType)type
+{
+    return fromProtocolString&lt;TestProtocolRuntimeKeyPathType&gt;([super stringForKey:@&quot;type&quot;]);
+}
+
+- (void)setString:(NSString *)string
+{
+    [super setString:string forKey:@&quot;string&quot;];
+}
+
+- (NSString *)string
+{
+    return [super stringForKey:@&quot;string&quot;];
+}
+
+- (void)setArray:(NSArray/*&lt;NSString&gt;*/ *)array
+{
+    [super setInspectorArray:inspectorStringArray(array) forKey:@&quot;array&quot;];
+}
+
+- (NSArray/*&lt;NSString&gt;*/ *)array
+{
+    return objcStringArray([super inspectorArrayForKey:@&quot;array&quot;]);
+}
+
+@end
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationaliasedprimitivetypejsonresultfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationaliasedprimitivetypejsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,862 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+
+
+// Typedefs.
+namespace Runtime {
+/* Unique object identifier. */
+typedef int RemoteObjectId;
+} // Runtime
+// End of typedefs.
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+
+
+namespace Inspector {
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [super dealloc];
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+@interface TestProtocolTypeConversions (RuntimeDomain)
+
++ (void)_parseRemoteObjectId:(NSNumber **)outValue fromPayload:(id)payload;
+
+@end
+
+@implementation TestProtocolTypeConversions (RuntimeDomain)
+
++ (void)_parseRemoteObjectId:(NSNumber **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSNumber class]);
+    *outValue = (NSNumber *)payload;
+}
+
+@end
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationarraytypejsonresultfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationarraytypejsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,1035 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+// Debugger.
+InspectorBackend.registerEnum(&quot;Debugger.Reason&quot;, {Died: &quot;Died&quot;, Fainted: &quot;Fainted&quot;, Hungry: &quot;Hungry&quot;});
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+// Forward declarations.
+namespace Debugger {
+enum class Reason;
+} // Debugger
+// End of forward declarations.
+
+
+// Typedefs.
+namespace Debugger {
+typedef int BreakpointId;
+} // Debugger
+
+namespace Runtime {
+typedef int ObjectId;
+typedef Inspector::Protocol::Array&lt;int&gt; LuckyNumbers;
+typedef Inspector::Protocol::Array&lt;String&gt; BabyNames;
+typedef Inspector::Protocol::Array&lt;Inspector::Protocol::Runtime::ObjectId&gt; NewObjects;
+typedef Inspector::Protocol::Array&lt;Inspector::Protocol::Debugger::BreakpointId&gt; OldObjects;
+typedef Inspector::Protocol::Array&lt;Inspector::Protocol::Debugger::Reason&gt; StopReasons;
+} // Runtime
+// End of typedefs.
+
+namespace TestHelpers {
+
+String getEnumConstantValue(int code);
+
+template&lt;typename T&gt; String getEnumConstantValue(T enumValue)
+{
+    return getEnumConstantValue(static_cast&lt;int&gt;(enumValue));
+}
+
+} // namespace TestHelpers
+
+namespace Debugger {
+/*  */
+enum class Reason {
+    Died = 0,
+    Fainted = 1,
+    Hungry = 2,
+}; // enum class Reason
+} // Debugger
+
+
+
+namespace TestHelpers {
+
+template&lt;typename ProtocolEnumType&gt;
+std::optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
+
+// Enums in the 'Debugger' Domain
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Debugger::Reason&gt; parseEnumValueFromString&lt;Inspector::Protocol::Debugger::Reason&gt;(const String&amp;);
+
+} // namespace TestHelpers
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+namespace TestHelpers {
+
+static const char* const enum_constant_values[] = {
+    &quot;Died&quot;,
+    &quot;Fainted&quot;,
+    &quot;Hungry&quot;,
+};
+
+String getEnumConstantValue(int code) {
+    return enum_constant_values[code];
+}
+
+// Enums in the 'Debugger' Domain
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Debugger::Reason&gt; parseEnumValueFromString&lt;Inspector::Protocol::Debugger::Reason&gt;(const String&amp; protocolString)
+{
+    static const size_t constantValues[] = {
+        (size_t)Inspector::Protocol::Debugger::Reason::Died,
+        (size_t)Inspector::Protocol::Debugger::Reason::Fainted,
+        (size_t)Inspector::Protocol::Debugger::Reason::Hungry,
+    };
+    for (size_t i = 0; i &lt; 3; ++i)
+        if (protocolString == enum_constant_values[constantValues[i]])
+            return (Inspector::Protocol::Debugger::Reason)constantValues[i];
+
+    return std::nullopt;
+}
+
+
+} // namespace TestHelpers
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+
+
+namespace Inspector {
+
+
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [super dealloc];
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+
+
+
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+
+
+
+typedef NS_ENUM(NSInteger, TestProtocolDebuggerReason) {
+    TestProtocolDebuggerReasonDied,
+    TestProtocolDebuggerReasonFainted,
+    TestProtocolDebuggerReasonHungry,
+};
+
+
+
+
+
+
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+
+inline String toProtocolString(TestProtocolDebuggerReason value)
+{
+    switch(value) {
+    case TestProtocolDebuggerReasonDied:
+        return ASCIILiteral(&quot;Died&quot;);
+    case TestProtocolDebuggerReasonFainted:
+        return ASCIILiteral(&quot;Fainted&quot;);
+    case TestProtocolDebuggerReasonHungry:
+        return ASCIILiteral(&quot;Hungry&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolDebuggerReason fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;Died&quot;)
+        return TestProtocolDebuggerReasonDied;
+    if (value == &quot;Fainted&quot;)
+        return TestProtocolDebuggerReasonFainted;
+    if (value == &quot;Hungry&quot;)
+        return TestProtocolDebuggerReasonHungry;
+    ASSERT_NOT_REACHED();
+    return TestProtocolDebuggerReasonDied;
+}
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+@interface TestProtocolTypeConversions (DebuggerDomain)
+
++ (void)_parseBreakpointId:(NSNumber **)outValue fromPayload:(id)payload;
++ (void)_parseReason:(NSNumber **)outValue fromPayload:(id)payload;
+
+@end
+@interface TestProtocolTypeConversions (RuntimeDomain)
+
++ (void)_parseObjectId:(NSNumber **)outValue fromPayload:(id)payload;
++ (void)_parseLuckyNumbers:(NSArray/*&lt;NSNumber&gt;*/ **)outValue fromPayload:(id)payload;
++ (void)_parseBabyNames:(NSArray/*&lt;NSString&gt;*/ **)outValue fromPayload:(id)payload;
++ (void)_parseNewObjects:(NSArray/*&lt;NSNumber&gt;*/ **)outValue fromPayload:(id)payload;
++ (void)_parseOldObjects:(NSArray/*&lt;NSNumber&gt;*/ **)outValue fromPayload:(id)payload;
++ (void)_parseStopReasons:(NSArray/*&lt;NSString&gt;*/ **)outValue fromPayload:(id)payload;
+
+@end
+
+@implementation TestProtocolTypeConversions (DebuggerDomain)
+
++ (void)_parseBreakpointId:(NSNumber **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSNumber class]);
+    *outValue = (NSNumber *)payload;
+}
+
++ (void)_parseReason:(NSNumber **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSString class]);
+    *outValue = @(Inspector::fromProtocolString&lt;TestProtocolDebuggerReason&gt;(payload));
+}
+
+@end
+@implementation TestProtocolTypeConversions (RuntimeDomain)
+
++ (void)_parseObjectId:(NSNumber **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSNumber class]);
+    *outValue = (NSNumber *)payload;
+}
+
++ (void)_parseLuckyNumbers:(NSArray/*&lt;NSNumber&gt;*/ **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSArray/*&lt;NSNumber&gt;*/ class]);
+    *outValue = (NSArray/*&lt;NSNumber&gt;*/ *)payload;
+}
+
++ (void)_parseBabyNames:(NSArray/*&lt;NSString&gt;*/ **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSArray/*&lt;NSString&gt;*/ class]);
+    *outValue = (NSArray/*&lt;NSString&gt;*/ *)payload;
+}
+
++ (void)_parseNewObjects:(NSArray/*&lt;NSNumber&gt;*/ **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSArray/*&lt;NSNumber&gt;*/ class]);
+    *outValue = (NSArray/*&lt;NSNumber&gt;*/ *)payload;
+}
+
++ (void)_parseOldObjects:(NSArray/*&lt;NSNumber&gt;*/ **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSArray/*&lt;NSNumber&gt;*/ class]);
+    *outValue = (NSArray/*&lt;NSNumber&gt;*/ *)payload;
+}
+
++ (void)_parseStopReasons:(NSArray/*&lt;NSString&gt;*/ **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSArray/*&lt;NSString&gt;*/ class]);
+    *outValue = (NSArray/*&lt;NSString&gt;*/ *)payload;
+}
+
+@end
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+
+
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationenumtypejsonresultfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationenumtypejsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-enum-type.json-result) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,1037 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+// Runtime.
+InspectorBackend.registerEnum(&quot;Runtime.FarmAnimals&quot;, {Pigs: &quot;Pigs&quot;, Cows: &quot;Cows&quot;, Cats: &quot;Cats&quot;, Hens: &quot;Hens&quot;});
+InspectorBackend.registerEnum(&quot;Runtime.TwoLeggedAnimals&quot;, {Ducks: &quot;Ducks&quot;, Hens: &quot;Hens&quot;, Crows: &quot;Crows&quot;, Flamingos: &quot;Flamingos&quot;});
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+// Forward declarations.
+namespace Runtime {
+enum class FarmAnimals;
+enum class TwoLeggedAnimals;
+} // Runtime
+// End of forward declarations.
+
+
+
+
+namespace TestHelpers {
+
+String getEnumConstantValue(int code);
+
+template&lt;typename T&gt; String getEnumConstantValue(T enumValue)
+{
+    return getEnumConstantValue(static_cast&lt;int&gt;(enumValue));
+}
+
+} // namespace TestHelpers
+
+namespace Runtime {
+/*  */
+enum class FarmAnimals {
+    Pigs = 0,
+    Cows = 1,
+    Cats = 2,
+    Hens = 3,
+}; // enum class FarmAnimals
+/*  */
+enum class TwoLeggedAnimals {
+    Ducks = 4,
+    Hens = 3,
+    Crows = 5,
+    Flamingos = 6,
+}; // enum class TwoLeggedAnimals
+} // Runtime
+
+
+
+namespace TestHelpers {
+
+template&lt;typename ProtocolEnumType&gt;
+std::optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
+
+// Enums in the 'Runtime' Domain
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Runtime::FarmAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::FarmAnimals&gt;(const String&amp;);
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Runtime::TwoLeggedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::TwoLeggedAnimals&gt;(const String&amp;);
+
+} // namespace TestHelpers
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+namespace TestHelpers {
+
+static const char* const enum_constant_values[] = {
+    &quot;Pigs&quot;,
+    &quot;Cows&quot;,
+    &quot;Cats&quot;,
+    &quot;Hens&quot;,
+    &quot;Ducks&quot;,
+    &quot;Crows&quot;,
+    &quot;Flamingos&quot;,
+};
+
+String getEnumConstantValue(int code) {
+    return enum_constant_values[code];
+}
+
+// Enums in the 'Runtime' Domain
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Runtime::FarmAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::FarmAnimals&gt;(const String&amp; protocolString)
+{
+    static const size_t constantValues[] = {
+        (size_t)Inspector::Protocol::Runtime::FarmAnimals::Pigs,
+        (size_t)Inspector::Protocol::Runtime::FarmAnimals::Cows,
+        (size_t)Inspector::Protocol::Runtime::FarmAnimals::Cats,
+        (size_t)Inspector::Protocol::Runtime::FarmAnimals::Hens,
+    };
+    for (size_t i = 0; i &lt; 4; ++i)
+        if (protocolString == enum_constant_values[constantValues[i]])
+            return (Inspector::Protocol::Runtime::FarmAnimals)constantValues[i];
+
+    return std::nullopt;
+}
+
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Runtime::TwoLeggedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Runtime::TwoLeggedAnimals&gt;(const String&amp; protocolString)
+{
+    static const size_t constantValues[] = {
+        (size_t)Inspector::Protocol::Runtime::TwoLeggedAnimals::Ducks,
+        (size_t)Inspector::Protocol::Runtime::TwoLeggedAnimals::Hens,
+        (size_t)Inspector::Protocol::Runtime::TwoLeggedAnimals::Crows,
+        (size_t)Inspector::Protocol::Runtime::TwoLeggedAnimals::Flamingos,
+    };
+    for (size_t i = 0; i &lt; 4; ++i)
+        if (protocolString == enum_constant_values[constantValues[i]])
+            return (Inspector::Protocol::Runtime::TwoLeggedAnimals)constantValues[i];
+
+    return std::nullopt;
+}
+
+
+} // namespace TestHelpers
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+
+
+namespace Inspector {
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [super dealloc];
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+
+
+
+typedef NS_ENUM(NSInteger, TestProtocolRuntimeFarmAnimals) {
+    TestProtocolRuntimeFarmAnimalsPigs,
+    TestProtocolRuntimeFarmAnimalsCows,
+    TestProtocolRuntimeFarmAnimalsCats,
+    TestProtocolRuntimeFarmAnimalsHens,
+};
+
+typedef NS_ENUM(NSInteger, TestProtocolRuntimeTwoLeggedAnimals) {
+    TestProtocolRuntimeTwoLeggedAnimalsDucks,
+    TestProtocolRuntimeTwoLeggedAnimalsHens,
+    TestProtocolRuntimeTwoLeggedAnimalsCrows,
+    TestProtocolRuntimeTwoLeggedAnimalsFlamingos,
+};
+
+
+
+
+
+
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+
+inline String toProtocolString(TestProtocolRuntimeFarmAnimals value)
+{
+    switch(value) {
+    case TestProtocolRuntimeFarmAnimalsPigs:
+        return ASCIILiteral(&quot;Pigs&quot;);
+    case TestProtocolRuntimeFarmAnimalsCows:
+        return ASCIILiteral(&quot;Cows&quot;);
+    case TestProtocolRuntimeFarmAnimalsCats:
+        return ASCIILiteral(&quot;Cats&quot;);
+    case TestProtocolRuntimeFarmAnimalsHens:
+        return ASCIILiteral(&quot;Hens&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolRuntimeFarmAnimals fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;Pigs&quot;)
+        return TestProtocolRuntimeFarmAnimalsPigs;
+    if (value == &quot;Cows&quot;)
+        return TestProtocolRuntimeFarmAnimalsCows;
+    if (value == &quot;Cats&quot;)
+        return TestProtocolRuntimeFarmAnimalsCats;
+    if (value == &quot;Hens&quot;)
+        return TestProtocolRuntimeFarmAnimalsHens;
+    ASSERT_NOT_REACHED();
+    return TestProtocolRuntimeFarmAnimalsPigs;
+}
+
+inline String toProtocolString(TestProtocolRuntimeTwoLeggedAnimals value)
+{
+    switch(value) {
+    case TestProtocolRuntimeTwoLeggedAnimalsDucks:
+        return ASCIILiteral(&quot;Ducks&quot;);
+    case TestProtocolRuntimeTwoLeggedAnimalsHens:
+        return ASCIILiteral(&quot;Hens&quot;);
+    case TestProtocolRuntimeTwoLeggedAnimalsCrows:
+        return ASCIILiteral(&quot;Crows&quot;);
+    case TestProtocolRuntimeTwoLeggedAnimalsFlamingos:
+        return ASCIILiteral(&quot;Flamingos&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolRuntimeTwoLeggedAnimals fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;Ducks&quot;)
+        return TestProtocolRuntimeTwoLeggedAnimalsDucks;
+    if (value == &quot;Hens&quot;)
+        return TestProtocolRuntimeTwoLeggedAnimalsHens;
+    if (value == &quot;Crows&quot;)
+        return TestProtocolRuntimeTwoLeggedAnimalsCrows;
+    if (value == &quot;Flamingos&quot;)
+        return TestProtocolRuntimeTwoLeggedAnimalsFlamingos;
+    ASSERT_NOT_REACHED();
+    return TestProtocolRuntimeTwoLeggedAnimalsDucks;
+}
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+@interface TestProtocolTypeConversions (RuntimeDomain)
+
++ (void)_parseFarmAnimals:(NSNumber **)outValue fromPayload:(id)payload;
++ (void)_parseTwoLeggedAnimals:(NSNumber **)outValue fromPayload:(id)payload;
+
+@end
+
+@implementation TestProtocolTypeConversions (RuntimeDomain)
+
++ (void)_parseFarmAnimals:(NSNumber **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSString class]);
+    *outValue = @(Inspector::fromProtocolString&lt;TestProtocolRuntimeFarmAnimals&gt;(payload));
+}
+
++ (void)_parseTwoLeggedAnimals:(NSNumber **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSString class]);
+    *outValue = @(Inspector::fromProtocolString&lt;TestProtocolRuntimeTwoLeggedAnimals&gt;(payload));
+}
+
+@end
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationobjecttypejsonresultfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationobjecttypejsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-object-type.json-result) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,1993 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+// Forward declarations.
+namespace Database {
+class Error;
+class OptionalParameterBundle;
+class ParameterBundle;
+class ObjectWithPropertyNameConflicts;
+class DummyObject;
+} // Database
+
+namespace Test {
+class ParameterBundle;
+} // Test
+// End of forward declarations.
+
+
+// Typedefs.
+namespace Database {
+typedef Inspector::Protocol::Array&lt;Inspector::Protocol::Database::Error&gt; ErrorList;
+} // Database
+// End of typedefs.
+
+namespace Database {
+/* Database error. */
+class Error : public Inspector::InspectorObjectBase {
+public:
+    enum {
+        NoFieldsSet = 0,
+        MessageSet = 1 &lt;&lt; 0,
+        CodeSet = 1 &lt;&lt; 1,
+        AllFieldsSet = (MessageSet | CodeSet)
+    };
+
+    template&lt;int STATE&gt;
+    class Builder {
+    private:
+        RefPtr&lt;InspectorObject&gt; m_result;
+
+        template&lt;int STEP&gt; Builder&lt;STATE | STEP&gt;&amp; castState()
+        {
+            return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
+        }
+
+        Builder(Ref&lt;/*Error*/InspectorObject&gt;&amp;&amp; object)
+            : m_result(WTFMove(object))
+        {
+            COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
+        }
+        friend class Error;
+    public:
+
+        Builder&lt;STATE | MessageSet&gt;&amp; setMessage(const String&amp; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; MessageSet), property_message_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;message&quot;), value);
+            return castState&lt;MessageSet&gt;();
+        }
+
+        Builder&lt;STATE | CodeSet&gt;&amp; setCode(int value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; CodeSet), property_code_already_set);
+            m_result-&gt;setInteger(ASCIILiteral(&quot;code&quot;), value);
+            return castState&lt;CodeSet&gt;();
+        }
+
+        Ref&lt;Error&gt; release()
+        {
+            COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
+            COMPILE_ASSERT(sizeof(Error) == sizeof(InspectorObject), cannot_cast);
+
+            Ref&lt;InspectorObject&gt; result = m_result.releaseNonNull();
+            return WTFMove(*reinterpret_cast&lt;Ref&lt;Error&gt;*&gt;(&amp;result));
+        }
+    };
+
+    /*
+     * Synthetic constructor:
+     * Ref&lt;Error&gt; result = Error::create()
+     *     .setMessage(...)
+     *     .setCode(...)
+     *     .release();
+     */
+    static Builder&lt;NoFieldsSet&gt; create()
+    {
+        return Builder&lt;NoFieldsSet&gt;(InspectorObject::create());
+    }
+};
+
+class OptionalParameterBundle : public Inspector::InspectorObjectBase {
+public:
+    enum {
+        NoFieldsSet = 0,
+        AllFieldsSet = 0
+    };
+
+    template&lt;int STATE&gt;
+    class Builder {
+    private:
+        RefPtr&lt;InspectorObject&gt; m_result;
+
+        template&lt;int STEP&gt; Builder&lt;STATE | STEP&gt;&amp; castState()
+        {
+            return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
+        }
+
+        Builder(Ref&lt;/*OptionalParameterBundle*/InspectorObject&gt;&amp;&amp; object)
+            : m_result(WTFMove(object))
+        {
+            COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
+        }
+        friend class OptionalParameterBundle;
+    public:
+
+        Ref&lt;OptionalParameterBundle&gt; release()
+        {
+            COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
+            COMPILE_ASSERT(sizeof(OptionalParameterBundle) == sizeof(InspectorObject), cannot_cast);
+
+            Ref&lt;InspectorObject&gt; result = m_result.releaseNonNull();
+            return WTFMove(*reinterpret_cast&lt;Ref&lt;OptionalParameterBundle&gt;*&gt;(&amp;result));
+        }
+    };
+
+    /*
+     * Synthetic constructor:
+     * Ref&lt;OptionalParameterBundle&gt; result = OptionalParameterBundle::create()
+     *     .release();
+     */
+    static Builder&lt;NoFieldsSet&gt; create()
+    {
+        return Builder&lt;NoFieldsSet&gt;(InspectorObject::create());
+    }
+
+    void setColumnNames(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; value)
+    {
+        InspectorObjectBase::setArray(ASCIILiteral(&quot;columnNames&quot;), WTFMove(value));
+    }
+
+    void setNotes(const String&amp; value)
+    {
+        InspectorObjectBase::setString(ASCIILiteral(&quot;notes&quot;), value);
+    }
+
+    void setTimestamp(double value)
+    {
+        InspectorObjectBase::setDouble(ASCIILiteral(&quot;timestamp&quot;), value);
+    }
+
+    void setValues(RefPtr&lt;Inspector::InspectorObject&gt; value)
+    {
+        InspectorObjectBase::setObject(ASCIILiteral(&quot;values&quot;), WTFMove(value));
+    }
+
+    void setPayload(RefPtr&lt;Inspector::InspectorValue&gt; value)
+    {
+        InspectorObjectBase::setValue(ASCIILiteral(&quot;payload&quot;), WTFMove(value));
+    }
+
+    void setError(RefPtr&lt;Inspector::Protocol::Database::Error&gt; value)
+    {
+        InspectorObjectBase::setObject(ASCIILiteral(&quot;error&quot;), WTFMove(value));
+    }
+
+    void setErrorList(RefPtr&lt;Inspector::Protocol::Database::ErrorList&gt; value)
+    {
+        InspectorObjectBase::setArray(ASCIILiteral(&quot;errorList&quot;), WTFMove(value));
+    }
+};
+
+class ParameterBundle : public Inspector::InspectorObjectBase {
+public:
+    enum {
+        NoFieldsSet = 0,
+        ColumnNamesSet = 1 &lt;&lt; 0,
+        NotesSet = 1 &lt;&lt; 1,
+        TimestampSet = 1 &lt;&lt; 2,
+        ValuesSet = 1 &lt;&lt; 3,
+        PayloadSet = 1 &lt;&lt; 4,
+        ErrorSet = 1 &lt;&lt; 5,
+        ErrorListSet = 1 &lt;&lt; 6,
+        AllFieldsSet = (ColumnNamesSet | NotesSet | TimestampSet | ValuesSet | PayloadSet | ErrorSet | ErrorListSet)
+    };
+
+    template&lt;int STATE&gt;
+    class Builder {
+    private:
+        RefPtr&lt;InspectorObject&gt; m_result;
+
+        template&lt;int STEP&gt; Builder&lt;STATE | STEP&gt;&amp; castState()
+        {
+            return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
+        }
+
+        Builder(Ref&lt;/*ParameterBundle*/InspectorObject&gt;&amp;&amp; object)
+            : m_result(WTFMove(object))
+        {
+            COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
+        }
+        friend class ParameterBundle;
+    public:
+
+        Builder&lt;STATE | ColumnNamesSet&gt;&amp; setColumnNames(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; ColumnNamesSet), property_columnNames_already_set);
+            m_result-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), value);
+            return castState&lt;ColumnNamesSet&gt;();
+        }
+
+        Builder&lt;STATE | NotesSet&gt;&amp; setNotes(const String&amp; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; NotesSet), property_notes_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;notes&quot;), value);
+            return castState&lt;NotesSet&gt;();
+        }
+
+        Builder&lt;STATE | TimestampSet&gt;&amp; setTimestamp(double value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; TimestampSet), property_timestamp_already_set);
+            m_result-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), value);
+            return castState&lt;TimestampSet&gt;();
+        }
+
+        Builder&lt;STATE | ValuesSet&gt;&amp; setValues(RefPtr&lt;Inspector::InspectorObject&gt; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; ValuesSet), property_values_already_set);
+            m_result-&gt;setObject(ASCIILiteral(&quot;values&quot;), value);
+            return castState&lt;ValuesSet&gt;();
+        }
+
+        Builder&lt;STATE | PayloadSet&gt;&amp; setPayload(RefPtr&lt;Inspector::InspectorValue&gt; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; PayloadSet), property_payload_already_set);
+            m_result-&gt;setValue(ASCIILiteral(&quot;payload&quot;), value);
+            return castState&lt;PayloadSet&gt;();
+        }
+
+        Builder&lt;STATE | ErrorSet&gt;&amp; setError(RefPtr&lt;Inspector::Protocol::Database::Error&gt; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; ErrorSet), property_error_already_set);
+            m_result-&gt;setObject(ASCIILiteral(&quot;error&quot;), value);
+            return castState&lt;ErrorSet&gt;();
+        }
+
+        Builder&lt;STATE | ErrorListSet&gt;&amp; setErrorList(RefPtr&lt;Inspector::Protocol::Database::ErrorList&gt; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; ErrorListSet), property_errorList_already_set);
+            m_result-&gt;setArray(ASCIILiteral(&quot;errorList&quot;), value);
+            return castState&lt;ErrorListSet&gt;();
+        }
+
+        Ref&lt;ParameterBundle&gt; release()
+        {
+            COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
+            COMPILE_ASSERT(sizeof(ParameterBundle) == sizeof(InspectorObject), cannot_cast);
+
+            Ref&lt;InspectorObject&gt; result = m_result.releaseNonNull();
+            return WTFMove(*reinterpret_cast&lt;Ref&lt;ParameterBundle&gt;*&gt;(&amp;result));
+        }
+    };
+
+    /*
+     * Synthetic constructor:
+     * Ref&lt;ParameterBundle&gt; result = ParameterBundle::create()
+     *     .setColumnNames(...)
+     *     .setNotes(...)
+     *     .setTimestamp(...)
+     *     .setValues(...)
+     *     .setPayload(...)
+     *     .setError(...)
+     *     .setErrorList(...)
+     *     .release();
+     */
+    static Builder&lt;NoFieldsSet&gt; create()
+    {
+        return Builder&lt;NoFieldsSet&gt;(InspectorObject::create());
+    }
+};
+
+/* Conflicted names may cause generated getters/setters to clash with built-in InspectorObject methods. */
+class ObjectWithPropertyNameConflicts : public Inspector::InspectorObjectBase {
+public:
+    enum {
+        NoFieldsSet = 0,
+        IntegerSet = 1 &lt;&lt; 0,
+        ArraySet = 1 &lt;&lt; 1,
+        StringSet = 1 &lt;&lt; 2,
+        ValueSet = 1 &lt;&lt; 3,
+        ObjectSet = 1 &lt;&lt; 4,
+        AllFieldsSet = (IntegerSet | ArraySet | StringSet | ValueSet | ObjectSet)
+    };
+
+    template&lt;int STATE&gt;
+    class Builder {
+    private:
+        RefPtr&lt;InspectorObject&gt; m_result;
+
+        template&lt;int STEP&gt; Builder&lt;STATE | STEP&gt;&amp; castState()
+        {
+            return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
+        }
+
+        Builder(Ref&lt;/*ObjectWithPropertyNameConflicts*/InspectorObject&gt;&amp;&amp; object)
+            : m_result(WTFMove(object))
+        {
+            COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
+        }
+        friend class ObjectWithPropertyNameConflicts;
+    public:
+
+        Builder&lt;STATE | IntegerSet&gt;&amp; setInteger(const String&amp; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; IntegerSet), property_integer_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;integer&quot;), value);
+            return castState&lt;IntegerSet&gt;();
+        }
+
+        Builder&lt;STATE | ArraySet&gt;&amp; setArray(const String&amp; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; ArraySet), property_array_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;array&quot;), value);
+            return castState&lt;ArraySet&gt;();
+        }
+
+        Builder&lt;STATE | StringSet&gt;&amp; setString(const String&amp; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; StringSet), property_string_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;string&quot;), value);
+            return castState&lt;StringSet&gt;();
+        }
+
+        Builder&lt;STATE | ValueSet&gt;&amp; setValue(const String&amp; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; ValueSet), property_value_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;value&quot;), value);
+            return castState&lt;ValueSet&gt;();
+        }
+
+        Builder&lt;STATE | ObjectSet&gt;&amp; setObject(const String&amp; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; ObjectSet), property_object_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;object&quot;), value);
+            return castState&lt;ObjectSet&gt;();
+        }
+
+        Ref&lt;ObjectWithPropertyNameConflicts&gt; release()
+        {
+            COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
+            COMPILE_ASSERT(sizeof(ObjectWithPropertyNameConflicts) == sizeof(InspectorObject), cannot_cast);
+
+            Ref&lt;InspectorObject&gt; result = m_result.releaseNonNull();
+            return WTFMove(*reinterpret_cast&lt;Ref&lt;ObjectWithPropertyNameConflicts&gt;*&gt;(&amp;result));
+        }
+    };
+
+    /*
+     * Synthetic constructor:
+     * Ref&lt;ObjectWithPropertyNameConflicts&gt; result = ObjectWithPropertyNameConflicts::create()
+     *     .setInteger(...)
+     *     .setArray(...)
+     *     .setString(...)
+     *     .setValue(...)
+     *     .setObject(...)
+     *     .release();
+     */
+    static Builder&lt;NoFieldsSet&gt; create()
+    {
+        return Builder&lt;NoFieldsSet&gt;(InspectorObject::create());
+    }
+};
+
+} // Database
+
+namespace Test {
+class ParameterBundle : public Inspector::InspectorObjectBase {
+public:
+    enum {
+        NoFieldsSet = 0,
+        ColumnNamesSet = 1 &lt;&lt; 0,
+        NotesSet = 1 &lt;&lt; 1,
+        TimestampSet = 1 &lt;&lt; 2,
+        ValuesSet = 1 &lt;&lt; 3,
+        PayloadSet = 1 &lt;&lt; 4,
+        ErrorSet = 1 &lt;&lt; 5,
+        AllFieldsSet = (ColumnNamesSet | NotesSet | TimestampSet | ValuesSet | PayloadSet | ErrorSet)
+    };
+
+    template&lt;int STATE&gt;
+    class Builder {
+    private:
+        RefPtr&lt;InspectorObject&gt; m_result;
+
+        template&lt;int STEP&gt; Builder&lt;STATE | STEP&gt;&amp; castState()
+        {
+            return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
+        }
+
+        Builder(Ref&lt;/*ParameterBundle*/InspectorObject&gt;&amp;&amp; object)
+            : m_result(WTFMove(object))
+        {
+            COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
+        }
+        friend class ParameterBundle;
+    public:
+
+        Builder&lt;STATE | ColumnNamesSet&gt;&amp; setColumnNames(RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; ColumnNamesSet), property_columnNames_already_set);
+            m_result-&gt;setArray(ASCIILiteral(&quot;columnNames&quot;), value);
+            return castState&lt;ColumnNamesSet&gt;();
+        }
+
+        Builder&lt;STATE | NotesSet&gt;&amp; setNotes(const String&amp; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; NotesSet), property_notes_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;notes&quot;), value);
+            return castState&lt;NotesSet&gt;();
+        }
+
+        Builder&lt;STATE | TimestampSet&gt;&amp; setTimestamp(double value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; TimestampSet), property_timestamp_already_set);
+            m_result-&gt;setDouble(ASCIILiteral(&quot;timestamp&quot;), value);
+            return castState&lt;TimestampSet&gt;();
+        }
+
+        Builder&lt;STATE | ValuesSet&gt;&amp; setValues(RefPtr&lt;Inspector::InspectorObject&gt; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; ValuesSet), property_values_already_set);
+            m_result-&gt;setObject(ASCIILiteral(&quot;values&quot;), value);
+            return castState&lt;ValuesSet&gt;();
+        }
+
+        Builder&lt;STATE | PayloadSet&gt;&amp; setPayload(RefPtr&lt;Inspector::InspectorValue&gt; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; PayloadSet), property_payload_already_set);
+            m_result-&gt;setValue(ASCIILiteral(&quot;payload&quot;), value);
+            return castState&lt;PayloadSet&gt;();
+        }
+
+        Builder&lt;STATE | ErrorSet&gt;&amp; setError(RefPtr&lt;Inspector::Protocol::Database::Error&gt; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; ErrorSet), property_error_already_set);
+            m_result-&gt;setObject(ASCIILiteral(&quot;error&quot;), value);
+            return castState&lt;ErrorSet&gt;();
+        }
+
+        Ref&lt;ParameterBundle&gt; release()
+        {
+            COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
+            COMPILE_ASSERT(sizeof(ParameterBundle) == sizeof(InspectorObject), cannot_cast);
+
+            Ref&lt;InspectorObject&gt; result = m_result.releaseNonNull();
+            return WTFMove(*reinterpret_cast&lt;Ref&lt;ParameterBundle&gt;*&gt;(&amp;result));
+        }
+    };
+
+    /*
+     * Synthetic constructor:
+     * Ref&lt;ParameterBundle&gt; result = ParameterBundle::create()
+     *     .setColumnNames(...)
+     *     .setNotes(...)
+     *     .setTimestamp(...)
+     *     .setValues(...)
+     *     .setPayload(...)
+     *     .setError(...)
+     *     .release();
+     */
+    static Builder&lt;NoFieldsSet&gt; create()
+    {
+        return Builder&lt;NoFieldsSet&gt;(InspectorObject::create());
+    }
+};
+
+} // Test
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+
+
+namespace Inspector {
+
+
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [super dealloc];
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+
+
+
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+@class TestProtocolDatabaseError;
+@class TestProtocolDatabaseOptionalParameterBundle;
+@class TestProtocolDatabaseParameterBundle;
+@class TestProtocolDatabaseObjectWithPropertyNameConflicts;
+@class TestProtocolDatabaseDummyObject;
+@class TestProtocolTestParameterBundle;
+
+
+
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolDatabaseError : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+- (instancetype)initWithMessage:(NSString *)message code:(int)code;
+/* required */ @property (nonatomic, copy) NSString *message;
+/* required */ @property (nonatomic, assign) int code;
+@end
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolDatabaseOptionalParameterBundle : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+/* optional */ @property (nonatomic, copy) NSArray/*&lt;NSString&gt;*/ *columnNames;
+/* optional */ @property (nonatomic, copy) NSString *notes;
+/* optional */ @property (nonatomic, assign) double timestamp;
+/* optional */ @property (nonatomic, retain) RWIProtocolJSONObject *values;
+/* optional */ @property (nonatomic, retain) RWIProtocolJSONObject *payload;
+/* optional */ @property (nonatomic, retain) TestProtocolDatabaseError *error;
+/* optional */ @property (nonatomic, copy) NSArray/*&lt;TestProtocolDatabaseError&gt;*/ *errorList;
+@end
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolDatabaseParameterBundle : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+- (instancetype)initWithColumnNames:(NSArray/*&lt;NSString&gt;*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(TestProtocolDatabaseError *)error errorList:(NSArray/*&lt;TestProtocolDatabaseError&gt;*/ *)errorList;
+/* required */ @property (nonatomic, copy) NSArray/*&lt;NSString&gt;*/ *columnNames;
+/* required */ @property (nonatomic, copy) NSString *notes;
+/* required */ @property (nonatomic, assign) double timestamp;
+/* required */ @property (nonatomic, retain) RWIProtocolJSONObject *values;
+/* required */ @property (nonatomic, retain) RWIProtocolJSONObject *payload;
+/* required */ @property (nonatomic, retain) TestProtocolDatabaseError *error;
+/* required */ @property (nonatomic, copy) NSArray/*&lt;TestProtocolDatabaseError&gt;*/ *errorList;
+@end
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolDatabaseObjectWithPropertyNameConflicts : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+- (instancetype)initWithInteger:(NSString *)integer array:(NSString *)array string:(NSString *)string value:(NSString *)value object:(NSString *)object;
+/* required */ @property (nonatomic, copy) NSString *integer;
+/* required */ @property (nonatomic, copy) NSString *array;
+/* required */ @property (nonatomic, copy) NSString *string;
+/* required */ @property (nonatomic, copy) NSString *value;
+/* required */ @property (nonatomic, copy) NSString *object;
+@end
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolDatabaseDummyObject : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+@end
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolTestParameterBundle : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+- (instancetype)initWithColumnNames:(NSArray/*&lt;NSString&gt;*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(TestProtocolDatabaseError *)error;
+/* required */ @property (nonatomic, copy) NSArray/*&lt;NSString&gt;*/ *columnNames;
+/* required */ @property (nonatomic, copy) NSString *notes;
+/* required */ @property (nonatomic, assign) double timestamp;
+/* required */ @property (nonatomic, retain) RWIProtocolJSONObject *values;
+/* required */ @property (nonatomic, retain) RWIProtocolJSONObject *payload;
+/* required */ @property (nonatomic, retain) TestProtocolDatabaseError *error;
+@end
+
+
+
+
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+@interface TestProtocolTypeConversions (DatabaseDomain)
+
++ (void)_parseError:(TestProtocolDatabaseError **)outValue fromPayload:(id)payload;
++ (void)_parseErrorList:(NSArray/*&lt;TestProtocolDatabaseError&gt;*/ **)outValue fromPayload:(id)payload;
++ (void)_parseOptionalParameterBundle:(TestProtocolDatabaseOptionalParameterBundle **)outValue fromPayload:(id)payload;
++ (void)_parseParameterBundle:(TestProtocolDatabaseParameterBundle **)outValue fromPayload:(id)payload;
++ (void)_parseObjectWithPropertyNameConflicts:(TestProtocolDatabaseObjectWithPropertyNameConflicts **)outValue fromPayload:(id)payload;
++ (void)_parseDummyObject:(TestProtocolDatabaseDummyObject **)outValue fromPayload:(id)payload;
+
+@end
+@interface TestProtocolTypeConversions (TestDomain)
+
++ (void)_parseParameterBundle:(TestProtocolTestParameterBundle **)outValue fromPayload:(id)payload;
+
+@end
+
+@implementation TestProtocolTypeConversions (DatabaseDomain)
+
++ (void)_parseError:(TestProtocolDatabaseError **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolDatabaseError alloc] initWithPayload:payload];
+}
+
++ (void)_parseErrorList:(NSArray/*&lt;TestProtocolDatabaseError&gt;*/ **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSArray/*&lt;TestProtocolDatabaseError&gt;*/ class]);
+    *outValue = (NSArray/*&lt;TestProtocolDatabaseError&gt;*/ *)payload;
+}
+
++ (void)_parseOptionalParameterBundle:(TestProtocolDatabaseOptionalParameterBundle **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolDatabaseOptionalParameterBundle alloc] initWithPayload:payload];
+}
+
++ (void)_parseParameterBundle:(TestProtocolDatabaseParameterBundle **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolDatabaseParameterBundle alloc] initWithPayload:payload];
+}
+
++ (void)_parseObjectWithPropertyNameConflicts:(TestProtocolDatabaseObjectWithPropertyNameConflicts **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolDatabaseObjectWithPropertyNameConflicts alloc] initWithPayload:payload];
+}
+
++ (void)_parseDummyObject:(TestProtocolDatabaseDummyObject **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolDatabaseDummyObject alloc] initWithPayload:payload];
+}
+
+@end
+@implementation TestProtocolTypeConversions (TestDomain)
+
++ (void)_parseParameterBundle:(TestProtocolTestParameterBundle **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolTestParameterBundle alloc] initWithPayload:payload];
+}
+
+@end
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+@implementation TestProtocolDatabaseError
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;message&quot;], @&quot;message&quot;);
+    self.message = payload[@&quot;message&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;code&quot;], @&quot;code&quot;);
+    self.code = [payload[@&quot;code&quot;] integerValue];
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+- (instancetype)initWithMessage:(NSString *)message code:(int)code
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(message, @&quot;message&quot;);
+
+    self.message = message;
+    self.code = code;
+
+    return self;
+}
+
+- (void)setMessage:(NSString *)message
+{
+    [super setString:message forKey:@&quot;message&quot;];
+}
+
+- (NSString *)message
+{
+    return [super stringForKey:@&quot;message&quot;];
+}
+
+- (void)setCode:(int)code
+{
+    [super setInteger:code forKey:@&quot;code&quot;];
+}
+
+- (int)code
+{
+    return [super integerForKey:@&quot;code&quot;];
+}
+
+@end
+
+@implementation TestProtocolDatabaseOptionalParameterBundle
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    self.columnNames = objcArrayFromPayload&lt;NSString&gt;(payload[@&quot;columnNames&quot;]);
+
+    self.notes = payload[@&quot;notes&quot;];
+
+    self.timestamp = [payload[@&quot;timestamp&quot;] doubleValue];
+
+    self.values = payload[@&quot;values&quot;];
+
+    self.payload = payload[@&quot;payload&quot;];
+
+    self.error = [[TestProtocolDatabaseError alloc] initWithPayload:payload[@&quot;error&quot;]];
+
+    self.errorList = objcArrayFromPayload&lt;TestProtocolDatabaseError&gt;(payload[@&quot;errorList&quot;]);
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+- (void)setColumnNames:(NSArray/*&lt;NSString&gt;*/ *)columnNames
+{
+    [super setInspectorArray:inspectorStringArray(columnNames) forKey:@&quot;columnNames&quot;];
+}
+
+- (NSArray/*&lt;NSString&gt;*/ *)columnNames
+{
+    return objcStringArray([super inspectorArrayForKey:@&quot;columnNames&quot;]);
+}
+
+- (void)setNotes:(NSString *)notes
+{
+    [super setString:notes forKey:@&quot;notes&quot;];
+}
+
+- (NSString *)notes
+{
+    return [super stringForKey:@&quot;notes&quot;];
+}
+
+- (void)setTimestamp:(double)timestamp
+{
+    [super setDouble:timestamp forKey:@&quot;timestamp&quot;];
+}
+
+- (double)timestamp
+{
+    return [super doubleForKey:@&quot;timestamp&quot;];
+}
+
+- (void)setValues:(RWIProtocolJSONObject *)values
+{
+    [super setObject:values forKey:@&quot;values&quot;];
+}
+
+- (RWIProtocolJSONObject *)values
+{
+    return [[RWIProtocolJSONObject alloc] initWithInspectorObject:[[super objectForKey:@&quot;values&quot;] toInspectorObject].get()];
+}
+
+- (void)setPayload:(RWIProtocolJSONObject *)payload
+{
+    [super setObject:payload forKey:@&quot;payload&quot;];
+}
+
+- (RWIProtocolJSONObject *)payload
+{
+    return [[RWIProtocolJSONObject alloc] initWithInspectorObject:[[super objectForKey:@&quot;payload&quot;] toInspectorObject].get()];
+}
+
+- (void)setError:(TestProtocolDatabaseError *)error
+{
+    [super setObject:error forKey:@&quot;error&quot;];
+}
+
+- (TestProtocolDatabaseError *)error
+{
+    return [[TestProtocolDatabaseError alloc] initWithInspectorObject:[[super objectForKey:@&quot;error&quot;] toInspectorObject].get()];
+}
+
+- (void)setErrorList:(NSArray/*&lt;TestProtocolDatabaseError&gt;*/ *)errorList
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(errorList, [TestProtocolDatabaseError class]);
+    [super setInspectorArray:inspectorObjectArray(errorList) forKey:@&quot;errorList&quot;];
+}
+
+- (NSArray/*&lt;TestProtocolDatabaseError&gt;*/ *)errorList
+{
+    return objcArray&lt;TestProtocolDatabaseError&gt;([super inspectorArrayForKey:@&quot;errorList&quot;]);
+}
+
+@end
+
+@implementation TestProtocolDatabaseParameterBundle
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;columnNames&quot;], @&quot;columnNames&quot;);
+    self.columnNames = objcArrayFromPayload&lt;NSString&gt;(payload[@&quot;columnNames&quot;]);
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;notes&quot;], @&quot;notes&quot;);
+    self.notes = payload[@&quot;notes&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;timestamp&quot;], @&quot;timestamp&quot;);
+    self.timestamp = [payload[@&quot;timestamp&quot;] doubleValue];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;values&quot;], @&quot;values&quot;);
+    self.values = payload[@&quot;values&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;payload&quot;], @&quot;payload&quot;);
+    self.payload = payload[@&quot;payload&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;error&quot;], @&quot;error&quot;);
+    self.error = [[TestProtocolDatabaseError alloc] initWithPayload:payload[@&quot;error&quot;]];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;errorList&quot;], @&quot;errorList&quot;);
+    self.errorList = objcArrayFromPayload&lt;TestProtocolDatabaseError&gt;(payload[@&quot;errorList&quot;]);
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+- (instancetype)initWithColumnNames:(NSArray/*&lt;NSString&gt;*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(TestProtocolDatabaseError *)error errorList:(NSArray/*&lt;TestProtocolDatabaseError&gt;*/ *)errorList
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(columnNames, @&quot;columnNames&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(notes, @&quot;notes&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(values, @&quot;values&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload, @&quot;payload&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(error, @&quot;error&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(errorList, @&quot;errorList&quot;);
+    THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(errorList, [TestProtocolDatabaseError class]);
+
+    self.columnNames = columnNames;
+    self.notes = notes;
+    self.timestamp = timestamp;
+    self.values = values;
+    self.payload = payload;
+    self.error = error;
+    self.errorList = errorList;
+
+    return self;
+}
+
+- (void)setColumnNames:(NSArray/*&lt;NSString&gt;*/ *)columnNames
+{
+    [super setInspectorArray:inspectorStringArray(columnNames) forKey:@&quot;columnNames&quot;];
+}
+
+- (NSArray/*&lt;NSString&gt;*/ *)columnNames
+{
+    return objcStringArray([super inspectorArrayForKey:@&quot;columnNames&quot;]);
+}
+
+- (void)setNotes:(NSString *)notes
+{
+    [super setString:notes forKey:@&quot;notes&quot;];
+}
+
+- (NSString *)notes
+{
+    return [super stringForKey:@&quot;notes&quot;];
+}
+
+- (void)setTimestamp:(double)timestamp
+{
+    [super setDouble:timestamp forKey:@&quot;timestamp&quot;];
+}
+
+- (double)timestamp
+{
+    return [super doubleForKey:@&quot;timestamp&quot;];
+}
+
+- (void)setValues:(RWIProtocolJSONObject *)values
+{
+    [super setObject:values forKey:@&quot;values&quot;];
+}
+
+- (RWIProtocolJSONObject *)values
+{
+    return [[RWIProtocolJSONObject alloc] initWithInspectorObject:[[super objectForKey:@&quot;values&quot;] toInspectorObject].get()];
+}
+
+- (void)setPayload:(RWIProtocolJSONObject *)payload
+{
+    [super setObject:payload forKey:@&quot;payload&quot;];
+}
+
+- (RWIProtocolJSONObject *)payload
+{
+    return [[RWIProtocolJSONObject alloc] initWithInspectorObject:[[super objectForKey:@&quot;payload&quot;] toInspectorObject].get()];
+}
+
+- (void)setError:(TestProtocolDatabaseError *)error
+{
+    [super setObject:error forKey:@&quot;error&quot;];
+}
+
+- (TestProtocolDatabaseError *)error
+{
+    return [[TestProtocolDatabaseError alloc] initWithInspectorObject:[[super objectForKey:@&quot;error&quot;] toInspectorObject].get()];
+}
+
+- (void)setErrorList:(NSArray/*&lt;TestProtocolDatabaseError&gt;*/ *)errorList
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(errorList, [TestProtocolDatabaseError class]);
+    [super setInspectorArray:inspectorObjectArray(errorList) forKey:@&quot;errorList&quot;];
+}
+
+- (NSArray/*&lt;TestProtocolDatabaseError&gt;*/ *)errorList
+{
+    return objcArray&lt;TestProtocolDatabaseError&gt;([super inspectorArrayForKey:@&quot;errorList&quot;]);
+}
+
+@end
+
+@implementation TestProtocolDatabaseObjectWithPropertyNameConflicts
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;integer&quot;], @&quot;integer&quot;);
+    self.integer = payload[@&quot;integer&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;array&quot;], @&quot;array&quot;);
+    self.array = payload[@&quot;array&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;string&quot;], @&quot;string&quot;);
+    self.string = payload[@&quot;string&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;value&quot;], @&quot;value&quot;);
+    self.value = payload[@&quot;value&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;object&quot;], @&quot;object&quot;);
+    self.object = payload[@&quot;object&quot;];
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+- (instancetype)initWithInteger:(NSString *)integer array:(NSString *)array string:(NSString *)string value:(NSString *)value object:(NSString *)object
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(integer, @&quot;integer&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(array, @&quot;array&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(string, @&quot;string&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(value, @&quot;value&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(object, @&quot;object&quot;);
+
+    self.integer = integer;
+    self.array = array;
+    self.string = string;
+    self.value = value;
+    self.object = object;
+
+    return self;
+}
+
+- (void)setInteger:(NSString *)integer
+{
+    [super setString:integer forKey:@&quot;integer&quot;];
+}
+
+- (NSString *)integer
+{
+    return [super stringForKey:@&quot;integer&quot;];
+}
+
+- (void)setArray:(NSString *)array
+{
+    [super setString:array forKey:@&quot;array&quot;];
+}
+
+- (NSString *)array
+{
+    return [super stringForKey:@&quot;array&quot;];
+}
+
+- (void)setString:(NSString *)string
+{
+    [super setString:string forKey:@&quot;string&quot;];
+}
+
+- (NSString *)string
+{
+    return [super stringForKey:@&quot;string&quot;];
+}
+
+- (void)setValue:(NSString *)value
+{
+    [super setString:value forKey:@&quot;value&quot;];
+}
+
+- (NSString *)value
+{
+    return [super stringForKey:@&quot;value&quot;];
+}
+
+- (void)setObject:(NSString *)object
+{
+    [super setString:object forKey:@&quot;object&quot;];
+}
+
+- (NSString *)object
+{
+    return [super stringForKey:@&quot;object&quot;];
+}
+
+@end
+
+@implementation TestProtocolDatabaseDummyObject
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+@end
+
+
+@implementation TestProtocolTestParameterBundle
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;columnNames&quot;], @&quot;columnNames&quot;);
+    self.columnNames = objcArrayFromPayload&lt;NSString&gt;(payload[@&quot;columnNames&quot;]);
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;notes&quot;], @&quot;notes&quot;);
+    self.notes = payload[@&quot;notes&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;timestamp&quot;], @&quot;timestamp&quot;);
+    self.timestamp = [payload[@&quot;timestamp&quot;] doubleValue];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;values&quot;], @&quot;values&quot;);
+    self.values = payload[@&quot;values&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;payload&quot;], @&quot;payload&quot;);
+    self.payload = payload[@&quot;payload&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;error&quot;], @&quot;error&quot;);
+    self.error = [[TestProtocolDatabaseError alloc] initWithPayload:payload[@&quot;error&quot;]];
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+- (instancetype)initWithColumnNames:(NSArray/*&lt;NSString&gt;*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(TestProtocolDatabaseError *)error
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(columnNames, @&quot;columnNames&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(notes, @&quot;notes&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(values, @&quot;values&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload, @&quot;payload&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(error, @&quot;error&quot;);
+
+    self.columnNames = columnNames;
+    self.notes = notes;
+    self.timestamp = timestamp;
+    self.values = values;
+    self.payload = payload;
+    self.error = error;
+
+    return self;
+}
+
+- (void)setColumnNames:(NSArray/*&lt;NSString&gt;*/ *)columnNames
+{
+    [super setInspectorArray:inspectorStringArray(columnNames) forKey:@&quot;columnNames&quot;];
+}
+
+- (NSArray/*&lt;NSString&gt;*/ *)columnNames
+{
+    return objcStringArray([super inspectorArrayForKey:@&quot;columnNames&quot;]);
+}
+
+- (void)setNotes:(NSString *)notes
+{
+    [super setString:notes forKey:@&quot;notes&quot;];
+}
+
+- (NSString *)notes
+{
+    return [super stringForKey:@&quot;notes&quot;];
+}
+
+- (void)setTimestamp:(double)timestamp
+{
+    [super setDouble:timestamp forKey:@&quot;timestamp&quot;];
+}
+
+- (double)timestamp
+{
+    return [super doubleForKey:@&quot;timestamp&quot;];
+}
+
+- (void)setValues:(RWIProtocolJSONObject *)values
+{
+    [super setObject:values forKey:@&quot;values&quot;];
+}
+
+- (RWIProtocolJSONObject *)values
+{
+    return [[RWIProtocolJSONObject alloc] initWithInspectorObject:[[super objectForKey:@&quot;values&quot;] toInspectorObject].get()];
+}
+
+- (void)setPayload:(RWIProtocolJSONObject *)payload
+{
+    [super setObject:payload forKey:@&quot;payload&quot;];
+}
+
+- (RWIProtocolJSONObject *)payload
+{
+    return [[RWIProtocolJSONObject alloc] initWithInspectorObject:[[super objectForKey:@&quot;payload&quot;] toInspectorObject].get()];
+}
+
+- (void)setError:(TestProtocolDatabaseError *)error
+{
+    [super setObject:error forKey:@&quot;error&quot;];
+}
+
+- (TestProtocolDatabaseError *)error
+{
+    return [[TestProtocolDatabaseError alloc] initWithInspectorObject:[[super objectForKey:@&quot;error&quot;] toInspectorObject].get()];
+}
+
+@end
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtyperequiringruntimecastsjsonresultfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtyperequiringruntimecastsjsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,1588 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+// Test.
+InspectorBackend.registerEnum(&quot;Test.UncastedAnimals&quot;, {Pigs: &quot;Pigs&quot;, Cows: &quot;Cows&quot;, Cats: &quot;Cats&quot;, Hens: &quot;Hens&quot;});
+InspectorBackend.registerEnum(&quot;Test.CastedAnimals&quot;, {Ducks: &quot;Ducks&quot;, Hens: &quot;Hens&quot;, Crows: &quot;Crows&quot;, Flamingos: &quot;Flamingos&quot;});
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+// Forward declarations.
+namespace Test {
+class TypeNeedingCast;
+class RecursiveObject1;
+class RecursiveObject2;
+enum class UncastedAnimals;
+enum class CastedAnimals;
+} // Test
+// End of forward declarations.
+
+
+// Typedefs.
+namespace Test {
+typedef int CastedObjectId;
+typedef int UncastedObjectId;
+} // Test
+// End of typedefs.
+
+namespace TestHelpers {
+
+String getEnumConstantValue(int code);
+
+template&lt;typename T&gt; String getEnumConstantValue(T enumValue)
+{
+    return getEnumConstantValue(static_cast&lt;int&gt;(enumValue));
+}
+
+} // namespace TestHelpers
+
+namespace Test {
+/* A dummy type that requires runtime casts, and forces non-primitive referenced types to also emit runtime cast helpers. */
+class TypeNeedingCast : public Inspector::InspectorObjectBase {
+public:
+    enum {
+        NoFieldsSet = 0,
+        StringSet = 1 &lt;&lt; 0,
+        NumberSet = 1 &lt;&lt; 1,
+        AnimalsSet = 1 &lt;&lt; 2,
+        IdSet = 1 &lt;&lt; 3,
+        TreeSet = 1 &lt;&lt; 4,
+        AllFieldsSet = (StringSet | NumberSet | AnimalsSet | IdSet | TreeSet)
+    };
+
+    template&lt;int STATE&gt;
+    class Builder {
+    private:
+        RefPtr&lt;InspectorObject&gt; m_result;
+
+        template&lt;int STEP&gt; Builder&lt;STATE | STEP&gt;&amp; castState()
+        {
+            return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
+        }
+
+        Builder(Ref&lt;/*TypeNeedingCast*/InspectorObject&gt;&amp;&amp; object)
+            : m_result(WTFMove(object))
+        {
+            COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
+        }
+        friend class TypeNeedingCast;
+    public:
+
+        Builder&lt;STATE | StringSet&gt;&amp; setString(const String&amp; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; StringSet), property_string_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;string&quot;), value);
+            return castState&lt;StringSet&gt;();
+        }
+
+        Builder&lt;STATE | NumberSet&gt;&amp; setNumber(int value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; NumberSet), property_number_already_set);
+            m_result-&gt;setInteger(ASCIILiteral(&quot;number&quot;), value);
+            return castState&lt;NumberSet&gt;();
+        }
+
+        Builder&lt;STATE | AnimalsSet&gt;&amp; setAnimals(Inspector::Protocol::Test::CastedAnimals value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; AnimalsSet), property_animals_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;animals&quot;), Inspector::Protocol::TestHelpers::getEnumConstantValue(value));
+            return castState&lt;AnimalsSet&gt;();
+        }
+
+        Builder&lt;STATE | IdSet&gt;&amp; setId(int value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; IdSet), property_id_already_set);
+            m_result-&gt;setInteger(ASCIILiteral(&quot;id&quot;), value);
+            return castState&lt;IdSet&gt;();
+        }
+
+        Builder&lt;STATE | TreeSet&gt;&amp; setTree(RefPtr&lt;Inspector::Protocol::Test::RecursiveObject1&gt; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; TreeSet), property_tree_already_set);
+            m_result-&gt;setObject(ASCIILiteral(&quot;tree&quot;), value);
+            return castState&lt;TreeSet&gt;();
+        }
+
+        Ref&lt;TypeNeedingCast&gt; release()
+        {
+            COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
+            COMPILE_ASSERT(sizeof(TypeNeedingCast) == sizeof(InspectorObject), cannot_cast);
+
+            Ref&lt;InspectorObject&gt; result = m_result.releaseNonNull();
+            return WTFMove(*reinterpret_cast&lt;Ref&lt;TypeNeedingCast&gt;*&gt;(&amp;result));
+        }
+    };
+
+    /*
+     * Synthetic constructor:
+     * Ref&lt;TypeNeedingCast&gt; result = TypeNeedingCast::create()
+     *     .setString(...)
+     *     .setNumber(...)
+     *     .setAnimals(...)
+     *     .setId(...)
+     *     .setTree(...)
+     *     .release();
+     */
+    static Builder&lt;NoFieldsSet&gt; create()
+    {
+        return Builder&lt;NoFieldsSet&gt;(InspectorObject::create());
+    }
+};
+
+/*  */
+enum class UncastedAnimals {
+    Pigs = 4,
+    Cows = 5,
+    Cats = 6,
+    Hens = 1,
+}; // enum class UncastedAnimals
+/*  */
+enum class CastedAnimals {
+    Ducks = 0,
+    Hens = 1,
+    Crows = 2,
+    Flamingos = 3,
+}; // enum class CastedAnimals
+class RecursiveObject1 : public Inspector::InspectorObjectBase {
+public:
+    enum {
+        NoFieldsSet = 0,
+        AllFieldsSet = 0
+    };
+
+    template&lt;int STATE&gt;
+    class Builder {
+    private:
+        RefPtr&lt;InspectorObject&gt; m_result;
+
+        template&lt;int STEP&gt; Builder&lt;STATE | STEP&gt;&amp; castState()
+        {
+            return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
+        }
+
+        Builder(Ref&lt;/*RecursiveObject1*/InspectorObject&gt;&amp;&amp; object)
+            : m_result(WTFMove(object))
+        {
+            COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
+        }
+        friend class RecursiveObject1;
+    public:
+
+        Ref&lt;RecursiveObject1&gt; release()
+        {
+            COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
+            COMPILE_ASSERT(sizeof(RecursiveObject1) == sizeof(InspectorObject), cannot_cast);
+
+            Ref&lt;InspectorObject&gt; result = m_result.releaseNonNull();
+            return WTFMove(*reinterpret_cast&lt;Ref&lt;RecursiveObject1&gt;*&gt;(&amp;result));
+        }
+    };
+
+    /*
+     * Synthetic constructor:
+     * Ref&lt;RecursiveObject1&gt; result = RecursiveObject1::create()
+     *     .release();
+     */
+    static Builder&lt;NoFieldsSet&gt; create()
+    {
+        return Builder&lt;NoFieldsSet&gt;(InspectorObject::create());
+    }
+
+    void setObj(RefPtr&lt;Inspector::Protocol::Test::RecursiveObject2&gt; value)
+    {
+        InspectorObjectBase::setObject(ASCIILiteral(&quot;obj&quot;), WTFMove(value));
+    }
+};
+
+class RecursiveObject2 : public Inspector::InspectorObjectBase {
+public:
+    enum {
+        NoFieldsSet = 0,
+        AllFieldsSet = 0
+    };
+
+    template&lt;int STATE&gt;
+    class Builder {
+    private:
+        RefPtr&lt;InspectorObject&gt; m_result;
+
+        template&lt;int STEP&gt; Builder&lt;STATE | STEP&gt;&amp; castState()
+        {
+            return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
+        }
+
+        Builder(Ref&lt;/*RecursiveObject2*/InspectorObject&gt;&amp;&amp; object)
+            : m_result(WTFMove(object))
+        {
+            COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
+        }
+        friend class RecursiveObject2;
+    public:
+
+        Ref&lt;RecursiveObject2&gt; release()
+        {
+            COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
+            COMPILE_ASSERT(sizeof(RecursiveObject2) == sizeof(InspectorObject), cannot_cast);
+
+            Ref&lt;InspectorObject&gt; result = m_result.releaseNonNull();
+            return WTFMove(*reinterpret_cast&lt;Ref&lt;RecursiveObject2&gt;*&gt;(&amp;result));
+        }
+    };
+
+    /*
+     * Synthetic constructor:
+     * Ref&lt;RecursiveObject2&gt; result = RecursiveObject2::create()
+     *     .release();
+     */
+    static Builder&lt;NoFieldsSet&gt; create()
+    {
+        return Builder&lt;NoFieldsSet&gt;(InspectorObject::create());
+    }
+
+    void setObj(RefPtr&lt;Inspector::Protocol::Test::RecursiveObject1&gt; value)
+    {
+        InspectorObjectBase::setObject(ASCIILiteral(&quot;obj&quot;), WTFMove(value));
+    }
+};
+
+} // Test
+
+template&lt;&gt; struct BindingTraits&lt;Inspector::Protocol::Test::CastedAnimals&gt; {
+#if !ASSERT_DISABLED
+static void assertValueHasExpectedType(Inspector::InspectorValue*);
+#endif // !ASSERT_DISABLED
+};
+template&lt;&gt; struct BindingTraits&lt;Inspector::Protocol::Test::TypeNeedingCast&gt; {
+static RefPtr&lt;Inspector::Protocol::Test::TypeNeedingCast&gt; runtimeCast(RefPtr&lt;Inspector::InspectorValue&gt;&amp;&amp; value);
+#if !ASSERT_DISABLED
+static void assertValueHasExpectedType(Inspector::InspectorValue*);
+#endif // !ASSERT_DISABLED
+};
+template&lt;&gt; struct BindingTraits&lt;Inspector::Protocol::Test::RecursiveObject1&gt; {
+#if !ASSERT_DISABLED
+static void assertValueHasExpectedType(Inspector::InspectorValue*);
+#endif // !ASSERT_DISABLED
+};
+template&lt;&gt; struct BindingTraits&lt;Inspector::Protocol::Test::RecursiveObject2&gt; {
+#if !ASSERT_DISABLED
+static void assertValueHasExpectedType(Inspector::InspectorValue*);
+#endif // !ASSERT_DISABLED
+};
+
+namespace TestHelpers {
+
+template&lt;typename ProtocolEnumType&gt;
+std::optional&lt;ProtocolEnumType&gt; parseEnumValueFromString(const String&amp;);
+
+// Enums in the 'Test' Domain
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Test::UncastedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Test::UncastedAnimals&gt;(const String&amp;);
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Test::CastedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Test::CastedAnimals&gt;(const String&amp;);
+
+} // namespace TestHelpers
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+namespace TestHelpers {
+
+static const char* const enum_constant_values[] = {
+    &quot;Ducks&quot;,
+    &quot;Hens&quot;,
+    &quot;Crows&quot;,
+    &quot;Flamingos&quot;,
+    &quot;Pigs&quot;,
+    &quot;Cows&quot;,
+    &quot;Cats&quot;,
+};
+
+String getEnumConstantValue(int code) {
+    return enum_constant_values[code];
+}
+
+// Enums in the 'Test' Domain
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Test::UncastedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Test::UncastedAnimals&gt;(const String&amp; protocolString)
+{
+    static const size_t constantValues[] = {
+        (size_t)Inspector::Protocol::Test::UncastedAnimals::Pigs,
+        (size_t)Inspector::Protocol::Test::UncastedAnimals::Cows,
+        (size_t)Inspector::Protocol::Test::UncastedAnimals::Cats,
+        (size_t)Inspector::Protocol::Test::UncastedAnimals::Hens,
+    };
+    for (size_t i = 0; i &lt; 4; ++i)
+        if (protocolString == enum_constant_values[constantValues[i]])
+            return (Inspector::Protocol::Test::UncastedAnimals)constantValues[i];
+
+    return std::nullopt;
+}
+
+template&lt;&gt;
+std::optional&lt;Inspector::Protocol::Test::CastedAnimals&gt; parseEnumValueFromString&lt;Inspector::Protocol::Test::CastedAnimals&gt;(const String&amp; protocolString)
+{
+    static const size_t constantValues[] = {
+        (size_t)Inspector::Protocol::Test::CastedAnimals::Ducks,
+        (size_t)Inspector::Protocol::Test::CastedAnimals::Hens,
+        (size_t)Inspector::Protocol::Test::CastedAnimals::Crows,
+        (size_t)Inspector::Protocol::Test::CastedAnimals::Flamingos,
+    };
+    for (size_t i = 0; i &lt; 4; ++i)
+        if (protocolString == enum_constant_values[constantValues[i]])
+            return (Inspector::Protocol::Test::CastedAnimals)constantValues[i];
+
+    return std::nullopt;
+}
+
+
+} // namespace TestHelpers
+
+
+
+#if !ASSERT_DISABLED
+void BindingTraits&lt;Inspector::Protocol::Test::CastedAnimals&gt;::assertValueHasExpectedType(Inspector::InspectorValue* value)
+{
+    ASSERT_ARG(value, value);
+    String result;
+    bool castSucceeded = value-&gt;asString(result);
+    ASSERT(castSucceeded);
+    ASSERT(result == &quot;Ducks&quot; || result == &quot;Hens&quot; || result == &quot;Crows&quot; || result == &quot;Flamingos&quot;);
+}
+#endif // !ASSERT_DISABLED
+
+#if !ASSERT_DISABLED
+void BindingTraits&lt;Inspector::Protocol::Test::TypeNeedingCast&gt;::assertValueHasExpectedType(Inspector::InspectorValue* value)
+{
+    ASSERT_ARG(value, value);
+    RefPtr&lt;InspectorObject&gt; object;
+    bool castSucceeded = value-&gt;asObject(object);
+    ASSERT_UNUSED(castSucceeded, castSucceeded);
+    {
+        InspectorObject::iterator stringPos = object-&gt;find(ASCIILiteral(&quot;string&quot;));
+        ASSERT(stringPos != object-&gt;end());
+        BindingTraits&lt;String&gt;::assertValueHasExpectedType(stringPos-&gt;value.get());
+    }
+    {
+        InspectorObject::iterator numberPos = object-&gt;find(ASCIILiteral(&quot;number&quot;));
+        ASSERT(numberPos != object-&gt;end());
+        BindingTraits&lt;int&gt;::assertValueHasExpectedType(numberPos-&gt;value.get());
+    }
+    {
+        InspectorObject::iterator animalsPos = object-&gt;find(ASCIILiteral(&quot;animals&quot;));
+        ASSERT(animalsPos != object-&gt;end());
+        BindingTraits&lt;Inspector::Protocol::Test::CastedAnimals&gt;::assertValueHasExpectedType(animalsPos-&gt;value.get());
+    }
+    {
+        InspectorObject::iterator idPos = object-&gt;find(ASCIILiteral(&quot;id&quot;));
+        ASSERT(idPos != object-&gt;end());
+        BindingTraits&lt;int&gt;::assertValueHasExpectedType(idPos-&gt;value.get());
+    }
+    {
+        InspectorObject::iterator treePos = object-&gt;find(ASCIILiteral(&quot;tree&quot;));
+        ASSERT(treePos != object-&gt;end());
+        BindingTraits&lt;Inspector::Protocol::Test::RecursiveObject1&gt;::assertValueHasExpectedType(treePos-&gt;value.get());
+    }
+
+    int foundPropertiesCount = 5;
+    if (foundPropertiesCount != object-&gt;size())
+        FATAL(&quot;Unexpected properties in object: %s\n&quot;, object-&gt;toJSONString().ascii().data());
+}
+#endif // !ASSERT_DISABLED
+
+RefPtr&lt;Inspector::Protocol::Test::TypeNeedingCast&gt; BindingTraits&lt;Inspector::Protocol::Test::TypeNeedingCast&gt;::runtimeCast(RefPtr&lt;InspectorValue&gt;&amp;&amp; value)
+{
+    RefPtr&lt;InspectorObject&gt; result;
+    bool castSucceeded = value-&gt;asObject(result);
+    ASSERT_UNUSED(castSucceeded, castSucceeded);
+#if !ASSERT_DISABLED
+    BindingTraits&lt;Inspector::Protocol::Test::TypeNeedingCast&gt;::assertValueHasExpectedType(result.get());
+#endif  // !ASSERT_DISABLED
+    COMPILE_ASSERT(sizeof(Inspector::Protocol::Test::TypeNeedingCast) == sizeof(InspectorObjectBase), type_cast_problem);
+    return static_cast&lt;Inspector::Protocol::Test::TypeNeedingCast*&gt;(static_cast&lt;InspectorObjectBase*&gt;(result.get()));
+}
+
+
+#if !ASSERT_DISABLED
+void BindingTraits&lt;Inspector::Protocol::Test::RecursiveObject1&gt;::assertValueHasExpectedType(Inspector::InspectorValue* value)
+{
+    ASSERT_ARG(value, value);
+    RefPtr&lt;InspectorObject&gt; object;
+    bool castSucceeded = value-&gt;asObject(object);
+    ASSERT_UNUSED(castSucceeded, castSucceeded);
+
+    int foundPropertiesCount = 0;
+    {
+        InspectorObject::iterator objPos = object-&gt;find(ASCIILiteral(&quot;obj&quot;));
+        if (objPos != object-&gt;end()) {
+            BindingTraits&lt;Inspector::Protocol::Test::RecursiveObject2&gt;::assertValueHasExpectedType(objPos-&gt;value.get());
+            ++foundPropertiesCount;
+        }
+    }
+    if (foundPropertiesCount != object-&gt;size())
+        FATAL(&quot;Unexpected properties in object: %s\n&quot;, object-&gt;toJSONString().ascii().data());
+}
+#endif // !ASSERT_DISABLED
+
+#if !ASSERT_DISABLED
+void BindingTraits&lt;Inspector::Protocol::Test::RecursiveObject2&gt;::assertValueHasExpectedType(Inspector::InspectorValue* value)
+{
+    ASSERT_ARG(value, value);
+    RefPtr&lt;InspectorObject&gt; object;
+    bool castSucceeded = value-&gt;asObject(object);
+    ASSERT_UNUSED(castSucceeded, castSucceeded);
+
+    int foundPropertiesCount = 0;
+    {
+        InspectorObject::iterator objPos = object-&gt;find(ASCIILiteral(&quot;obj&quot;));
+        if (objPos != object-&gt;end()) {
+            BindingTraits&lt;Inspector::Protocol::Test::RecursiveObject1&gt;::assertValueHasExpectedType(objPos-&gt;value.get());
+            ++foundPropertiesCount;
+        }
+    }
+    if (foundPropertiesCount != object-&gt;size())
+        FATAL(&quot;Unexpected properties in object: %s\n&quot;, object-&gt;toJSONString().ascii().data());
+}
+#endif // !ASSERT_DISABLED
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+
+
+namespace Inspector {
+
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [super dealloc];
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+@class TestProtocolTestTypeNeedingCast;
+@class TestProtocolTestRecursiveObject1;
+@class TestProtocolTestRecursiveObject2;
+
+
+typedef NS_ENUM(NSInteger, TestProtocolTestUncastedAnimals) {
+    TestProtocolTestUncastedAnimalsPigs,
+    TestProtocolTestUncastedAnimalsCows,
+    TestProtocolTestUncastedAnimalsCats,
+    TestProtocolTestUncastedAnimalsHens,
+};
+
+typedef NS_ENUM(NSInteger, TestProtocolTestCastedAnimals) {
+    TestProtocolTestCastedAnimalsDucks,
+    TestProtocolTestCastedAnimalsHens,
+    TestProtocolTestCastedAnimalsCrows,
+    TestProtocolTestCastedAnimalsFlamingos,
+};
+
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolTestTypeNeedingCast : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+- (instancetype)initWithString:(NSString *)string number:(int)number animals:(TestProtocolTestCastedAnimals)animals identifier:(int)identifier tree:(TestProtocolTestRecursiveObject1 *)tree;
+/* required */ @property (nonatomic, copy) NSString *string;
+/* required */ @property (nonatomic, assign) int number;
+/* required */ @property (nonatomic, assign) TestProtocolTestCastedAnimals animals;
+/* required */ @property (nonatomic, assign) int identifier;
+/* required */ @property (nonatomic, retain) TestProtocolTestRecursiveObject1 *tree;
+@end
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolTestRecursiveObject1 : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+/* optional */ @property (nonatomic, retain) TestProtocolTestRecursiveObject2 *obj;
+@end
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolTestRecursiveObject2 : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+/* optional */ @property (nonatomic, retain) TestProtocolTestRecursiveObject1 *obj;
+@end
+
+
+
+
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+
+inline String toProtocolString(TestProtocolTestUncastedAnimals value)
+{
+    switch(value) {
+    case TestProtocolTestUncastedAnimalsPigs:
+        return ASCIILiteral(&quot;Pigs&quot;);
+    case TestProtocolTestUncastedAnimalsCows:
+        return ASCIILiteral(&quot;Cows&quot;);
+    case TestProtocolTestUncastedAnimalsCats:
+        return ASCIILiteral(&quot;Cats&quot;);
+    case TestProtocolTestUncastedAnimalsHens:
+        return ASCIILiteral(&quot;Hens&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolTestUncastedAnimals fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;Pigs&quot;)
+        return TestProtocolTestUncastedAnimalsPigs;
+    if (value == &quot;Cows&quot;)
+        return TestProtocolTestUncastedAnimalsCows;
+    if (value == &quot;Cats&quot;)
+        return TestProtocolTestUncastedAnimalsCats;
+    if (value == &quot;Hens&quot;)
+        return TestProtocolTestUncastedAnimalsHens;
+    ASSERT_NOT_REACHED();
+    return TestProtocolTestUncastedAnimalsPigs;
+}
+
+inline String toProtocolString(TestProtocolTestCastedAnimals value)
+{
+    switch(value) {
+    case TestProtocolTestCastedAnimalsDucks:
+        return ASCIILiteral(&quot;Ducks&quot;);
+    case TestProtocolTestCastedAnimalsHens:
+        return ASCIILiteral(&quot;Hens&quot;);
+    case TestProtocolTestCastedAnimalsCrows:
+        return ASCIILiteral(&quot;Crows&quot;);
+    case TestProtocolTestCastedAnimalsFlamingos:
+        return ASCIILiteral(&quot;Flamingos&quot;);
+    }
+}
+
+template&lt;&gt;
+inline TestProtocolTestCastedAnimals fromProtocolString(const String&amp; value)
+{
+    if (value == &quot;Ducks&quot;)
+        return TestProtocolTestCastedAnimalsDucks;
+    if (value == &quot;Hens&quot;)
+        return TestProtocolTestCastedAnimalsHens;
+    if (value == &quot;Crows&quot;)
+        return TestProtocolTestCastedAnimalsCrows;
+    if (value == &quot;Flamingos&quot;)
+        return TestProtocolTestCastedAnimalsFlamingos;
+    ASSERT_NOT_REACHED();
+    return TestProtocolTestCastedAnimalsDucks;
+}
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+@interface TestProtocolTypeConversions (TestDomain)
+
++ (void)_parseTypeNeedingCast:(TestProtocolTestTypeNeedingCast **)outValue fromPayload:(id)payload;
++ (void)_parseCastedObjectId:(NSNumber **)outValue fromPayload:(id)payload;
++ (void)_parseUncastedObjectId:(NSNumber **)outValue fromPayload:(id)payload;
++ (void)_parseUncastedAnimals:(NSNumber **)outValue fromPayload:(id)payload;
++ (void)_parseCastedAnimals:(NSNumber **)outValue fromPayload:(id)payload;
++ (void)_parseRecursiveObject1:(TestProtocolTestRecursiveObject1 **)outValue fromPayload:(id)payload;
++ (void)_parseRecursiveObject2:(TestProtocolTestRecursiveObject2 **)outValue fromPayload:(id)payload;
+
+@end
+
+@implementation TestProtocolTypeConversions (TestDomain)
+
++ (void)_parseTypeNeedingCast:(TestProtocolTestTypeNeedingCast **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolTestTypeNeedingCast alloc] initWithPayload:payload];
+}
+
++ (void)_parseCastedObjectId:(NSNumber **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSNumber class]);
+    *outValue = (NSNumber *)payload;
+}
+
++ (void)_parseUncastedObjectId:(NSNumber **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSNumber class]);
+    *outValue = (NSNumber *)payload;
+}
+
++ (void)_parseUncastedAnimals:(NSNumber **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSString class]);
+    *outValue = @(Inspector::fromProtocolString&lt;TestProtocolTestUncastedAnimals&gt;(payload));
+}
+
++ (void)_parseCastedAnimals:(NSNumber **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSString class]);
+    *outValue = @(Inspector::fromProtocolString&lt;TestProtocolTestCastedAnimals&gt;(payload));
+}
+
++ (void)_parseRecursiveObject1:(TestProtocolTestRecursiveObject1 **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolTestRecursiveObject1 alloc] initWithPayload:payload];
+}
+
++ (void)_parseRecursiveObject2:(TestProtocolTestRecursiveObject2 **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolTestRecursiveObject2 alloc] initWithPayload:payload];
+}
+
+@end
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+@implementation TestProtocolTestTypeNeedingCast
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;string&quot;], @&quot;string&quot;);
+    self.string = payload[@&quot;string&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;number&quot;], @&quot;number&quot;);
+    self.number = [payload[@&quot;number&quot;] integerValue];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;animals&quot;], @&quot;animals&quot;);
+    self.animals = fromProtocolString&lt;TestProtocolTestCastedAnimals&gt;(payload[@&quot;animals&quot;]);
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;identifier&quot;], @&quot;identifier&quot;);
+    self.identifier = [payload[@&quot;id&quot;] integerValue];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;tree&quot;], @&quot;tree&quot;);
+    self.tree = [[TestProtocolTestRecursiveObject1 alloc] initWithPayload:payload[@&quot;tree&quot;]];
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+- (instancetype)initWithString:(NSString *)string number:(int)number animals:(TestProtocolTestCastedAnimals)animals identifier:(int)identifier tree:(TestProtocolTestRecursiveObject1 *)tree
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(string, @&quot;string&quot;);
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(tree, @&quot;tree&quot;);
+
+    self.string = string;
+    self.number = number;
+    self.animals = animals;
+    self.identifier = identifier;
+    self.tree = tree;
+
+    return self;
+}
+
+- (void)setString:(NSString *)string
+{
+    [super setString:string forKey:@&quot;string&quot;];
+}
+
+- (NSString *)string
+{
+    return [super stringForKey:@&quot;string&quot;];
+}
+
+- (void)setNumber:(int)number
+{
+    [super setInteger:number forKey:@&quot;number&quot;];
+}
+
+- (int)number
+{
+    return [super integerForKey:@&quot;number&quot;];
+}
+
+- (void)setAnimals:(TestProtocolTestCastedAnimals)animals
+{
+    [super setString:toProtocolString(animals) forKey:@&quot;animals&quot;];
+}
+
+- (TestProtocolTestCastedAnimals)animals
+{
+    return fromProtocolString&lt;TestProtocolTestCastedAnimals&gt;([super stringForKey:@&quot;animals&quot;]);
+}
+
+- (void)setIdentifier:(int)identifier
+{
+    [super setInteger:identifier forKey:@&quot;id&quot;];
+}
+
+- (int)identifier
+{
+    return [super integerForKey:@&quot;id&quot;];
+}
+
+- (void)setTree:(TestProtocolTestRecursiveObject1 *)tree
+{
+    [super setObject:tree forKey:@&quot;tree&quot;];
+}
+
+- (TestProtocolTestRecursiveObject1 *)tree
+{
+    return [[TestProtocolTestRecursiveObject1 alloc] initWithInspectorObject:[[super objectForKey:@&quot;tree&quot;] toInspectorObject].get()];
+}
+
+@end
+
+@implementation TestProtocolTestRecursiveObject1
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    self.obj = [[TestProtocolTestRecursiveObject2 alloc] initWithPayload:payload[@&quot;obj&quot;]];
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+- (void)setObj:(TestProtocolTestRecursiveObject2 *)obj
+{
+    [super setObject:obj forKey:@&quot;obj&quot;];
+}
+
+- (TestProtocolTestRecursiveObject2 *)obj
+{
+    return [[TestProtocolTestRecursiveObject2 alloc] initWithInspectorObject:[[super objectForKey:@&quot;obj&quot;] toInspectorObject].get()];
+}
+
+@end
+
+@implementation TestProtocolTestRecursiveObject2
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    self.obj = [[TestProtocolTestRecursiveObject1 alloc] initWithPayload:payload[@&quot;obj&quot;]];
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+- (void)setObj:(TestProtocolTestRecursiveObject1 *)obj
+{
+    [super setObject:obj forKey:@&quot;obj&quot;];
+}
+
+- (TestProtocolTestRecursiveObject1 *)obj
+{
+    return [[TestProtocolTestRecursiveObject1 alloc] initWithInspectorObject:[[super objectForKey:@&quot;obj&quot;] toInspectorObject].get()];
+}
+
+@end
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailondomainavailabilityjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailondomainavailabilityjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-availability.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-domain-availability.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-availability.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-availability.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;WebOnly&quot;,
+    &quot;availability&quot;: &quot;webb&quot;,
+    &quot;commands&quot;: [
+        {
+            &quot;name&quot;: &quot;enable&quot;
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonduplicatecommandcallparameternamesjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailonduplicatecommandcallparameternamesjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-call-parameter-names.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-command-call-parameter-names.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-call-parameter-names.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-call-parameter-names.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Overlay&quot;,
+    &quot;commands&quot;: [
+        {
+            &quot;name&quot;: &quot;processPoints&quot;,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;point&quot;, &quot;type&quot;: &quot;number&quot; },
+                { &quot;name&quot;: &quot;point&quot;, &quot;type&quot;: &quot;number&quot; }
+            ],
+            &quot;returns&quot;: [
+                { &quot;name&quot;: &quot;result1&quot;, &quot;type&quot;: &quot;string&quot; },
+                { &quot;name&quot;: &quot;result2&quot;, &quot;type&quot;: &quot;string&quot; }
+            ]
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonduplicatecommandreturnparameternamesjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailonduplicatecommandreturnparameternamesjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-return-parameter-names.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-command-return-parameter-names.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-return-parameter-names.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-return-parameter-names.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Overlay&quot;,
+    &quot;commands&quot;: [
+        {
+            &quot;name&quot;: &quot;processPoints&quot;,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;point1&quot;, &quot;type&quot;: &quot;number&quot; },
+                { &quot;name&quot;: &quot;point2&quot;, &quot;type&quot;: &quot;number&quot; }
+            ],
+            &quot;returns&quot;: [
+                { &quot;name&quot;: &quot;result&quot;, &quot;type&quot;: &quot;string&quot; },
+                { &quot;name&quot;: &quot;result&quot;, &quot;type&quot;: &quot;string&quot; }
+            ]
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonduplicateeventparameternamesjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailonduplicateeventparameternamesjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-event-parameter-names.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-event-parameter-names.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-event-parameter-names.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-event-parameter-names.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Overlay&quot;,
+    &quot;events&quot;: [
+        {
+            &quot;name&quot;: &quot;processedPoints&quot;,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;point&quot;, &quot;type&quot;: &quot;number&quot; },
+                { &quot;name&quot;: &quot;point&quot;, &quot;type&quot;: &quot;number&quot; }
+            ]
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonduplicatetypedeclarationsjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailonduplicatetypedeclarationsjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-declarations.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-type-declarations.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-declarations.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-declarations.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Runtime&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;RemoteObjectId&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;description&quot;: &quot;Unique object identifier.&quot;
+        },
+        {
+            &quot;id&quot;: &quot;RemoteObjectId&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;description&quot;: &quot;Unique object identifier.&quot;
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonduplicatetypemembernamesjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailonduplicatetypemembernamesjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-member-names.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-duplicate-type-member-names.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-member-names.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-member-names.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+[
+{
+    &quot;domain&quot;: &quot;OverlayTypes&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;Point&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: &quot;integer&quot; },
+                { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: &quot;integer&quot; }
+            ]
+        }
+    ]
+}
+]
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonenumwithnovaluesjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailonenumwithnovaluesjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-enum-with-no-values.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-enum-with-no-values.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-enum-with-no-values.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-enum-with-no-values.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Database&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;PrimaryColors&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;enum&quot;: []
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonnumbertypedoptionalparameterflagjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailonnumbertypedoptionalparameterflagjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-parameter-flag.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-number-typed-optional-parameter-flag.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-parameter-flag.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-parameter-flag.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Database&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;DatabaseId&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;description&quot;: &quot;Unique identifier of Database object.&quot;
+        }
+    ],
+    &quot;events&quot;: [
+        {
+            &quot;name&quot;: &quot;didExecuteOptionalParameters&quot;,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: 0 }
+            ]
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonnumbertypedoptionaltypememberjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailonnumbertypedoptionaltypememberjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-type-member.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-number-typed-optional-type-member.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-type-member.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-type-member.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+[
+{
+    &quot;domain&quot;: &quot;Database&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;Error&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;description&quot;: &quot;Database error.&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
+                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot;, &quot;optional&quot;: 0 }
+            ]
+        }
+    ]
+}
+]
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonstringtypedoptionalparameterflagjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailonstringtypedoptionalparameterflagjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-parameter-flag.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-string-typed-optional-parameter-flag.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-parameter-flag.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-parameter-flag.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Database&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;DatabaseId&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;description&quot;: &quot;Unique identifier of Database object.&quot;
+        }
+    ],
+    &quot;events&quot;: [
+        {
+            &quot;name&quot;: &quot;didExecuteOptionalParameters&quot;,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: &quot;true&quot; }
+            ]
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonstringtypedoptionaltypememberjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailonstringtypedoptionaltypememberjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-type-member.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-string-typed-optional-type-member.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-type-member.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-type-member.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+[
+{
+    &quot;domain&quot;: &quot;Database&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;Error&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;description&quot;: &quot;Database error.&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
+                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot;, &quot;optional&quot;: &quot;false&quot; }
+            ]
+        }
+    ]
+}
+]
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailontypedeclarationusingtypereferencejsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailontypedeclarationusingtypereferencejson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-declaration-using-type-reference.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-type-declaration-using-type-reference.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-declaration-using-type-reference.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-declaration-using-type-reference.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+[
+{
+    &quot;domain&quot;: &quot;Runtime&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;RemoteObjectId&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;$ref&quot;: &quot;SomeType&quot;,
+            &quot;description&quot;: &quot;Unique object identifier.&quot;
+        }
+    ]
+}
+]
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailontypereferenceasprimitivetypejsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailontypereferenceasprimitivetypejson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-reference-as-primitive-type.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-type-reference-as-primitive-type.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-reference-as-primitive-type.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-reference-as-primitive-type.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Database&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;DatabaseId&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;description&quot;: &quot;Unique identifier of Database object.&quot;
+        }
+    ],
+    &quot;events&quot;: [
+        {
+            &quot;name&quot;: &quot;didExecuteOptionalParameters&quot;,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;DatabaseId&quot; }
+            ]
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailontypewithlowercasenamejsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailontypewithlowercasenamejson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-with-lowercase-name.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-type-with-lowercase-name.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-with-lowercase-name.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-with-lowercase-name.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Database&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;databaseId&quot;,
+            &quot;type&quot;: &quot;integer&quot;,
+            &quot;description&quot;: &quot;Unique identifier of Database object.&quot;
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonunknowntypereferenceintypedeclarationjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailonunknowntypereferenceintypedeclarationjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-declaration.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-unknown-type-reference-in-type-declaration.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-declaration.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-declaration.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+[
+{
+    &quot;domain&quot;: &quot;Runtime&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;RemoteObjectId&quot;,
+            &quot;type&quot;: &quot;dragon&quot;,
+            &quot;description&quot;: &quot;Unique object identifier.&quot;
+        }
+    ]
+}
+]
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailonunknowntypereferenceintypememberjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsfailonunknowntypereferenceintypememberjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-member.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/fail-on-unknown-type-reference-in-type-member.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-member.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-member.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+[
+{
+    &quot;domain&quot;: &quot;Fantasy&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;DragonEgg&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;description&quot;: &quot;A dragon egg.&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;color&quot;, &quot;$ref&quot;: &quot;Color&quot; }
+            ]
+        }
+    ]
+}
+]
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericgeneratedomainswithfeatureguardsjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsgeneratedomainswithfeatureguardsjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/generate-domains-with-feature-guards.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/generate-domains-with-feature-guards.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/generate-domains-with-feature-guards.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/generate-domains-with-feature-guards.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+[
+{
+    &quot;domain&quot;: &quot;Network1&quot;,
+    &quot;featureGuard&quot;: &quot;PLATFORM(WEB_COMMANDS)&quot;,
+    &quot;commands&quot;: [
+        {
+            &quot;name&quot;: &quot;loadResource&quot;,
+            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
+        }
+    ]
+},
+{
+    &quot;domain&quot;: &quot;Network2&quot;,
+    &quot;featureGuard&quot;: &quot;PLATFORM(WEB_TYPES)&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;NetworkError&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
+                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot; }
+            ]
+        }
+    ]
+},
+{
+    &quot;domain&quot;: &quot;Network3&quot;,
+    &quot;featureGuard&quot;: &quot;PLATFORM(WEB_EVENTS)&quot;,
+    &quot;events&quot;: [
+        {
+            &quot;name&quot;: &quot;resourceLoaded&quot;,
+            &quot;description&quot;: &quot;A resource was loaded.&quot;
+        }
+    ]
+}
+]
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericsametypeiddifferentdomainjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestssametypeiddifferentdomainjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/same-type-id-different-domain.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/same-type-id-different-domain.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/same-type-id-different-domain.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/same-type-id-different-domain.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+[
+{
+    &quot;domain&quot;: &quot;Runtime&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;RemoteObjectId&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;description&quot;: &quot;Unique object identifier.&quot;
+        }
+    ]
+},
+{
+    &quot;domain&quot;: &quot;Runtime2&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;RemoteObjectId&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;description&quot;: &quot;Unique object identifier.&quot;
+        }
+    ]
+}
+]
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericshadowedoptionaltypesettersjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptstestsshadowedoptionaltypesettersjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/shadowed-optional-type-setters.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/shadowed-optional-type-setters.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/shadowed-optional-type-setters.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/shadowed-optional-type-setters.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,31 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Runtime&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;KeyPath&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;description&quot;: &quot;Key path.&quot;,
+            &quot;properties&quot;: [
+                {
+                    &quot;name&quot;: &quot;type&quot;,
+                    &quot;type&quot;: &quot;string&quot;,
+                    &quot;enum&quot;: [&quot;null&quot;, &quot;string&quot;, &quot;array&quot;],
+                    &quot;description&quot;: &quot;Key path type.&quot;
+                },
+                {
+                    &quot;name&quot;: &quot;string&quot;,
+                    &quot;type&quot;: &quot;string&quot;,
+                    &quot;optional&quot;: true,
+                    &quot;description&quot;: &quot;String value.&quot;
+                },
+                {
+                    &quot;name&quot;: &quot;array&quot;,
+                    &quot;type&quot;: &quot;array&quot;,
+                    &quot;optional&quot;: true,
+                    &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; },
+                    &quot;description&quot;: &quot;Array value.&quot;
+                }
+            ]
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenerictypedeclarationaliasedprimitivetypejsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptsteststypedeclarationaliasedprimitivetypejson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-aliased-primitive-type.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-aliased-primitive-type.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-aliased-primitive-type.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-aliased-primitive-type.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Runtime&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;RemoteObjectId&quot;,
+            &quot;type&quot;: &quot;integer&quot;,
+            &quot;description&quot;: &quot;Unique object identifier.&quot;
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenerictypedeclarationarraytypejsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptsteststypedeclarationarraytypejson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-array-type.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-array-type.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-array-type.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-array-type.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,50 @@
</span><ins>+[
+{
+    &quot;domain&quot;: &quot;Debugger&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;BreakpointId&quot;,
+            &quot;type&quot;: &quot;integer&quot;
+        },
+        {
+            &quot;id&quot;: &quot;Reason&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;enum&quot;: [&quot;Died&quot;, &quot;Fainted&quot;, &quot;Hungry&quot;]
+        }
+    ]
+},
+{
+    &quot;domain&quot;: &quot;Runtime&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;ObjectId&quot;,
+            &quot;type&quot;: &quot;integer&quot;
+        },
+        {
+            &quot;id&quot;: &quot;LuckyNumbers&quot;,
+            &quot;type&quot;: &quot;array&quot;,
+            &quot;items&quot;: { &quot;type&quot;: &quot;integer&quot; }
+        },
+        {
+            &quot;id&quot;: &quot;BabyNames&quot;,
+            &quot;type&quot;: &quot;array&quot;,
+            &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; }
+        },
+        {
+            &quot;id&quot;: &quot;NewObjects&quot;,
+            &quot;type&quot;: &quot;array&quot;,
+            &quot;items&quot;: { &quot;$ref&quot;: &quot;ObjectId&quot; }
+        },
+        {
+            &quot;id&quot;: &quot;OldObjects&quot;,
+            &quot;type&quot;: &quot;array&quot;,
+            &quot;items&quot;: { &quot;$ref&quot;: &quot;Debugger.BreakpointId&quot; }
+        },
+        {
+            &quot;id&quot;: &quot;StopReasons&quot;,
+            &quot;type&quot;: &quot;array&quot;,
+            &quot;items&quot;: { &quot;$ref&quot;: &quot;Debugger.Reason&quot; }
+        }
+    ]
+}
+]
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenerictypedeclarationenumtypejsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptsteststypedeclarationenumtypejson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-enum-type.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-enum-type.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-enum-type.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-enum-type.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Runtime&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;FarmAnimals&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;enum&quot;: [&quot;Pigs&quot;, &quot;Cows&quot;, &quot;Cats&quot;, &quot;Hens&quot;]
+        },
+        {
+            &quot;id&quot;: &quot;TwoLeggedAnimals&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;enum&quot;: [&quot;Ducks&quot;, &quot;Hens&quot;, &quot;Crows&quot;, &quot;Flamingos&quot;]
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenerictypedeclarationobjecttypejsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptsteststypedeclarationobjecttypejson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-object-type.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-object-type.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-object-type.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-object-type.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,83 @@
</span><ins>+[
+{
+    &quot;domain&quot;: &quot;Database&quot;,
+    &quot;description&quot;: &quot;Test type builder generation of various object types.&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;Error&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;description&quot;: &quot;Database error.&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
+                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot; }
+            ]
+        },
+        {
+            &quot;id&quot;: &quot;ErrorList&quot;,
+            &quot;type&quot;: &quot;array&quot;,
+            &quot;items&quot;: { &quot;$ref&quot;: &quot;Error&quot; }
+        },
+        {
+            &quot;id&quot;: &quot;OptionalParameterBundle&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;optional&quot;: true, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
+                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;error&quot;, &quot;$ref&quot;: &quot;Error&quot;, &quot;optional&quot;: true },
+                { &quot;name&quot;: &quot;errorList&quot;, &quot;$ref&quot;: &quot;ErrorList&quot;, &quot;optional&quot;: true }
+            ]
+        },
+        {
+            &quot;id&quot;: &quot;ParameterBundle&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
+                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot; },
+                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot; },
+                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot; },
+                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot; },
+                { &quot;name&quot;: &quot;error&quot;, &quot;$ref&quot;: &quot;Error&quot; },
+                { &quot;name&quot;: &quot;errorList&quot;, &quot;$ref&quot;: &quot;ErrorList&quot; }
+            ]
+        },
+        {
+            &quot;id&quot;: &quot;ObjectWithPropertyNameConflicts&quot;,
+            &quot;description&quot;: &quot;Conflicted names may cause generated getters/setters to clash with built-in InspectorObject methods.&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;integer&quot;, &quot;type&quot;: &quot;string&quot; },
+                { &quot;name&quot;: &quot;array&quot;, &quot;type&quot;: &quot;string&quot; },
+                { &quot;name&quot;: &quot;string&quot;, &quot;type&quot;: &quot;string&quot; },
+                { &quot;name&quot;: &quot;value&quot;, &quot;type&quot;: &quot;string&quot; },
+                { &quot;name&quot;: &quot;object&quot;, &quot;type&quot;: &quot;string&quot; }
+            ]
+        },
+        {
+            &quot;id&quot;: &quot;DummyObject&quot;,
+            &quot;description&quot;: &quot;An open object that doesn't have any predefined fields.&quot;,
+            &quot;type&quot;: &quot;object&quot;
+        }
+    ]
+},
+{
+    &quot;domain&quot;: &quot;Test&quot;,
+    &quot;description&quot;: &quot;Test the generation of special behaviors that only apply to specific classes.&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;ParameterBundle&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
+                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot; },
+                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot; },
+                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot; },
+                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot; },
+                { &quot;name&quot;: &quot;error&quot;, &quot;$ref&quot;: &quot;Database.Error&quot; }
+            ]
+        }
+    ]
+}
+]
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenerictyperequiringruntimecastsjsonfromrev210307trunkSourceJavaScriptCoreinspectorscriptsteststyperequiringruntimecastsjson"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-requiring-runtime-casts.json (from rev 210307, trunk/Source/JavaScriptCore/inspector/scripts/tests/type-requiring-runtime-casts.json) (0 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-requiring-runtime-casts.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/type-requiring-runtime-casts.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -0,0 +1,51 @@
</span><ins>+[
+{
+    &quot;domain&quot;: &quot;Test&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;TypeNeedingCast&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;description&quot;: &quot;A dummy type that requires runtime casts, and forces non-primitive referenced types to also emit runtime cast helpers.&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;string&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;String member.&quot; },
+                { &quot;name&quot;: &quot;number&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Number member.&quot; },
+                { &quot;name&quot;: &quot;animals&quot;, &quot;$ref&quot;: &quot;CastedAnimals&quot;, &quot;description&quot;: &quot;Enum member.&quot; },
+                { &quot;name&quot;: &quot;id&quot;, &quot;$ref&quot;: &quot;CastedObjectId&quot;, &quot;description&quot;: &quot;Aliased member.&quot; },
+                { &quot;name&quot;: &quot;tree&quot;, &quot;$ref&quot;: &quot;RecursiveObject1&quot;, &quot;description&quot;: &quot;Recursive object member.&quot; }
+            ]
+        },
+        {
+            &quot;id&quot;: &quot;CastedObjectId&quot;,
+            &quot;type&quot;: &quot;integer&quot;
+        },
+        {
+            &quot;id&quot;: &quot;UncastedObjectId&quot;,
+            &quot;type&quot;: &quot;integer&quot;
+        },
+        {
+            &quot;id&quot;: &quot;UncastedAnimals&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;enum&quot;: [&quot;Pigs&quot;, &quot;Cows&quot;, &quot;Cats&quot;, &quot;Hens&quot;]
+        },
+        {
+            &quot;id&quot;: &quot;CastedAnimals&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;enum&quot;: [&quot;Ducks&quot;, &quot;Hens&quot;, &quot;Crows&quot;, &quot;Flamingos&quot;]
+        },
+        {
+            &quot;id&quot;: &quot;RecursiveObject1&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;obj&quot;, &quot;$ref&quot;: &quot;RecursiveObject2&quot;, &quot;optional&quot;: true }
+            ]
+        },
+        {
+            &quot;id&quot;: &quot;RecursiveObject2&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;obj&quot;, &quot;$ref&quot;: &quot;RecursiveObject1&quot;, &quot;optional&quot;: true }
+            ]
+        }
+    ]
+}
+]
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestssametypeiddifferentdomainjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/same-type-id-different-domain.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/same-type-id-different-domain.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/same-type-id-different-domain.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,22 +0,0 @@
</span><del>-[
-{
-    &quot;domain&quot;: &quot;Runtime&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;RemoteObjectId&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;description&quot;: &quot;Unique object identifier.&quot;
-        }
-    ]
-},
-{
-    &quot;domain&quot;: &quot;Runtime2&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;RemoteObjectId&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;description&quot;: &quot;Unique object identifier.&quot;
-        }
-    ]
-}
-]
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsshadowedoptionaltypesettersjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/shadowed-optional-type-setters.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/shadowed-optional-type-setters.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/shadowed-optional-type-setters.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,31 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;Runtime&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;KeyPath&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;description&quot;: &quot;Key path.&quot;,
-            &quot;properties&quot;: [
-                {
-                    &quot;name&quot;: &quot;type&quot;,
-                    &quot;type&quot;: &quot;string&quot;,
-                    &quot;enum&quot;: [&quot;null&quot;, &quot;string&quot;, &quot;array&quot;],
-                    &quot;description&quot;: &quot;Key path type.&quot;
-                },
-                {
-                    &quot;name&quot;: &quot;string&quot;,
-                    &quot;type&quot;: &quot;string&quot;,
-                    &quot;optional&quot;: true,
-                    &quot;description&quot;: &quot;String value.&quot;
-                },
-                {
-                    &quot;name&quot;: &quot;array&quot;,
-                    &quot;type&quot;: &quot;array&quot;,
-                    &quot;optional&quot;: true,
-                    &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; },
-                    &quot;description&quot;: &quot;Array value.&quot;
-                }
-            ]
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptsteststypedeclarationaliasedprimitivetypejson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-aliased-primitive-type.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-aliased-primitive-type.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-aliased-primitive-type.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,10 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;Runtime&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;RemoteObjectId&quot;,
-            &quot;type&quot;: &quot;integer&quot;,
-            &quot;description&quot;: &quot;Unique object identifier.&quot;
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptsteststypedeclarationarraytypejson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-array-type.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-array-type.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-array-type.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,50 +0,0 @@
</span><del>-[
-{
-    &quot;domain&quot;: &quot;Debugger&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;BreakpointId&quot;,
-            &quot;type&quot;: &quot;integer&quot;
-        },
-        {
-            &quot;id&quot;: &quot;Reason&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;enum&quot;: [&quot;Died&quot;, &quot;Fainted&quot;, &quot;Hungry&quot;]
-        }
-    ]
-},
-{
-    &quot;domain&quot;: &quot;Runtime&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;ObjectId&quot;,
-            &quot;type&quot;: &quot;integer&quot;
-        },
-        {
-            &quot;id&quot;: &quot;LuckyNumbers&quot;,
-            &quot;type&quot;: &quot;array&quot;,
-            &quot;items&quot;: { &quot;type&quot;: &quot;integer&quot; }
-        },
-        {
-            &quot;id&quot;: &quot;BabyNames&quot;,
-            &quot;type&quot;: &quot;array&quot;,
-            &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; }
-        },
-        {
-            &quot;id&quot;: &quot;NewObjects&quot;,
-            &quot;type&quot;: &quot;array&quot;,
-            &quot;items&quot;: { &quot;$ref&quot;: &quot;ObjectId&quot; }
-        },
-        {
-            &quot;id&quot;: &quot;OldObjects&quot;,
-            &quot;type&quot;: &quot;array&quot;,
-            &quot;items&quot;: { &quot;$ref&quot;: &quot;Debugger.BreakpointId&quot; }
-        },
-        {
-            &quot;id&quot;: &quot;StopReasons&quot;,
-            &quot;type&quot;: &quot;array&quot;,
-            &quot;items&quot;: { &quot;$ref&quot;: &quot;Debugger.Reason&quot; }
-        }
-    ]
-}
-]
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptsteststypedeclarationenumtypejson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-enum-type.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-enum-type.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-enum-type.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,15 +0,0 @@
</span><del>-{
-    &quot;domain&quot;: &quot;Runtime&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;FarmAnimals&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;enum&quot;: [&quot;Pigs&quot;, &quot;Cows&quot;, &quot;Cats&quot;, &quot;Hens&quot;]
-        },
-        {
-            &quot;id&quot;: &quot;TwoLeggedAnimals&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;enum&quot;: [&quot;Ducks&quot;, &quot;Hens&quot;, &quot;Crows&quot;, &quot;Flamingos&quot;]
-        }
-    ]
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptsteststypedeclarationobjecttypejson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-object-type.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-object-type.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-object-type.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,83 +0,0 @@
</span><del>-[
-{
-    &quot;domain&quot;: &quot;Database&quot;,
-    &quot;description&quot;: &quot;Test type builder generation of various object types.&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;Error&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;description&quot;: &quot;Database error.&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
-                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot; }
-            ]
-        },
-        {
-            &quot;id&quot;: &quot;ErrorList&quot;,
-            &quot;type&quot;: &quot;array&quot;,
-            &quot;items&quot;: { &quot;$ref&quot;: &quot;Error&quot; }
-        },
-        {
-            &quot;id&quot;: &quot;OptionalParameterBundle&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;optional&quot;: true, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
-                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;error&quot;, &quot;$ref&quot;: &quot;Error&quot;, &quot;optional&quot;: true },
-                { &quot;name&quot;: &quot;errorList&quot;, &quot;$ref&quot;: &quot;ErrorList&quot;, &quot;optional&quot;: true }
-            ]
-        },
-        {
-            &quot;id&quot;: &quot;ParameterBundle&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
-                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot; },
-                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot; },
-                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot; },
-                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot; },
-                { &quot;name&quot;: &quot;error&quot;, &quot;$ref&quot;: &quot;Error&quot; },
-                { &quot;name&quot;: &quot;errorList&quot;, &quot;$ref&quot;: &quot;ErrorList&quot; }
-            ]
-        },
-        {
-            &quot;id&quot;: &quot;ObjectWithPropertyNameConflicts&quot;,
-            &quot;description&quot;: &quot;Conflicted names may cause generated getters/setters to clash with built-in InspectorObject methods.&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;integer&quot;, &quot;type&quot;: &quot;string&quot; },
-                { &quot;name&quot;: &quot;array&quot;, &quot;type&quot;: &quot;string&quot; },
-                { &quot;name&quot;: &quot;string&quot;, &quot;type&quot;: &quot;string&quot; },
-                { &quot;name&quot;: &quot;value&quot;, &quot;type&quot;: &quot;string&quot; },
-                { &quot;name&quot;: &quot;object&quot;, &quot;type&quot;: &quot;string&quot; }
-            ]
-        },
-        {
-            &quot;id&quot;: &quot;DummyObject&quot;,
-            &quot;description&quot;: &quot;An open object that doesn't have any predefined fields.&quot;,
-            &quot;type&quot;: &quot;object&quot;
-        }
-    ]
-},
-{
-    &quot;domain&quot;: &quot;Test&quot;,
-    &quot;description&quot;: &quot;Test the generation of special behaviors that only apply to specific classes.&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;ParameterBundle&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;columnNames&quot;, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;string&quot; } },
-                { &quot;name&quot;: &quot;notes&quot;, &quot;type&quot;: &quot;string&quot; },
-                { &quot;name&quot;: &quot;timestamp&quot;, &quot;type&quot;: &quot;number&quot; },
-                { &quot;name&quot;: &quot;values&quot;, &quot;type&quot;: &quot;object&quot; },
-                { &quot;name&quot;: &quot;payload&quot;, &quot;type&quot;: &quot;any&quot; },
-                { &quot;name&quot;: &quot;error&quot;, &quot;$ref&quot;: &quot;Database.Error&quot; }
-            ]
-        }
-    ]
-}
-]
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptsteststyperequiringruntimecastsjson"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/tests/type-requiring-runtime-casts.json (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/type-requiring-runtime-casts.json        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/type-requiring-runtime-casts.json        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,51 +0,0 @@
</span><del>-[
-{
-    &quot;domain&quot;: &quot;Test&quot;,
-    &quot;types&quot;: [
-        {
-            &quot;id&quot;: &quot;TypeNeedingCast&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;description&quot;: &quot;A dummy type that requires runtime casts, and forces non-primitive referenced types to also emit runtime cast helpers.&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;string&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;String member.&quot; },
-                { &quot;name&quot;: &quot;number&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Number member.&quot; },
-                { &quot;name&quot;: &quot;animals&quot;, &quot;$ref&quot;: &quot;CastedAnimals&quot;, &quot;description&quot;: &quot;Enum member.&quot; },
-                { &quot;name&quot;: &quot;id&quot;, &quot;$ref&quot;: &quot;CastedObjectId&quot;, &quot;description&quot;: &quot;Aliased member.&quot; },
-                { &quot;name&quot;: &quot;tree&quot;, &quot;$ref&quot;: &quot;RecursiveObject1&quot;, &quot;description&quot;: &quot;Recursive object member.&quot; }
-            ]
-        },
-        {
-            &quot;id&quot;: &quot;CastedObjectId&quot;,
-            &quot;type&quot;: &quot;integer&quot;
-        },
-        {
-            &quot;id&quot;: &quot;UncastedObjectId&quot;,
-            &quot;type&quot;: &quot;integer&quot;
-        },
-        {
-            &quot;id&quot;: &quot;UncastedAnimals&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;enum&quot;: [&quot;Pigs&quot;, &quot;Cows&quot;, &quot;Cats&quot;, &quot;Hens&quot;]
-        },
-        {
-            &quot;id&quot;: &quot;CastedAnimals&quot;,
-            &quot;type&quot;: &quot;string&quot;,
-            &quot;enum&quot;: [&quot;Ducks&quot;, &quot;Hens&quot;, &quot;Crows&quot;, &quot;Flamingos&quot;]
-        },
-        {
-            &quot;id&quot;: &quot;RecursiveObject1&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;obj&quot;, &quot;$ref&quot;: &quot;RecursiveObject2&quot;, &quot;optional&quot;: true }
-            ]
-        },
-        {
-            &quot;id&quot;: &quot;RecursiveObject2&quot;,
-            &quot;type&quot;: &quot;object&quot;,
-            &quot;properties&quot;: [
-                { &quot;name&quot;: &quot;obj&quot;, &quot;$ref&quot;: &quot;RecursiveObject1&quot;, &quot;optional&quot;: true }
-            ]
-        }
-    ]
-}
-]
</del></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Tools/ChangeLog        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -1,3 +1,20 @@
</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.
+
+        Teach run-inspector-generator-tests to generate test output using the platform name
+        derived from the directory that the test is in. For example, tests in the /generic/
+        subdirectory will pass `--platform generic` to generate-inspector-protocol-bindings.py.
+
+        * Scripts/webkitpy/inspector/main.py:
+        (InspectorGeneratorTests.generate_from_json):
+        (InspectorGeneratorTests.run_tests):
+        (InspectorGeneratorTests.main):
+
</ins><span class="cx"> 2017-01-04  Csaba Osztrogonác  &lt;ossy@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed cmake buildfix after r210266.
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpyinspectormainpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/inspector/main.py (210307 => 210308)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/inspector/main.py        2017-01-05 01:16:30 UTC (rev 210307)
+++ trunk/Tools/Scripts/webkitpy/inspector/main.py        2017-01-05 01:17:07 UTC (rev 210308)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx">         self.reset_results = reset_results
</span><span class="cx">         self.executive = executive
</span><span class="cx"> 
</span><del>-    def generate_from_json(self, json_file, output_directory):
</del><ins>+    def generate_from_json(self, json_file, platform, output_directory):
</ins><span class="cx">         cmd = ['python',
</span><span class="cx">                'JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py',
</span><span class="cx">                '--outputDir', output_directory,
</span><span class="lines">@@ -45,6 +45,7 @@
</span><span class="cx">                '--force',
</span><span class="cx">                '--framework', 'Test',
</span><span class="cx">                '--test',
</span><ins>+               '--platform', platform,
</ins><span class="cx">                json_file]
</span><span class="cx"> 
</span><span class="cx">         exit_code = 0
</span><span class="lines">@@ -87,7 +88,7 @@
</span><span class="cx">                 print 'PASS: %s' % output_file
</span><span class="cx">         return changes_found
</span><span class="cx"> 
</span><del>-    def run_tests(self, input_directory, reference_directory):
</del><ins>+    def run_tests(self, platform, input_directory, reference_directory):
</ins><span class="cx">         work_directory = reference_directory
</span><span class="cx"> 
</span><span class="cx">         passed = True
</span><span class="lines">@@ -100,7 +101,7 @@
</span><span class="cx">             if not self.reset_results:
</span><span class="cx">                 work_directory = tempfile.mkdtemp()
</span><span class="cx"> 
</span><del>-            if self.generate_from_json(os.path.join(input_directory, input_file), work_directory):
</del><ins>+            if self.generate_from_json(os.path.join(input_directory, input_file), platform, work_directory):
</ins><span class="cx">                 passed = False
</span><span class="cx"> 
</span><span class="cx">             if self.reset_results:
</span><span class="lines">@@ -120,11 +121,23 @@
</span><span class="cx"> 
</span><span class="cx">         all_tests_passed = True
</span><span class="cx"> 
</span><del>-        input_directory = os.path.join('JavaScriptCore', 'inspector', 'scripts', 'tests')
-        reference_directory = os.path.join('JavaScriptCore', 'inspector', 'scripts', 'tests', 'expected')
-        if not self.run_tests(input_directory, reference_directory):
-            all_tests_passed = False
</del><ins>+        base_directory = os.path.join('JavaScriptCore', 'inspector', 'scripts', 'tests')
</ins><span class="cx"> 
</span><ins>+        platform_directories = {
+            'macos': 'mac',
+            'ios': 'ios',
+            'generic': 'generic',
+            'all': 'all',
+        }
+
+        for platform_name, platform_directory in platform_directories.iteritems():
+            input_directory = os.path.join(base_directory, platform_directory)
+            reference_directory = os.path.join(input_directory, 'expected')
+            if not os.path.isdir(input_directory) or not os.path.isdir(reference_directory):
+                continue
+
+            all_tests_passed = all_tests_passed and self.run_tests(platform_name, input_directory, reference_directory)
+
</ins><span class="cx">         print ''
</span><span class="cx">         if all_tests_passed:
</span><span class="cx">             print 'All tests PASS!'
</span></span></pre>
</div>
</div>

</body>
</html>