<!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>[205933] 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/205933">205933</a></dd>
<dt>Author</dt> <dd>keith_miller@apple.com</dd>
<dt>Date</dt> <dd>2016-09-14 15:32:58 -0700 (Wed, 14 Sep 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Pragma out undefined-var-template warnings in JSC for JSObjects that are templatized
https://bugs.webkit.org/show_bug.cgi?id=161985

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

I started a true fix for this in
https://bugs.webkit.org/show_bug.cgi?id=161979, however the fix
for this issue is not sustainable. Since the scope of this issue
is just limited to the static const ClassInfo member it is
simpler to just pragma out this warning. This works because
COMDAT will, AFAIK, pick the actual specialization.  If, in the
future, we want to expose these classes to WebCore we will need to
do what we do for JSGenericTypedArrayViews and create a custom
info() function with a switch.

This patch also fixes a bunch of weak external symbols due to one of:
1) out of line template member definitions functions not being marked inline.
2) inline member functions definitions being marked as exported.
3) missing header file includes for forward function declarations.

* API/JSCallbackObject.h:
* b3/B3ValueInlines.h:
(JSC::B3::Value::as):
* runtime/HashMapImpl.h:
* runtime/JSCJSValue.h:
(JSC::toUInt32): Deleted.
* runtime/JSGenericTypedArrayView.h:
(JSC::JSGenericTypedArrayView::setIndexQuicklyToDouble):
* runtime/JSGenericTypedArrayViewConstructor.h:
* runtime/JSGenericTypedArrayViewPrototype.h:
* runtime/MathCommon.h:
(JSC::toUInt32):
* runtime/TypedArrayAdaptors.h:
* runtime/VM.h:
(JSC::VM::watchdog):
(JSC::VM::heapProfiler):
(JSC::VM::samplingProfiler):

Source/WTF:

Fix WTF_EXPORT_PRIVATE for an inline member function. This would
generate a weak export.

