<!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>[205335] trunk/Source</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/205335">205335</a></dd>
<dt>Author</dt> <dd>utatane.tea@gmail.com</dd>
<dt>Date</dt> <dd>2016-09-01 20:42:09 -0700 (Thu, 01 Sep 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Add toJS for JSC::PrivateName
https://bugs.webkit.org/show_bug.cgi?id=161522

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

Add the export annotation.
And we perform refactoring RefPtr&lt;SymbolImpl&gt; =&gt; Ref&lt;SymbolImpl&gt; for PrivateName,
since PrivateName never holds null SymbolImpl pointer. And along with this change,
we changed SymbolImpl* to SymbolImpl&amp; in PrivateName::uid() callers.

* runtime/Completion.cpp:
(JSC::createSymbolForEntryPointModule):
* runtime/IdentifierInlines.h:
(JSC::Identifier::fromUid):
* runtime/JSFunction.cpp:
(JSC::JSFunction::setFunctionName):
* runtime/PrivateName.h:
(JSC::PrivateName::PrivateName):
(JSC::PrivateName::uid): Ugly const_cast. But const annotation is meaningless for SymbolImpl.
StringImpl should be observed as an immutable object. (Of course, its hash members etc. are mutable.
But most of the users (One of the exceptions is the concurrent JIT compiling thread!) should not care about this.)
(JSC::PrivateName::operator==):
(JSC::PrivateName::operator!=):
* runtime/PropertyName.h:
(JSC::PropertyName::PropertyName):
* runtime/Symbol.cpp:
(JSC::Symbol::finishCreation):
* runtime/Symbol.h:
* runtime/SymbolConstructor.cpp:
(JSC::symbolConstructorKeyFor):

Source/WebCore:

JSC::PrivateName is the wrapper to create and hold the ES6 Symbol instance.
This patch adds toJS support for JSC::PrivateName.
Later, the module integration patch will use this feature to call
DeferredWrapper::{resolve,reject} with JSC::PrivateName.

* bindings/js/JSDOMBinding.h:
(WebCore::toJS):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeCompletioncpp">trunk/Source/JavaScriptCore/runtime/Completion.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeIdentifierInlinesh">trunk/Source/JavaScriptCore/runtime/IdentifierInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSFunctioncpp">trunk/Source/JavaScriptCore/runtime/JSFunction.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimePrivateNameh">trunk/Source/JavaScriptCore/runtime/PrivateName.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimePropertyNameh">trunk/Source/JavaScriptCore/runtime/PropertyName.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeSymbolcpp">trunk/Source/JavaScriptCore/runtime/Symbol.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeSymbolh">trunk/Source/JavaScriptCore/runtime/Symbol.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeSymbolConstructorcpp">trunk/Source/JavaScriptCore/runtime/SymbolConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMBindingh">trunk/Source/WebCore/bindings/js/JSDOMBinding.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (205334 => 205335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-09-02 03:37:58 UTC (rev 205334)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-09-02 03:42:09 UTC (rev 205335)
</span><span class="lines">@@ -1,3 +1,36 @@
</span><ins>+2016-09-01  Yusuke Suzuki  &lt;utatane.tea@gmail.com&gt;
+
+        Add toJS for JSC::PrivateName
+        https://bugs.webkit.org/show_bug.cgi?id=161522
+
+        Reviewed by Ryosuke Niwa.
+
+        Add the export annotation.
+        And we perform refactoring RefPtr&lt;SymbolImpl&gt; =&gt; Ref&lt;SymbolImpl&gt; for PrivateName,
+        since PrivateName never holds null SymbolImpl pointer. And along with this change,
+        we changed SymbolImpl* to SymbolImpl&amp; in PrivateName::uid() callers.
+
+        * runtime/Completion.cpp:
+        (JSC::createSymbolForEntryPointModule):
+        * runtime/IdentifierInlines.h:
+        (JSC::Identifier::fromUid):
+        * runtime/JSFunction.cpp:
+        (JSC::JSFunction::setFunctionName):
+        * runtime/PrivateName.h:
+        (JSC::PrivateName::PrivateName):
+        (JSC::PrivateName::uid): Ugly const_cast. But const annotation is meaningless for SymbolImpl.
+        StringImpl should be observed as an immutable object. (Of course, its hash members etc. are mutable.
+        But most of the users (One of the exceptions is the concurrent JIT compiling thread!) should not care about this.)
+        (JSC::PrivateName::operator==):
+        (JSC::PrivateName::operator!=):
+        * runtime/PropertyName.h:
+        (JSC::PropertyName::PropertyName):
+        * runtime/Symbol.cpp:
+        (JSC::Symbol::finishCreation):
+        * runtime/Symbol.h:
+        * runtime/SymbolConstructor.cpp:
+        (JSC::symbolConstructorKeyFor):
+
</ins><span class="cx"> 2016-09-01  Dan Bernstein  &lt;mitz@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Build fix.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeCompletioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Completion.cpp (205334 => 205335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Completion.cpp        2016-09-02 03:37:58 UTC (rev 205334)
+++ trunk/Source/JavaScriptCore/runtime/Completion.cpp        2016-09-02 03:42:09 UTC (rev 205335)
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx"> {
</span><span class="cx">     // Generate the unique key for the source-provided module.
</span><span class="cx">     PrivateName privateName(PrivateName::Description, &quot;EntryPointModule&quot;);
</span><del>-    return Symbol::create(vm, *privateName.uid());
</del><ins>+    return Symbol::create(vm, privateName.uid());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static JSInternalPromise* rejectPromise(ExecState* exec, JSGlobalObject* globalObject)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeIdentifierInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/IdentifierInlines.h (205334 => 205335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/IdentifierInlines.h        2016-09-02 03:37:58 UTC (rev 205334)
+++ trunk/Source/JavaScriptCore/runtime/IdentifierInlines.h        2016-09-02 03:42:09 UTC (rev 205335)
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx"> 
</span><span class="cx"> inline Identifier Identifier::fromUid(const PrivateName&amp; name)
</span><span class="cx"> {
</span><del>-    return *name.uid();
</del><ins>+    return name.uid();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;unsigned charactersCount&gt;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSFunctioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSFunction.cpp (205334 => 205335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSFunction.cpp        2016-09-02 03:37:58 UTC (rev 205334)
+++ trunk/Source/JavaScriptCore/runtime/JSFunction.cpp        2016-09-02 03:42:09 UTC (rev 205335)
</span><span class="lines">@@ -599,11 +599,11 @@
</span><span class="cx">     ASSERT(jsExecutable()-&gt;ecmaName().isNull());
</span><span class="cx">     String name;
</span><span class="cx">     if (value.isSymbol()) {
</span><del>-        SymbolImpl* uid = asSymbol(value)-&gt;privateName().uid();
-        if (uid-&gt;isNullSymbol())
</del><ins>+        SymbolImpl&amp; uid = asSymbol(value)-&gt;privateName().uid();
+        if (uid.isNullSymbol())
</ins><span class="cx">             name = emptyString();
</span><span class="cx">         else
</span><del>-            name = makeString('[', String(uid), ']');
</del><ins>+            name = makeString('[', String(&amp;uid), ']');
</ins><span class="cx">     } else {
</span><span class="cx">         VM&amp; vm = exec-&gt;vm();
</span><span class="cx">         JSString* jsStr = value.toString(exec);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimePrivateNameh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/PrivateName.h (205334 => 205335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/PrivateName.h        2016-09-02 03:37:58 UTC (rev 205334)
+++ trunk/Source/JavaScriptCore/runtime/PrivateName.h        2016-09-02 03:42:09 UTC (rev 205335)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     explicit PrivateName(SymbolImpl&amp; uid)
</span><del>-        : m_uid(&amp;uid)
</del><ins>+        : m_uid(uid)
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -48,13 +48,13 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    SymbolImpl* uid() const { return m_uid.get(); }
</del><ins>+    SymbolImpl&amp; uid() const { return const_cast&lt;SymbolImpl&amp;&gt;(m_uid.get()); }
</ins><span class="cx"> 
</span><del>-    bool operator==(const PrivateName&amp; other) const { return uid() == other.uid(); }
-    bool operator!=(const PrivateName&amp; other) const { return uid() != other.uid(); }
</del><ins>+    bool operator==(const PrivateName&amp; other) const { return &amp;uid() == &amp;other.uid(); }
+    bool operator!=(const PrivateName&amp; other) const { return &amp;uid() != &amp;other.uid(); }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    RefPtr&lt;SymbolImpl&gt; m_uid;
</del><ins>+    Ref&lt;SymbolImpl&gt; m_uid;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimePropertyNameh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/PropertyName.h (205334 => 205335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/PropertyName.h        2016-09-02 03:37:58 UTC (rev 205334)
+++ trunk/Source/JavaScriptCore/runtime/PropertyName.h        2016-09-02 03:42:09 UTC (rev 205335)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     PropertyName(const PrivateName&amp; propertyName)
</span><del>-        : m_impl(propertyName.uid())
</del><ins>+        : m_impl(&amp;propertyName.uid())
</ins><span class="cx">     {
</span><span class="cx">         ASSERT(m_impl);
</span><span class="cx">         ASSERT(m_impl-&gt;isSymbol());
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeSymbolcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Symbol.cpp (205334 => 205335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Symbol.cpp        2016-09-02 03:37:58 UTC (rev 205334)
+++ trunk/Source/JavaScriptCore/runtime/Symbol.cpp        2016-09-02 03:42:09 UTC (rev 205335)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">     Base::finishCreation(vm);
</span><span class="cx">     ASSERT(inherits(info()));
</span><span class="cx"> 
</span><del>-    vm.symbolImplToSymbolMap.set(m_privateName.uid(), this);
</del><ins>+    vm.symbolImplToSymbolMap.set(&amp;m_privateName.uid(), this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline SymbolObject* SymbolObject::create(VM&amp; vm, JSGlobalObject* globalObject, Symbol* symbol)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeSymbolh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Symbol.h (205334 => 205335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Symbol.h        2016-09-02 03:37:58 UTC (rev 205334)
+++ trunk/Source/JavaScriptCore/runtime/Symbol.h        2016-09-02 03:42:09 UTC (rev 205335)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx"> 
</span><span class="cx">     static Symbol* create(VM&amp;);
</span><span class="cx">     static Symbol* create(ExecState*, JSString* description);
</span><del>-    static Symbol* create(VM&amp;, SymbolImpl&amp; uid);
</del><ins>+    JS_EXPORT_PRIVATE static Symbol* create(VM&amp;, SymbolImpl&amp; uid);
</ins><span class="cx"> 
</span><span class="cx">     const PrivateName&amp; privateName() const { return m_privateName; }
</span><span class="cx">     String descriptiveString() const;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeSymbolConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/SymbolConstructor.cpp (205334 => 205335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/SymbolConstructor.cpp        2016-09-02 03:37:58 UTC (rev 205334)
+++ trunk/Source/JavaScriptCore/runtime/SymbolConstructor.cpp        2016-09-02 03:42:09 UTC (rev 205335)
</span><span class="lines">@@ -117,12 +117,12 @@
</span><span class="cx">     if (!symbolValue.isSymbol())
</span><span class="cx">         return JSValue::encode(throwTypeError(exec, scope, SymbolKeyForTypeError));
</span><span class="cx"> 
</span><del>-    SymbolImpl* uid = asSymbol(symbolValue)-&gt;privateName().uid();
-    if (!uid-&gt;symbolRegistry())
</del><ins>+    SymbolImpl&amp; uid = asSymbol(symbolValue)-&gt;privateName().uid();
+    if (!uid.symbolRegistry())
</ins><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx"> 
</span><del>-    ASSERT(uid-&gt;symbolRegistry() == &amp;vm.symbolRegistry());
-    return JSValue::encode(jsString(exec, vm.symbolRegistry().keyForSymbol(*uid)));
</del><ins>+    ASSERT(uid.symbolRegistry() == &amp;vm.symbolRegistry());
+    return JSValue::encode(jsString(exec, vm.symbolRegistry().keyForSymbol(uid)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (205334 => 205335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-09-02 03:37:58 UTC (rev 205334)
+++ trunk/Source/WebCore/ChangeLog        2016-09-02 03:42:09 UTC (rev 205335)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2016-09-01  Yusuke Suzuki  &lt;utatane.tea@gmail.com&gt;
+
+        Add toJS for JSC::PrivateName
+        https://bugs.webkit.org/show_bug.cgi?id=161522
+
+        Reviewed by Ryosuke Niwa.
+
+        JSC::PrivateName is the wrapper to create and hold the ES6 Symbol instance.
+        This patch adds toJS support for JSC::PrivateName.
+        Later, the module integration patch will use this feature to call
+        DeferredWrapper::{resolve,reject} with JSC::PrivateName.
+
+        * bindings/js/JSDOMBinding.h:
+        (WebCore::toJS):
+
</ins><span class="cx"> 2016-09-01  Dan Bernstein  &lt;mitz@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Build fix.
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMBindingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMBinding.h (205334 => 205335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMBinding.h        2016-09-02 03:37:58 UTC (rev 205334)
+++ trunk/Source/WebCore/bindings/js/JSDOMBinding.h        2016-09-02 03:42:09 UTC (rev 205335)
</span><span class="lines">@@ -264,6 +264,7 @@
</span><span class="cx"> template&lt;typename T&gt; JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, const Vector&lt;T&gt;&amp;);
</span><span class="cx"> template&lt;typename T&gt; JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, const Vector&lt;RefPtr&lt;T&gt;&gt;&amp;);
</span><span class="cx"> JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, const String&amp;);
</span><ins>+JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, const JSC::PrivateName&amp;);
</ins><span class="cx"> 
</span><span class="cx"> JSC::JSValue toJSIterator(JSC::ExecState&amp;, JSDOMGlobalObject&amp;, JSC::JSValue);
</span><span class="cx"> template&lt;typename T&gt; JSC::JSValue toJSIterator(JSC::ExecState&amp;, JSDOMGlobalObject&amp;, const T&amp;);
</span><span class="lines">@@ -576,6 +577,11 @@
</span><span class="cx">     return jsStringOrNull(exec, value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject*, const JSC::PrivateName&amp; privateName)
+{
+    return JSC::Symbol::create(exec-&gt;vm(), privateName.uid());
+}
+
</ins><span class="cx"> inline JSC::JSValue toJSIterator(JSC::ExecState&amp; state, JSDOMGlobalObject&amp;, JSC::JSValue value)
</span><span class="cx"> {
</span><span class="cx">     return createIteratorResultObject(&amp;state, value, false);
</span></span></pre>
</div>
</div>

</body>
</html>