<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1826698875;
        mso-list-type:hybrid;
        mso-list-template-ids:2113704168 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hello,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Recently we’ve been attempting to move our code base to build with VS2015 RC since this provides us with some support that we’ll be needing in the future for our products. The changes for compilation with the new compiler haven’t been
too bad, and I have everything building with the exception of one line:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">FILE: JSCSSValueCustom.cpp<o:p></o:p></p>
<p class="MsoNormal">Line95:<o:p></o:p></p>
<p class="MsoNormal">67 JSValue toJS(ExecState*, JSDOMGlobalObject* globalObject, CSSValue* value)<o:p></o:p></p>
<p class="MsoNormal">68 {<o:p></o:p></p>
<p class="MsoNormal">69 if (!value)<o:p></o:p></p>
<p class="MsoNormal">70 return jsNull();<o:p></o:p></p>
<p class="MsoNormal">71 <o:p></o:p></p>
<p class="MsoNormal">72 // Scripts should only ever see cloned CSSValues, never the internal ones.<o:p></o:p></p>
<p class="MsoNormal">73 ASSERT(value->isCSSOMSafe());<o:p></o:p></p>
<p class="MsoNormal">74 <o:p></o:p></p>
<p class="MsoNormal">75 // If we're here under erroneous circumstances, prefer returning null over a potentially insecure value.<o:p></o:p></p>
<p class="MsoNormal">76 if (!value->isCSSOMSafe())<o:p></o:p></p>
<p class="MsoNormal">77 return jsNull();<o:p></o:p></p>
<p class="MsoNormal">78 <o:p></o:p></p>
<p class="MsoNormal">79 JSObject* wrapper = getCachedWrapper(globalObject->world(), value);<o:p></o:p></p>
<p class="MsoNormal">80 <o:p></o:p></p>
<p class="MsoNormal">81 if (wrapper)<o:p></o:p></p>
<p class="MsoNormal">82 return wrapper;<o:p></o:p></p>
<p class="MsoNormal">83 <o:p></o:p></p>
<p class="MsoNormal">84 if (value->isWebKitCSSTransformValue())<o:p></o:p></p>
<p class="MsoNormal">85 wrapper = CREATE_DOM_WRAPPER(globalObject, WebKitCSSTransformValue, value);<o:p></o:p></p>
<p class="MsoNormal">86 else if (value->isWebKitCSSFilterValue())<o:p></o:p></p>
<p class="MsoNormal">87 wrapper = CREATE_DOM_WRAPPER(globalObject, WebKitCSSFilterValue, value);<o:p></o:p></p>
<p class="MsoNormal">88 else if (value->isValueList())<o:p></o:p></p>
<p class="MsoNormal">89 wrapper = CREATE_DOM_WRAPPER(globalObject, CSSValueList, value);<o:p></o:p></p>
<p class="MsoNormal">90 else if (value->isSVGPaint())<o:p></o:p></p>
<p class="MsoNormal">91 wrapper = CREATE_DOM_WRAPPER(globalObject, SVGPaint, value);<o:p></o:p></p>
<p class="MsoNormal">92 else if (value->isSVGColor())<o:p></o:p></p>
<p class="MsoNormal">93 wrapper = CREATE_DOM_WRAPPER(globalObject, SVGColor, value);<o:p></o:p></p>
<p class="MsoNormal">94 else if (value->isPrimitiveValue())<o:p></o:p></p>
<p class="MsoNormal"><span style="background:yellow;mso-highlight:yellow">95 wrapper = CREATE_DOM_WRAPPER(globalObject, CSSPrimitiveValue, value);</span><o:p></o:p></p>
<p class="MsoNormal">96 else<o:p></o:p></p>
<p class="MsoNormal">97 wrapper = CREATE_DOM_WRAPPER(globalObject, CSSValue, value);<o:p></o:p></p>
<p class="MsoNormal">98 <o:p></o:p></p>
<p class="MsoNormal">99 return wrapper;<o:p></o:p></p>
<p class="MsoNormal">100 }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">It produces the linker error:<o:p></o:p></p>
<p class="MsoNormal"><span style="color:#843C0C">JSBindingsAllInOne.obj : error LNK2019: unresolved external symbol "public: __thiscall WebCore::CSSPrimitiveValue::operator<class WTF::Ref<class WebCore::CSSPrimitiveValue> > class WTF::Ref<class WebCore::CSSPrimitiveValue>(void)const
" (??$?BV?$Ref@VCSSPrimitiveValue@WebCore@@@WTF@@@CSSPrimitiveValue@WebCore@@QBE?AV?$Ref@VCSSPrimitiveValue@WebCore@@@WTF@@XZ) referenced in function "class WebCore::JSDOMWrapper * __cdecl WebCore::createWrapper<class WebCore::JSCSSPrimitiveValue,class WebCore::CSSPrimitiveValue>(class
WebCore::JSDOMGlobalObject *,class WebCore::CSSPrimitiveValue *)" (??$createWrapper@VJSCSSPrimitiveValue@WebCore@@VCSSPrimitiveValue@2@@WebCore@@YAPAVJSDOMWrapper@0@PAVJSDOMGlobalObject@0@PAVCSSPrimitiveValue@0@@Z)<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">As you can see there are many other similar code lines in the area, none of which cause a problem. Despite my many attempts I can’t seem to satisfy the linker by providing it the definition it needs.
<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>I’ve attempted manually adding the copy constructor definition (I believe that is what it is describing):<o:p></o:p></p>
<p class="MsoListParagraph" style="margin-left:1.0in;text-indent:-.25in;mso-list:l0 level2 lfo1">
<![if !supportLists]><span style="font-family:"Courier New""><span style="mso-list:Ignore">o<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>CSSPrimitiveValue::CSSPrimitiveValue(ClassType classType, const CSSPrimitiveValue& cloneFrom)<o:p></o:p></p>
<p class="MsoListParagraph" style="margin-left:1.0in;text-indent:-.25in;mso-list:l0 level2 lfo1">
<![if !supportLists]><span style="font-family:"Courier New""><span style="mso-list:Ignore">o<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>CSSPrimitiveValue::CSSPrimitiveValue(const CSSPrimitiveValue& cloneFrom)<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>I’ve tried removing the usage of the “AllInOne” file, thinking that it may be causing some issue.<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>I’ve attempted to debug the code when the offending line is commented out, hoping to see better how the other lines function. Though I’m not sure what path would cause it to execute, I haven’t hit it in my limited testing.<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>One of my colleagues reached out the MS on the issue, but it behaves as expect on their end (small sample code does not find a bug in the compiler).
<a href="https://social.msdn.microsoft.com/Forums/en-US/6b9787f3-62bd-473a-8aa1-5f6cd85ed87b/breaking-change-in-visual-studio-2015-rc?forum=vcgeneral">
https://social.msdn.microsoft.com/Forums/en-US/6b9787f3-62bd-473a-8aa1-5f6cd85ed87b/breaking-change-in-visual-studio-2015-rc?forum=vcgeneral</a><o:p></o:p></p>
<p class="MsoListParagraph"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Any suggestions would be much appreciated<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Chris<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>