<!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>[202275] trunk/Source/WebCore</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/202275">202275</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2016-06-21 08:44:50 -0700 (Tue, 21 Jun 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Add bindings generator support to add a native JS function to both a 'name' and a private '@name' slot
https://bugs.webkit.org/show_bug.cgi?id=158777

Patch by Youenn Fablet &lt;youennf@gmail.com&gt; on 2016-06-21
Reviewed by Eric Carlson.

Adding a new PublicIdentifier keyword to cover the case of the same function exposed publicly and privately.
Renaming Private keyword to PrivateIdentifier.
Functions exposed both publicly and privately should set both keywords.
By default, functions are publically exposed.

Updated binding generator to generate public exposure except if PrivateIdentifer is set and PublicIdentifier is
not set.

Keeping skipping of ObjC/GObject binding for PrivateIdentifier-only functions.

Covered by rebased binding tests.

* Modules/fetch/FetchHeaders.idl:
* Modules/fetch/FetchResponse.idl:
* Modules/mediastream/MediaDevices.idl:
* Modules/mediastream/RTCPeerConnection.idl:
* bindings/scripts/CodeGeneratorGObject.pm:
(SkipFunction):
* bindings/scripts/CodeGeneratorJS.pm:
(GeneratePropertiesHashTable):
(GenerateImplementation):
* bindings/scripts/CodeGeneratorObjC.pm:
(SkipFunction):
* bindings/scripts/IDLAttributes.txt:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_private_also_method):
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjPrototype::finishCreation):
(WebCore::jsTestObjPrototypeFunctionPrivateMethod):
(WebCore::jsTestObjPrototypeFunctionPrivateAlsoMethod):
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj privateAlsoMethod:]):
* bindings/scripts/test/TestObj.idl:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchHeadersidl">trunk/Source/WebCore/Modules/fetch/FetchHeaders.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchResponseidl">trunk/Source/WebCore/Modules/fetch/FetchResponse.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaDevicesidl">trunk/Source/WebCore/Modules/mediastream/MediaDevices.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCPeerConnectionidl">trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorGObjectpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorObjCpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsIDLAttributestxt">trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestObjh">trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestObjCDOMTestObjh">trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestObjCDOMTestObjmm">trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestTestObjidl">trunk/Source/WebCore/bindings/scripts/test/TestObj.idl</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (202274 => 202275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-06-21 13:15:40 UTC (rev 202274)
+++ trunk/Source/WebCore/ChangeLog        2016-06-21 15:44:50 UTC (rev 202275)
</span><span class="lines">@@ -1,3 +1,46 @@
</span><ins>+2016-06-21  Youenn Fablet  &lt;youennf@gmail.com&gt;
+
+        Add bindings generator support to add a native JS function to both a 'name' and a private '@name' slot
+        https://bugs.webkit.org/show_bug.cgi?id=158777
+
+        Reviewed by Eric Carlson.
+
+        Adding a new PublicIdentifier keyword to cover the case of the same function exposed publicly and privately.
+        Renaming Private keyword to PrivateIdentifier.
+        Functions exposed both publicly and privately should set both keywords.
+        By default, functions are publically exposed.
+
+        Updated binding generator to generate public exposure except if PrivateIdentifer is set and PublicIdentifier is
+        not set.
+
+        Keeping skipping of ObjC/GObject binding for PrivateIdentifier-only functions.
+
+        Covered by rebased binding tests.
+
+        * Modules/fetch/FetchHeaders.idl:
+        * Modules/fetch/FetchResponse.idl:
+        * Modules/mediastream/MediaDevices.idl:
+        * Modules/mediastream/RTCPeerConnection.idl:
+        * bindings/scripts/CodeGeneratorGObject.pm:
+        (SkipFunction):
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GeneratePropertiesHashTable):
+        (GenerateImplementation):
+        * bindings/scripts/CodeGeneratorObjC.pm:
+        (SkipFunction):
+        * bindings/scripts/IDLAttributes.txt:
+        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
+        (webkit_dom_test_obj_private_also_method):
+        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        (WebCore::JSTestObjPrototype::finishCreation):
+        (WebCore::jsTestObjPrototypeFunctionPrivateMethod):
+        (WebCore::jsTestObjPrototypeFunctionPrivateAlsoMethod):
+        * bindings/scripts/test/ObjC/DOMTestObj.h:
+        * bindings/scripts/test/ObjC/DOMTestObj.mm:
+        (-[DOMTestObj privateAlsoMethod:]):
+        * bindings/scripts/test/TestObj.idl:
+
</ins><span class="cx"> 2016-06-21  Dan Bernstein  &lt;mitz@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Inlined some picture-in-picture code.
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchHeadersidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchHeaders.idl (202274 => 202275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchHeaders.idl        2016-06-21 13:15:40 UTC (rev 202274)
+++ trunk/Source/WebCore/Modules/fetch/FetchHeaders.idl        2016-06-21 15:44:50 UTC (rev 202275)
</span><span class="lines">@@ -43,6 +43,6 @@
</span><span class="cx"> 
</span><span class="cx">     iterable&lt;DOMString, DOMString&gt;;
</span><span class="cx"> 
</span><del>-    [Private, RaisesException, ImplementedAs=append] void appendFromJS(DOMString name, DOMString value);
-    [Private, ImplementedAs=fill] void fillFromJS(FetchHeaders? headers);
</del><ins>+    [PrivateIdentifier, RaisesException, ImplementedAs=append] void appendFromJS(DOMString name, DOMString value);
+    [PrivateIdentifier, ImplementedAs=fill] void fillFromJS(FetchHeaders? headers);
</ins><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchResponseidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchResponse.idl (202274 => 202275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchResponse.idl        2016-06-21 13:15:40 UTC (rev 202274)
+++ trunk/Source/WebCore/Modules/fetch/FetchResponse.idl        2016-06-21 15:44:50 UTC (rev 202275)
</span><span class="lines">@@ -54,6 +54,6 @@
</span><span class="cx"> 
</span><span class="cx">     [NewObject, CallWith=ScriptExecutionContext, RaisesException] FetchResponse clone();
</span><span class="cx"> 
</span><del>-    [Private, RaisesException] void initializeWith(Dictionary parameters);
</del><ins>+    [PrivateIdentifier, RaisesException] void initializeWith(Dictionary parameters);
</ins><span class="cx"> };
</span><span class="cx"> FetchResponse implements FetchBody;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaDevicesidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaDevices.idl (202274 => 202275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaDevices.idl        2016-06-21 13:15:40 UTC (rev 202274)
+++ trunk/Source/WebCore/Modules/mediastream/MediaDevices.idl        2016-06-21 15:44:50 UTC (rev 202275)
</span><span class="lines">@@ -37,5 +37,5 @@
</span><span class="cx">     [JSBuiltin] Promise getUserMedia(Dictionary options);
</span><span class="cx">     [RaisesException] Promise enumerateDevices();
</span><span class="cx"> 
</span><del>-    [Private, RaisesException, ImplementedAs=getUserMedia] Promise getUserMediaFromJS(Dictionary options);
</del><ins>+    [PrivateIdentifier, RaisesException, ImplementedAs=getUserMedia] Promise getUserMediaFromJS(Dictionary options);
</ins><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCPeerConnectionidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl (202274 => 202275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl        2016-06-21 13:15:40 UTC (rev 202274)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl        2016-06-21 15:44:50 UTC (rev 202275)
</span><span class="lines">@@ -97,12 +97,12 @@
</span><span class="cx"> 
</span><span class="cx">     // Private API used to implement the overloaded operations above. Queued functions are called by
</span><span class="cx">     // runQueuedOperation() (defined in RTCPeerConnectionInternals.js).
</span><del>-    [Private] Promise queuedCreateOffer(optional Dictionary offerOptions);
-    [Private] Promise queuedCreateAnswer(optional Dictionary answerOptions);
-    [Private] Promise queuedSetLocalDescription(RTCSessionDescription description);
-    [Private] Promise queuedSetRemoteDescription(RTCSessionDescription description);
-    [Private] Promise queuedAddIceCandidate(RTCIceCandidate candidate);
-    [Private] Promise privateGetStats(MediaStreamTrack? selector);
</del><ins>+    [PrivateIdentifier] Promise queuedCreateOffer(optional Dictionary offerOptions);
+    [PrivateIdentifier] Promise queuedCreateAnswer(optional Dictionary answerOptions);
+    [PrivateIdentifier] Promise queuedSetLocalDescription(RTCSessionDescription description);
+    [PrivateIdentifier] Promise queuedSetRemoteDescription(RTCSessionDescription description);
+    [PrivateIdentifier] Promise queuedAddIceCandidate(RTCIceCandidate candidate);
+    [PrivateIdentifier] Promise privateGetStats(MediaStreamTrack? selector);
</ins><span class="cx"> 
</span><span class="cx">     [RaisesException] RTCDataChannel createDataChannel([TreatNullAs=EmptyString] DOMString label, optional Dictionary options);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorGObjectpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm (202274 => 202275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm        2016-06-21 13:15:40 UTC (rev 202274)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm        2016-06-21 15:44:50 UTC (rev 202275)
</span><span class="lines">@@ -384,8 +384,7 @@
</span><span class="cx"> 
</span><span class="cx">     return 1 if $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;JSBuiltin&quot;};
</span><span class="cx"> 
</span><del>-    return 1 if $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Private&quot;};
-
</del><ins>+    return 1 if $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;PrivateIdentifier&quot;} and not $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;PublicIdentifier&quot;};
</ins><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (202274 => 202275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-06-21 13:15:40 UTC (rev 202274)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-06-21 15:44:50 UTC (rev 202275)
</span><span class="lines">@@ -1618,7 +1618,7 @@
</span><span class="cx">     my @functions = @{$interface-&gt;functions};
</span><span class="cx">     push(@functions, @{$interface-&gt;iterable-&gt;functions}) if $interface-&gt;iterable;
</span><span class="cx">     foreach my $function (@functions) {
</span><del>-        next if ($function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Private&quot;});
</del><ins>+        next if ($function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;PrivateIdentifier&quot;} and not $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;PublicIdentifier&quot;});
</ins><span class="cx">         next if ($function-&gt;isStatic);
</span><span class="cx">         next if $function-&gt;{overloadIndex} &amp;&amp; $function-&gt;{overloadIndex} &gt; 1;
</span><span class="cx">         next if OperationShouldBeOnInstance($interface, $function) != $isInstance;
</span><span class="lines">@@ -2295,7 +2295,7 @@
</span><span class="cx"> 
</span><span class="cx">         my $firstPrivateFunction = 1;
</span><span class="cx">         foreach my $function (@{$interface-&gt;functions}) {
</span><del>-            next unless ($function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Private&quot;});
</del><ins>+            next unless ($function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;PrivateIdentifier&quot;});
</ins><span class="cx">             AddToImplIncludes(&quot;WebCoreJSClientData.h&quot;);
</span><span class="cx">             push(@implContent, &quot;    JSVMClientData&amp; clientData = *static_cast&lt;JSVMClientData*&gt;(vm.clientData);\n&quot;) if $firstPrivateFunction;
</span><span class="cx">             $firstPrivateFunction = 0;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorObjCpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm (202274 => 202275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm        2016-06-21 13:15:40 UTC (rev 202274)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm        2016-06-21 15:44:50 UTC (rev 202275)
</span><span class="lines">@@ -550,7 +550,7 @@
</span><span class="cx">         return 1 if $param-&gt;isVariadic;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return 1 if $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Private&quot;};
</del><ins>+    return 1 if $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;PrivateIdentifier&quot;} and not $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;PublicIdentifier&quot;};
</ins><span class="cx"> 
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsIDLAttributestxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt (202274 => 202275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt        2016-06-21 13:15:40 UTC (rev 202274)
+++ trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt        2016-06-21 15:44:50 UTC (rev 202275)
</span><span class="lines">@@ -106,7 +106,8 @@
</span><span class="cx"> ObjCUseDefaultView
</span><span class="cx"> OverrideBuiltins
</span><span class="cx"> PassContext
</span><del>-Private
</del><ins>+PrivateIdentifier
+PublicIdentifier
</ins><span class="cx"> PutForwards=*
</span><span class="cx"> RaisesException
</span><span class="cx"> RaisesExceptionWithMessage
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp (202274 => 202275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp        2016-06-21 13:15:40 UTC (rev 202274)
+++ trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp        2016-06-21 15:44:50 UTC (rev 202275)
</span><span class="lines">@@ -1494,6 +1494,17 @@
</span><span class="cx">     item-&gt;methodWithExceptionWithMessage();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+gchar* webkit_dom_test_obj_public_and_private_method(WebKitDOMTestObj* self, const gchar* argument)
+{
+    WebCore::JSMainThreadNullState state;
+    g_return_val_if_fail(WEBKIT_DOM_IS_TEST_OBJ(self), 0);
+    g_return_val_if_fail(argument, 0);
+    WebCore::TestObj* item = WebKit::core(self);
+    WTF::String convertedArgument = WTF::String::fromUTF8(argument);
+    gchar* result = convertToUTF8String(item-&gt;publicAndPrivateMethod(convertedArgument));
+    return result;
+}
+
</ins><span class="cx"> void webkit_dom_test_obj_with_script_state_void(WebKitDOMTestObj* self)
</span><span class="cx"> {
</span><span class="cx">     WebCore::JSMainThreadNullState state;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestObjh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.h (202274 => 202275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.h        2016-06-21 13:15:40 UTC (rev 202274)
+++ trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.h        2016-06-21 15:44:50 UTC (rev 202275)
</span><span class="lines">@@ -394,6 +394,18 @@
</span><span class="cx"> webkit_dom_test_obj_method_with_exception_with_message(WebKitDOMTestObj* self);
</span><span class="cx"> 
</span><span class="cx"> /**
</span><ins>+ * webkit_dom_test_obj_public_and_private_method:
+ * @self: A #WebKitDOMTestObj
+ * @argument: A #gchar
+ *
+ * Returns: A #gchar
+ *
+ * Stability: Unstable
+**/
+WEBKIT_API gchar*
+webkit_dom_test_obj_public_and_private_method(WebKitDOMTestObj* self, const gchar* argument);
+
+/**
</ins><span class="cx">  * webkit_dom_test_obj_with_script_state_void:
</span><span class="cx">  * @self: A #WebKitDOMTestObj
</span><span class="cx">  *
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (202274 => 202275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-06-21 13:15:40 UTC (rev 202274)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-06-21 15:44:50 UTC (rev 202275)
</span><span class="lines">@@ -607,6 +607,7 @@
</span><span class="cx"> JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionCustomMethod(JSC::ExecState*);
</span><span class="cx"> JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionCustomMethodWithArgs(JSC::ExecState*);
</span><span class="cx"> JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionPrivateMethod(JSC::ExecState*);
</span><ins>+JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionPublicAndPrivateMethod(JSC::ExecState*);
</ins><span class="cx"> JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionAddEventListener(JSC::ExecState*);
</span><span class="cx"> JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionRemoveEventListener(JSC::ExecState*);
</span><span class="cx"> JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithScriptStateVoid(JSC::ExecState*);
</span><span class="lines">@@ -1060,7 +1061,7 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 65, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 138, -1 },
</del><ins>+    { 139, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { 21, 513 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1069,21 +1070,21 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 63, -1 },
</span><del>-    { 203, -1 },
-    { 187, -1 },
</del><ins>+    { 204, -1 },
+    { 188, -1 },
</ins><span class="cx">     { 56, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 140, -1 },
</del><ins>+    { 141, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 115, -1 },
</del><ins>+    { 116, -1 },
</ins><span class="cx">     { -1, -1 },
</span><del>-    { 129, -1 },
</del><ins>+    { 130, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { 79, -1 },
</span><span class="cx">     { 20, -1 },
</span><span class="lines">@@ -1090,7 +1091,7 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 132, 533 },
</del><ins>+    { 133, 533 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1099,7 +1100,7 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 149, -1 },
</del><ins>+    { 150, -1 },
</ins><span class="cx">     { 34, 525 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1107,12 +1108,12 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 170, -1 },
</del><ins>+    { 171, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><ins>+    { 115, -1 },
</ins><span class="cx">     { 114, -1 },
</span><del>-    { 113, -1 },
</del><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1125,7 +1126,7 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 5, -1 },
</span><del>-    { 178, -1 },
</del><ins>+    { 179, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1139,7 +1140,7 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 106, -1 },
</del><ins>+    { 107, -1 },
</ins><span class="cx">     { 97, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1150,17 +1151,17 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 9, -1 },
</span><del>-    { 164, -1 },
</del><ins>+    { 165, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 90, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 157, -1 },
</del><ins>+    { 158, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 84, -1 },
</span><del>-    { 200, -1 },
</del><ins>+    { 201, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { 31, 530 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1170,18 +1171,18 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 184, -1 },
</del><ins>+    { 185, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 131, 547 },
-    { 109, -1 },
</del><ins>+    { 132, 547 },
+    { 110, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 153, -1 },
</del><ins>+    { 154, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { 6, -1 },
</span><del>-    { 130, -1 },
</del><ins>+    { 131, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1193,16 +1194,16 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 144, -1 },
</del><ins>+    { 145, -1 },
</ins><span class="cx">     { 48, -1 },
</span><span class="cx">     { 67, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 201, -1 },
</del><ins>+    { 202, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 39, -1 },
</span><del>-    { 124, 532 },
</del><ins>+    { 125, 532 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { 103, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1210,18 +1211,19 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 171, -1 },
-    { 163, -1 },
</del><ins>+    { 172, -1 },
+    { 164, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 202, -1 },
</del><ins>+    { 203, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 73, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 145, -1 },
</del><ins>+    { 146, -1 },
+    { 106, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1233,22 +1235,21 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { -1, -1 },
</del><span class="cx">     { 29, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 156, -1 },
-    { 142, -1 },
</del><ins>+    { 157, -1 },
+    { 143, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 125, -1 },
</del><ins>+    { 126, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 180, 545 },
</del><ins>+    { 181, 545 },
</ins><span class="cx">     { 99, 541 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1292,21 +1293,21 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 10, 512 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 174, -1 },
</del><ins>+    { 175, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { 75, 543 },
</span><del>-    { 179, -1 },
</del><ins>+    { 180, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 118, 549 },
</del><ins>+    { 119, 549 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 175, -1 },
</del><ins>+    { 176, -1 },
</ins><span class="cx">     { -1, -1 },
</span><del>-    { 116, -1 },
</del><ins>+    { 117, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1319,9 +1320,9 @@
</span><span class="cx">     { 54, 517 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 152, -1 },
</del><ins>+    { 153, -1 },
</ins><span class="cx">     { 100, -1 },
</span><del>-    { 161, -1 },
</del><ins>+    { 162, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1331,27 +1332,27 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 49, -1 },
</span><del>-    { 182, -1 },
</del><ins>+    { 183, -1 },
</ins><span class="cx">     { 23, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 192, -1 },
</del><ins>+    { 193, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 158, -1 },
</del><ins>+    { 159, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 117, -1 },
</del><ins>+    { 118, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 172, -1 },
-    { 167, -1 },
</del><ins>+    { 173, -1 },
+    { 168, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1358,7 +1359,7 @@
</span><span class="cx">     { 32, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 185, -1 },
</del><ins>+    { 186, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { 82, 535 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1392,7 +1393,7 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 0, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 112, -1 },
</del><ins>+    { 113, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1401,7 +1402,7 @@
</span><span class="cx">     { 36, 527 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 143, 542 },
</del><ins>+    { 144, 542 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { 50, 546 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1409,7 +1410,7 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 196, 550 },
</del><ins>+    { 197, 550 },
</ins><span class="cx">     { 17, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1432,7 +1433,7 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 18, 514 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 193, -1 },
</del><ins>+    { 194, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { 2, 519 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1440,7 +1441,7 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 108, -1 },
</del><ins>+    { 109, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 35, -1 },
</span><span class="lines">@@ -1452,36 +1453,36 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 53, 526 },
</span><del>-    { 190, -1 },
</del><ins>+    { 191, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 74, -1 },
</span><del>-    { 198, -1 },
</del><ins>+    { 199, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 122, 540 },
</del><ins>+    { 123, 540 },
</ins><span class="cx">     { -1, -1 },
</span><del>-    { 127, -1 },
</del><ins>+    { 128, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 136, -1 },
</del><ins>+    { 137, -1 },
</ins><span class="cx">     { 19, -1 },
</span><span class="cx">     { 25, 544 },
</span><del>-    { 137, -1 },
</del><ins>+    { 138, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 133, -1 },
</del><ins>+    { 134, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 101, -1 },
</span><del>-    { 181, -1 },
</del><ins>+    { 182, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 148, -1 },
</del><ins>+    { 149, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { 16, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1490,7 +1491,7 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 96, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 159, -1 },
</del><ins>+    { 160, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1502,11 +1503,11 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 191, -1 },
</del><ins>+    { 192, -1 },
</ins><span class="cx">     { 68, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 80, -1 },
</span><del>-    { 176, -1 },
</del><ins>+    { 177, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1517,10 +1518,10 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 120, 528 },
</del><ins>+    { 121, 528 },
</ins><span class="cx">     { 37, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 123, -1 },
</del><ins>+    { 124, -1 },
</ins><span class="cx">     { 52, 536 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1527,7 +1528,7 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 59, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 188, -1 },
</del><ins>+    { 189, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { 105, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="lines">@@ -1541,20 +1542,20 @@
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { 15, 516 },
</span><span class="cx">     { 55, -1 },
</span><del>-    { 119, 534 },
</del><ins>+    { 120, 534 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { 7, 537 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 121, -1 },
</del><ins>+    { 122, -1 },
</ins><span class="cx">     { 81, 523 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 166, -1 },
</del><ins>+    { 167, -1 },
</ins><span class="cx">     { 89, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><span class="cx">     { -1, -1 },
</span><del>-    { 160, -1 },
</del><ins>+    { 161, -1 },
</ins><span class="cx">     { -1, -1 },
</span><span class="cx">     { 12, 520 },
</span><span class="cx">     { 13, 515 },
</span><span class="lines">@@ -1569,34 +1570,34 @@
</span><span class="cx">     { 92, -1 },
</span><span class="cx">     { 95, -1 },
</span><span class="cx">     { 102, -1 },
</span><del>-    { 107, -1 },
-    { 110, -1 },
</del><ins>+    { 108, -1 },
</ins><span class="cx">     { 111, -1 },
</span><del>-    { 126, -1 },
-    { 128, -1 },
-    { 134, -1 },
</del><ins>+    { 112, -1 },
+    { 127, -1 },
+    { 129, -1 },
</ins><span class="cx">     { 135, -1 },
</span><del>-    { 139, -1 },
-    { 141, -1 },
-    { 146, -1 },
</del><ins>+    { 136, -1 },
+    { 140, -1 },
+    { 142, -1 },
</ins><span class="cx">     { 147, -1 },
</span><del>-    { 150, -1 },
</del><ins>+    { 148, -1 },
</ins><span class="cx">     { 151, -1 },
</span><del>-    { 154, -1 },
</del><ins>+    { 152, -1 },
</ins><span class="cx">     { 155, -1 },
</span><del>-    { 162, -1 },
-    { 165, -1 },
-    { 168, -1 },
</del><ins>+    { 156, -1 },
+    { 163, -1 },
+    { 166, -1 },
</ins><span class="cx">     { 169, -1 },
</span><del>-    { 173, -1 },
-    { 177, -1 },
-    { 183, -1 },
-    { 186, -1 },
-    { 189, -1 },
-    { 194, -1 },
</del><ins>+    { 170, -1 },
+    { 174, -1 },
+    { 178, -1 },
+    { 184, -1 },
+    { 187, -1 },
+    { 190, -1 },
</ins><span class="cx">     { 195, -1 },
</span><del>-    { 197, -1 },
-    { 199, -1 },
</del><ins>+    { 196, -1 },
+    { 198, -1 },
+    { 200, -1 },
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -1744,6 +1745,7 @@
</span><span class="cx"> #else
</span><span class="cx">     { 0, 0, NoIntrinsic, { 0, 0 } },
</span><span class="cx"> #endif
</span><ins>+    { &quot;publicAndPrivateMethod&quot;, JSC::Function, NoIntrinsic, { (intptr_t)static_cast&lt;NativeFunction&gt;(jsTestObjPrototypeFunctionPublicAndPrivateMethod), (intptr_t) (1) } },
</ins><span class="cx">     { &quot;addEventListener&quot;, JSC::Function, NoIntrinsic, { (intptr_t)static_cast&lt;NativeFunction&gt;(jsTestObjPrototypeFunctionAddEventListener), (intptr_t) (2) } },
</span><span class="cx">     { &quot;removeEventListener&quot;, JSC::Function, NoIntrinsic, { (intptr_t)static_cast&lt;NativeFunction&gt;(jsTestObjPrototypeFunctionRemoveEventListener), (intptr_t) (2) } },
</span><span class="cx">     { &quot;withScriptStateVoid&quot;, JSC::Function, NoIntrinsic, { (intptr_t)static_cast&lt;NativeFunction&gt;(jsTestObjPrototypeFunctionWithScriptStateVoid), (intptr_t) (0) } },
</span><span class="lines">@@ -1860,7 +1862,7 @@
</span><span class="cx">     { &quot;readonly&quot;, DontDelete | ReadOnly | ConstantInteger, NoIntrinsic, { (long long)(0) } },
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-static const HashTable JSTestObjPrototypeTable = { 204, 511, true, JSTestObjPrototypeTableValues, JSTestObjPrototypeTableIndex };
</del><ins>+static const HashTable JSTestObjPrototypeTable = { 205, 511, true, JSTestObjPrototypeTableValues, JSTestObjPrototypeTableIndex };
</ins><span class="cx"> const ClassInfo JSTestObjPrototype::s_info = { &quot;TestObjectPrototype&quot;, &amp;Base::s_info, &amp;JSTestObjPrototypeTable, CREATE_METHOD_TABLE(JSTestObjPrototype) };
</span><span class="cx"> 
</span><span class="cx"> void JSTestObjPrototype::finishCreation(VM&amp; vm)
</span><span class="lines">@@ -1883,6 +1885,7 @@
</span><span class="cx"> #endif
</span><span class="cx">     JSVMClientData&amp; clientData = *static_cast&lt;JSVMClientData*&gt;(vm.clientData);
</span><span class="cx">     putDirect(vm, clientData.builtinNames().privateMethodPrivateName(), JSFunction::create(vm, globalObject(), 0, String(), jsTestObjPrototypeFunctionPrivateMethod), ReadOnly | DontEnum);
</span><ins>+    putDirect(vm, clientData.builtinNames().publicAndPrivateMethodPrivateName(), JSFunction::create(vm, globalObject(), 0, String(), jsTestObjPrototypeFunctionPublicAndPrivateMethod), ReadOnly | DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames-&gt;iteratorSymbol, JSFunction::create(vm, globalObject(), 0, ASCIILiteral(&quot;[Symbol.Iterator]&quot;), jsTestObjPrototypeFunctionSymbolIterator), ReadOnly | DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -4944,6 +4947,23 @@
</span><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionPublicAndPrivateMethod(ExecState* state)
+{
+    JSValue thisValue = state-&gt;thisValue();
+    auto castedThis = jsDynamicCast&lt;JSTestObj*&gt;(thisValue);
+    if (UNLIKELY(!castedThis))
+        return throwThisTypeError(*state, &quot;TestObj&quot;, &quot;publicAndPrivateMethod&quot;);
+    ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
+    auto&amp; impl = castedThis-&gt;wrapped();
+    if (UNLIKELY(state-&gt;argumentCount() &lt; 1))
+        return throwVMError(state, createNotEnoughArgumentsError(state));
+    auto argument = state-&gt;argument(0).toWTFString(state);
+    if (UNLIKELY(state-&gt;hadException()))
+        return JSValue::encode(jsUndefined());
+    JSValue result = jsStringWithCache(state, impl.publicAndPrivateMethod(WTFMove(argument)));
+    return JSValue::encode(result);
+}
+
</ins><span class="cx"> EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionAddEventListener(ExecState* state)
</span><span class="cx"> {
</span><span class="cx">     JSValue thisValue = state-&gt;thisValue();
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestObjCDOMTestObjh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.h (202274 => 202275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.h        2016-06-21 13:15:40 UTC (rev 202274)
+++ trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.h        2016-06-21 15:44:50 UTC (rev 202275)
</span><span class="lines">@@ -163,6 +163,7 @@
</span><span class="cx"> - (void)methodWithExceptionWithMessage;
</span><span class="cx"> - (void)customMethod;
</span><span class="cx"> - (void)customMethodWithArgs:(int)longArg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg;
</span><ins>+- (NSString *)publicAndPrivateMethod:(NSString *)argument;
</ins><span class="cx"> - (void)addEventListener:(NSString *)type listener:(id &lt;DOMEventListener&gt;)listener useCapture:(BOOL)useCapture;
</span><span class="cx"> - (void)removeEventListener:(NSString *)type listener:(id &lt;DOMEventListener&gt;)listener useCapture:(BOOL)useCapture;
</span><span class="cx"> - (void)withScriptStateVoid;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestObjCDOMTestObjmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm (202274 => 202275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm        2016-06-21 13:15:40 UTC (rev 202274)
+++ trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm        2016-06-21 15:44:50 UTC (rev 202275)
</span><span class="lines">@@ -1238,6 +1238,12 @@
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+- (NSString *)publicAndPrivateMethod:(NSString *)argument
+{
+    WebCore::JSMainThreadNullState state;
+    return IMPL-&gt;publicAndPrivateMethod(argument);
+}
+
</ins><span class="cx"> - (void)addEventListener:(NSString *)type listener:(id &lt;DOMEventListener&gt;)listener useCapture:(BOOL)useCapture
</span><span class="cx"> {
</span><span class="cx">     WebCore::JSMainThreadNullState state;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestTestObjidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/TestObj.idl (202274 => 202275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/TestObj.idl        2016-06-21 13:15:40 UTC (rev 202274)
+++ trunk/Source/WebCore/bindings/scripts/test/TestObj.idl        2016-06-21 15:44:50 UTC (rev 202275)
</span><span class="lines">@@ -150,7 +150,8 @@
</span><span class="cx">     [Conditional=Condition4, JSBuiltin] readonly attribute TestObj jsBuiltinReadOnlyAttribute;
</span><span class="cx"> 
</span><span class="cx">     // Private extended attribute
</span><del>-    [Private] DOMString privateMethod(DOMString argument);
</del><ins>+    [PrivateIdentifier] DOMString privateMethod(DOMString argument);
+    [PrivateIdentifier, PublicIdentifier] DOMString publicAndPrivateMethod(DOMString argument);
</ins><span class="cx"> 
</span><span class="cx">     void addEventListener(DOMString type, EventListener listener, optional boolean useCapture = false);
</span><span class="cx">     void removeEventListener(DOMString type, EventListener listener, optional boolean useCapture = false);
</span></span></pre>
</div>
</div>

</body>
</html>