* wtf/MetaAllocator.h:
(WTF::MetaAllocator::getLock):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreAPIJSCallbackObjecth">trunk/Source/JavaScriptCore/API/JSCallbackObject.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3B3ValueInlinesh">trunk/Source/JavaScriptCore/b3/B3ValueInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeHashMapImplh">trunk/Source/JavaScriptCore/runtime/HashMapImpl.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSCJSValueh">trunk/Source/JavaScriptCore/runtime/JSCJSValue.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewh">trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewConstructorh">trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructor.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewPrototypeh">trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototype.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeMathCommonh">trunk/Source/JavaScriptCore/runtime/MathCommon.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeTypedArrayAdaptorsh">trunk/Source/JavaScriptCore/runtime/TypedArrayAdaptors.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeVMh">trunk/Source/JavaScriptCore/runtime/VM.h</a></li>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtfMetaAllocatorh">trunk/Source/WTF/wtf/MetaAllocator.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreAPIJSCallbackObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/API/JSCallbackObject.h (205932 => 205933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/API/JSCallbackObject.h        2016-09-14 22:27:19 UTC (rev 205932)
+++ trunk/Source/JavaScriptCore/API/JSCallbackObject.h        2016-09-14 22:32:58 UTC (rev 205933)
</span><span class="lines">@@ -149,7 +149,19 @@
</span><span class="cx">     void setPrivate(void* data);
</span><span class="cx">     void* getPrivate();
</span><span class="cx"> 
</span><ins>+    // FIXME: We should fix the warnings for extern-template in JSObject template classes: https://bugs.webkit.org/show_bug.cgi?id=161979
+#if COMPILER(CLANG)
+#if __has_warning(&quot;-Wundefined-var-template&quot;)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored &quot;-Wundefined-var-template&quot;
+#endif
+#endif
</ins><span class="cx">     DECLARE_INFO;
</span><ins>+#if COMPILER(CLANG)
+#if __has_warning(&quot;-Wundefined-var-template&quot;)
+#pragma clang diagnostic pop
+#endif
+#endif
</ins><span class="cx"> 
</span><span class="cx">     JSClassRef classRef() const { return m_callbackObjectData-&gt;jsClass; }
</span><span class="cx">     bool inherits(JSClassRef) const;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (205932 => 205933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-09-14 22:27:19 UTC (rev 205932)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-09-14 22:32:58 UTC (rev 205933)
</span><span class="lines">@@ -1,3 +1,43 @@
</span><ins>+2016-09-14  Keith Miller  &lt;keith_miller@apple.com&gt;
+
+        Pragma out undefined-var-template warnings in JSC for JSObjects that are templatized
+        https://bugs.webkit.org/show_bug.cgi?id=161985
+
+        Reviewed by Geoffrey Garen.
+
+        I started a true fix for this in
+        https://bugs.webkit.org/show_bug.cgi?id=161979, however the fix
+        for this issue is not sustainable. Since the scope of this issue
+        is just limited to the static const ClassInfo member it is
+        simpler to just pragma out this warning. This works because
+        COMDAT will, AFAIK, pick the actual specialization.  If, in the
+        future, we want to expose these classes to WebCore we will need to
+        do what we do for JSGenericTypedArrayViews and create a custom
+        info() function with a switch.
+
+        This patch also fixes a bunch of weak external symbols due to one of:
+        1) out of line template member definitions functions not being marked inline.
+        2) inline member functions definitions being marked as exported.
+        3) missing header file includes for forward function declarations.
+
+        * API/JSCallbackObject.h:
+        * b3/B3ValueInlines.h:
+        (JSC::B3::Value::as):
+        * runtime/HashMapImpl.h:
+        * runtime/JSCJSValue.h:
+        (JSC::toUInt32): Deleted.
+        * runtime/JSGenericTypedArrayView.h:
+        (JSC::JSGenericTypedArrayView::setIndexQuicklyToDouble):
+        * runtime/JSGenericTypedArrayViewConstructor.h:
+        * runtime/JSGenericTypedArrayViewPrototype.h:
+        * runtime/MathCommon.h:
+        (JSC::toUInt32):
+        * runtime/TypedArrayAdaptors.h:
+        * runtime/VM.h:
+        (JSC::VM::watchdog):
+        (JSC::VM::heapProfiler):
+        (JSC::VM::samplingProfiler):
+
</ins><span class="cx"> 2016-09-14  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         test262: TypedArray constructors length should be 3 and configurable
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3B3ValueInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/B3ValueInlines.h (205932 => 205933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/B3ValueInlines.h        2016-09-14 22:27:19 UTC (rev 205932)
+++ trunk/Source/JavaScriptCore/b3/B3ValueInlines.h        2016-09-14 22:32:58 UTC (rev 205933)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename T&gt;
</span><del>-T* Value::as()
</del><ins>+inline T* Value::as()
</ins><span class="cx"> {
</span><span class="cx">     if (T::accepts(opcode()))
</span><span class="cx">         return static_cast&lt;T*&gt;(this);
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename T&gt;
</span><del>-const T* Value::as() const
</del><ins>+inline const T* Value::as() const
</ins><span class="cx"> {
</span><span class="cx">     return const_cast&lt;Value*&gt;(this)-&gt;as&lt;T&gt;();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeHashMapImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/HashMapImpl.h (205932 => 205933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/HashMapImpl.h        2016-09-14 22:27:19 UTC (rev 205932)
+++ trunk/Source/JavaScriptCore/runtime/HashMapImpl.h        2016-09-14 22:32:58 UTC (rev 205933)
</span><span class="lines">@@ -56,8 +56,21 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> public:
</span><del>-    DECLARE_EXPORT_INFO;
</del><span class="cx"> 
</span><ins>+    // FIXME: We should fix the warnings for extern-template in JSObject template classes: https://bugs.webkit.org/show_bug.cgi?id=161979
+#if COMPILER(CLANG)
+#if __has_warning(&quot;-Wundefined-var-template&quot;)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored &quot;-Wundefined-var-template&quot;
+#endif
+#endif
+    DECLARE_INFO;
+#if COMPILER(CLANG)
+#if __has_warning(&quot;-Wundefined-var-template&quot;)
+#pragma clang diagnostic pop
+#endif
+#endif
+
</ins><span class="cx">     static Structure* createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
</span><span class="cx">     {
</span><span class="cx">         return Structure::create(vm, globalObject, prototype, TypeInfo(CellType, StructureFlags), info());
</span><span class="lines">@@ -265,7 +278,19 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> public:
</span><del>-    DECLARE_EXPORT_INFO;
</del><ins>+    // FIXME: We should fix the warnings for extern-template in JSObject template classes: https://bugs.webkit.org/show_bug.cgi?id=161979
+#if COMPILER(CLANG)
+#if __has_warning(&quot;-Wundefined-var-template&quot;)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored &quot;-Wundefined-var-template&quot;
+#endif
+#endif
+    DECLARE_INFO;
+#if COMPILER(CLANG)
+#if __has_warning(&quot;-Wundefined-var-template&quot;)
+#pragma clang diagnostic pop
+#endif
+#endif
</ins><span class="cx"> 
</span><span class="cx">     static Structure* createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSCJSValueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSCJSValue.h (205932 => 205933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSCJSValue.h        2016-09-14 22:27:19 UTC (rev 205932)
+++ trunk/Source/JavaScriptCore/runtime/JSCJSValue.h        2016-09-14 22:32:58 UTC (rev 205933)
</span><span class="lines">@@ -118,17 +118,6 @@
</span><span class="cx">     PayloadWord
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-// This implements ToInt32, defined in ECMA-262 9.5.
-JS_EXPORT_PRIVATE int32_t toInt32(double);
-
-// This implements ToUInt32, defined in ECMA-262 9.6.
-inline uint32_t toUInt32(double number)
-{
-    // As commented in the spec, the operation of ToInt32 and ToUint32 only differ
-    // in how the result is interpreted; see NOTEs in sections 9.5 and 9.6.
-    return toInt32(number);
-}
-
</del><span class="cx"> int64_t tryConvertToInt52(double);
</span><span class="cx"> bool isInt52(double);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h (205932 => 205933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h        2016-09-14 22:27:19 UTC (rev 205932)
+++ trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h        2016-09-14 22:32:58 UTC (rev 205933)
</span><span class="lines">@@ -159,7 +159,7 @@
</span><span class="cx">     
</span><span class="cx">     void setIndexQuicklyToDouble(unsigned i, double value)
</span><span class="cx">     {
</span><del>-        setIndexQuicklyToNativeValue(i, toNativeFromValue&lt;Adaptor&gt;(value));
</del><ins>+        setIndexQuicklyToNativeValue(i, toNativeFromValue&lt;Adaptor&gt;(jsNumber(value)));
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     void setIndexQuickly(unsigned i, JSValue value)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewConstructorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructor.h (205932 => 205933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructor.h        2016-09-14 22:27:19 UTC (rev 205932)
+++ trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructor.h        2016-09-14 22:32:58 UTC (rev 205933)
</span><span class="lines">@@ -43,7 +43,19 @@
</span><span class="cx">     static JSGenericTypedArrayViewConstructor* create(
</span><span class="cx">         VM&amp;, JSGlobalObject*, Structure*, JSObject* prototype, const String&amp; name, FunctionExecutable* privateAllocator);
</span><span class="cx"> 
</span><ins>+    // FIXME: We should fix the warnings for extern-template in JSObject template classes: https://bugs.webkit.org/show_bug.cgi?id=161979
+#if COMPILER(CLANG)
+#if __has_warning(&quot;-Wundefined-var-template&quot;)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored &quot;-Wundefined-var-template&quot;
+#endif
+#endif
</ins><span class="cx">     DECLARE_INFO;
</span><ins>+#if COMPILER(CLANG)
+#if __has_warning(&quot;-Wundefined-var-template&quot;)
+#pragma clang diagnostic pop
+#endif
+#endif
</ins><span class="cx">     
</span><span class="cx">     static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue prototype);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewPrototypeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototype.h (205932 => 205933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototype.h        2016-09-14 22:27:19 UTC (rev 205932)
+++ trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototype.h        2016-09-14 22:32:58 UTC (rev 205933)
</span><span class="lines">@@ -42,8 +42,20 @@
</span><span class="cx"> public:
</span><span class="cx">     static JSGenericTypedArrayViewPrototype* create(
</span><span class="cx">         VM&amp;, JSGlobalObject*, Structure*);
</span><del>-    
</del><ins>+
+    // FIXME: We should fix the warnings for extern-template in JSObject template classes: https://bugs.webkit.org/show_bug.cgi?id=161979
+#if COMPILER(CLANG)
+#if __has_warning(&quot;-Wundefined-var-template&quot;)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored &quot;-Wundefined-var-template&quot;
+#endif
+#endif
</ins><span class="cx">     DECLARE_INFO;
</span><ins>+#if COMPILER(CLANG)
+#if __has_warning(&quot;-Wundefined-var-template&quot;)
+#pragma clang diagnostic pop
+#endif
+#endif
</ins><span class="cx">     
</span><span class="cx">     static Structure* createStructure(VM&amp;, JSGlobalObject*, JSValue prototype);
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeMathCommonh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/MathCommon.h (205932 => 205933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/MathCommon.h        2016-09-14 22:27:19 UTC (rev 205932)
+++ trunk/Source/JavaScriptCore/runtime/MathCommon.h        2016-09-14 22:32:58 UTC (rev 205933)
</span><span class="lines">@@ -111,6 +111,14 @@
</span><span class="cx">     return bits &lt; 0 ? -result : result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+// This implements ToUInt32, defined in ECMA-262 9.6.
+inline uint32_t toUInt32(double number)
+{
+    // As commented in the spec, the operation of ToInt32 and ToUint32 only differ
+    // in how the result is interpreted; see NOTEs in sections 9.5 and 9.6.
+    return toInt32(number);
+}
+
</ins><span class="cx"> inline Optional&lt;double&gt; safeReciprocalForDivByConst(double constant)
</span><span class="cx"> {
</span><span class="cx">     // No &quot;weird&quot; numbers (NaN, Denormal, etc).
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeTypedArrayAdaptorsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/TypedArrayAdaptors.h (205932 => 205933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/TypedArrayAdaptors.h        2016-09-14 22:27:19 UTC (rev 205932)
+++ trunk/Source/JavaScriptCore/runtime/TypedArrayAdaptors.h        2016-09-14 22:32:58 UTC (rev 205933)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx"> #define TypedArrayAdaptors_h
</span><span class="cx"> 
</span><span class="cx"> #include &quot;JSCJSValue.h&quot;
</span><ins>+#include &quot;MathCommon.h&quot;
</ins><span class="cx"> #include &quot;TypedArrayType.h&quot;
</span><span class="cx"> #include &lt;wtf/MathExtras.h&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeVMh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/VM.h (205932 => 205933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/VM.h        2016-09-14 22:27:19 UTC (rev 205932)
+++ trunk/Source/JavaScriptCore/runtime/VM.h        2016-09-14 22:32:58 UTC (rev 205933)
</span><span class="lines">@@ -252,13 +252,13 @@
</span><span class="cx">     JS_EXPORT_PRIVATE ~VM();
</span><span class="cx"> 
</span><span class="cx">     JS_EXPORT_PRIVATE Watchdog&amp; ensureWatchdog();
</span><del>-    JS_EXPORT_PRIVATE Watchdog* watchdog() { return m_watchdog.get(); }
</del><ins>+    Watchdog* watchdog() { return m_watchdog.get(); }
</ins><span class="cx"> 
</span><del>-    JS_EXPORT_PRIVATE HeapProfiler* heapProfiler() const { return m_heapProfiler.get(); }
</del><ins>+    HeapProfiler* heapProfiler() const { return m_heapProfiler.get(); }
</ins><span class="cx">     JS_EXPORT_PRIVATE HeapProfiler&amp; ensureHeapProfiler();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SAMPLING_PROFILER)
</span><del>-    JS_EXPORT_PRIVATE SamplingProfiler* samplingProfiler() { return m_samplingProfiler.get(); }
</del><ins>+    SamplingProfiler* samplingProfiler() { return m_samplingProfiler.get(); }
</ins><span class="cx">     JS_EXPORT_PRIVATE SamplingProfiler&amp; ensureSamplingProfiler(RefPtr&lt;Stopwatch&gt;&amp;&amp;);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (205932 => 205933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2016-09-14 22:27:19 UTC (rev 205932)
+++ trunk/Source/WTF/ChangeLog        2016-09-14 22:32:58 UTC (rev 205933)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2016-09-14  Keith Miller  &lt;keith_miller@apple.com&gt;
+
+        Pragma out undefined-var-template warnings in JSC for JSObjects that are templatized
+        https://bugs.webkit.org/show_bug.cgi?id=161985
+
+        Reviewed by Geoffrey Garen.
+
+        Fix WTF_EXPORT_PRIVATE for an inline member function. This would
+        generate a weak export.
+
+        * wtf/MetaAllocator.h:
+        (WTF::MetaAllocator::getLock):
+
</ins><span class="cx"> 2016-09-14  JF Bastien  &lt;jfbastien@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Atomics on ARM don't require full-system fencing, and other minutiae
</span></span></pre></div>
<a id="trunkSourceWTFwtfMetaAllocatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/MetaAllocator.h (205932 => 205933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/MetaAllocator.h        2016-09-14 22:27:19 UTC (rev 205932)
+++ trunk/Source/WTF/wtf/MetaAllocator.h        2016-09-14 22:32:58 UTC (rev 205933)
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx">     // builds.
</span><span class="cx">     WTF_EXPORT_PRIVATE size_t debugFreeSpaceSize();
</span><span class="cx"> 
</span><del>-    WTF_EXPORT_PRIVATE Lock&amp; getLock() { return m_lock; }
</del><ins>+    Lock&amp; getLock() { return m_lock; }
</ins><span class="cx">     WTF_EXPORT_PRIVATE bool isInAllocatedMemory(const LockHolder&amp;, void* address);
</span><span class="cx">     
</span><span class="cx"> #if ENABLE(META_ALLOCATOR_PROFILE)
</span></span></pre>
</div>
</div>

</body>
</html>