<!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>[218997] 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/218997">218997</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2017-06-30 08:45:59 -0700 (Fri, 30 Jun 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>[WebIDL] Replace use of __is_polymorphic with standard std::is_polymorphic<>::value
https://bugs.webkit.org/show_bug.cgi?id=174012

Patch by Sam Weinig <sam@webkit.org> on 2017-06-30
Reviewed by Alex Christensen.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
Replace __is_polymorphic with standard std::is_polymorphic<>::value. Remove clang
specific guard now that we are using something other compilers support.

* bindings/scripts/test/JS/JSInterfaceName.cpp:
* bindings/scripts/test/JS/JSMapLike.cpp:
* bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
* bindings/scripts/test/JS/JSTestCEReactions.cpp:
* bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
* bindings/scripts/test/JS/JSTestException.cpp:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
* bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
* bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
* bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
* bindings/scripts/test/JS/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
* bindings/scripts/test/JS/JSTestIterable.cpp:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
* bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
* bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
* bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
* bindings/scripts/test/JS/JSTestNode.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
* bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
* bindings/scripts/test/JS/JSTestSerialization.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/JS/JSTestStringifier.cpp:
* bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
* bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
* bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
* bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
* bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
* bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
Update test results.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSInterfaceNamecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSInterfaceName.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSMapLikecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSMapLike.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSReadOnlyMapLikecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSReadOnlyMapLike.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionsStringifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestClassWithJSBuiltinConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCustomConstructorWithNoInterfaceObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestGlobalObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestIndexedSetterNoIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestIndexedSetterThrowingExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestIndexedSetterWithIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfaceLeadingUnderscorecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestIterablecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedAndIndexedSetterNoIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedAndIndexedSetterThrowingExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedAndIndexedSetterWithIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterNoIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterThrowingExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterWithIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterWithIndexedGettercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedGetterCallWithcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedGetterNoIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedGetterWithIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterNoIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterThrowingExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithOverrideBuiltinscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithUnforgablePropertiescpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorsWithSequencecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverrideBuiltinscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestPromiseRejectionEventcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSerializationcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerialization.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStringifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStringifierAnonymousOperationcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStringifierNamedOperationcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStringifierOperationImplementedAscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStringifierOperationNamedToStringcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStringifierReadOnlyAttributecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStringifierReadWriteAttributecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/ChangeLog      2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -1,3 +1,70 @@
</span><ins>+2017-06-30  Sam Weinig  <sam@webkit.org>
+
+        [WebIDL] Replace use of __is_polymorphic with standard std::is_polymorphic<>::value
+        https://bugs.webkit.org/show_bug.cgi?id=174012
+
+        Reviewed by Alex Christensen.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateImplementation):
+        Replace __is_polymorphic with standard std::is_polymorphic<>::value. Remove clang
+        specific guard now that we are using something other compilers support.
+
+        * bindings/scripts/test/JS/JSInterfaceName.cpp:
+        * bindings/scripts/test/JS/JSMapLike.cpp:
+        * bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
+        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
+        * bindings/scripts/test/JS/JSTestCEReactions.cpp:
+        * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
+        * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
+        * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
+        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
+        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
+        * bindings/scripts/test/JS/JSTestException.cpp:
+        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
+        * bindings/scripts/test/JS/JSTestGlobalObject.cpp:
+        * bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
+        * bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
+        * bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
+        * bindings/scripts/test/JS/JSTestInterface.cpp:
+        * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
+        * bindings/scripts/test/JS/JSTestIterable.cpp:
+        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
+        * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
+        * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
+        * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
+        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
+        * bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
+        * bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
+        * bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
+        * bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
+        * bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
+        * bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
+        * bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
+        * bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
+        * bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
+        * bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
+        * bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:
+        * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
+        * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
+        * bindings/scripts/test/JS/JSTestNode.cpp:
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
+        * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
+        * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
+        * bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
+        * bindings/scripts/test/JS/JSTestSerialization.cpp:
+        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
+        * bindings/scripts/test/JS/JSTestStringifier.cpp:
+        * bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
+        * bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
+        * bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
+        * bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
+        * bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
+        * bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
+        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
+        Update test results.
+
</ins><span class="cx"> 2017-06-30  Youenn Fablet  <youenn@apple.com>
</span><span class="cx"> 
</span><span class="cx">        Support PeerConnectionStates::BundlePolicy::MaxBundle when setting rtc configuration
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm 2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm    2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -4576,14 +4576,14 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(${vtableRefWin});
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = ${vtableRefGnu};
</span><del>-#if COMPILER(CLANG)
-    // If this fails $implType does not have a vtable, so you need to add the
</del><ins>+#endif
+
+    // If this fails ${implType} does not have a vtable, so you need to add the
</ins><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic($implType), "${implType} is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<${implType}>::value, "${implType} is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><del>-    // $implType has subclasses. If $implType has subclasses that get passed
</del><ins>+    // ${implType} has subclasses. If ${implType} has subclasses that get passed
</ins><span class="cx">     // to toJS() we currently require $interfaceName you to opt out of binding hardening
</span><span class="cx">     // by adding the SkipVTableValidation attribute to the interface IDL definition
</span><span class="cx">     RELEASE_ASSERT(actualVTablePointer == expectedVTablePointer);
</span><span class="lines">@@ -4590,22 +4590,20 @@
</span><span class="cx"> #endif
</span><span class="cx"> END
</span><span class="cx">         push(@implContent, <<END) if $interface->extendedAttributes->{ImplementationLacksVTable};
</span><del>-#if COMPILER(CLANG)
</del><span class="cx">     // If you hit this failure the interface definition has the ImplementationLacksVTable
</span><span class="cx">     // attribute. You should remove that attribute. If the class has subclasses
</span><span class="cx">     // that may be passed through this toJS() function you should use the SkipVTableValidation
</span><span class="cx">     // attribute to $interfaceName.
</span><del>-    static_assert(!__is_polymorphic($implType), "${implType} is polymorphic but the IDL claims it is not");
-#endif
</del><ins>+    static_assert(!std::is_polymorphic<${implType}>::value, "${implType} is polymorphic but the IDL claims it is not");
</ins><span class="cx"> END
</span><span class="cx">         push(@implContent, <<END) if $interface->extendedAttributes->{ReportExtraMemoryCost};
</span><span class="cx">     globalObject->vm().heap.reportExtraMemoryAllocated(impl->memoryCost());
</span><span class="cx"> END
</span><span class="cx"> 
</span><del>-        push(@implContent, "    return createWrapper<$implType>(globalObject, WTFMove(impl));\n");
</del><ins>+        push(@implContent, "    return createWrapper<${implType}>(globalObject, WTFMove(impl));\n");
</ins><span class="cx">         push(@implContent, "}\n\n");
</span><span class="cx"> 
</span><del>-        push(@implContent, "JSC::JSValue toJS(JSC::ExecState* state, JSDOMGlobalObject* globalObject, $implType& impl)\n");
</del><ins>+        push(@implContent, "JSC::JSValue toJS(JSC::ExecState* state, JSDOMGlobalObject* globalObject, ${implType}& impl)\n");
</ins><span class="cx">         push(@implContent, "{\n");
</span><span class="cx">         push(@implContent, "    return wrap(state, globalObject, impl);\n");
</span><span class="cx">         push(@implContent, "}\n\n");
</span><span class="lines">@@ -4612,7 +4610,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (ShouldGenerateToWrapped($hasParent, $interface) and !$interface->extendedAttributes->{JSCustomToNativeObject}) {
</span><del>-        push(@implContent, "$implType* ${className}::toWrapped(JSC::VM& vm, JSC::JSValue value)\n");
</del><ins>+        push(@implContent, "${implType}* ${className}::toWrapped(JSC::VM& vm, JSC::JSValue value)\n");
</ins><span class="cx">         push(@implContent, "{\n");
</span><span class="cx">         push(@implContent, "    if (auto* wrapper = " . GetCastingHelperForThisObject($interface) . "(vm, value))\n");
</span><span class="cx">         push(@implContent, "        return &wrapper->wrapped();\n");
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSInterfaceNamecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSInterfaceName.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSInterfaceName.cpp        2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSInterfaceName.cpp   2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -199,12 +199,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7InterfaceName@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore13InterfaceNameE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails InterfaceName does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(InterfaceName), "InterfaceName is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<InterfaceName>::value, "InterfaceName is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // InterfaceName has subclasses. If InterfaceName has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require InterfaceName you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSMapLikecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSMapLike.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSMapLike.cpp      2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSMapLike.cpp 2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -368,12 +368,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7MapLike@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore7MapLikeE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails MapLike does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(MapLike), "MapLike is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<MapLike>::value, "MapLike is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // MapLike has subclasses. If MapLike has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require MapLike you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSReadOnlyMapLikecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSReadOnlyMapLike.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSReadOnlyMapLike.cpp      2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSReadOnlyMapLike.cpp 2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -317,12 +317,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7ReadOnlyMapLike@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore15ReadOnlyMapLikeE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails ReadOnlyMapLike does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(ReadOnlyMapLike), "ReadOnlyMapLike is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<ReadOnlyMapLike>::value, "ReadOnlyMapLike is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // ReadOnlyMapLike has subclasses. If ReadOnlyMapLike has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require ReadOnlyMapLike you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp  2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp     2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -278,12 +278,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestActiveDOMObject@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore19TestActiveDOMObjectE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestActiveDOMObject does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestActiveDOMObject), "TestActiveDOMObject is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestActiveDOMObject>::value, "TestActiveDOMObject is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestActiveDOMObject has subclasses. If TestActiveDOMObject has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestActiveDOMObject you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.cpp      2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.cpp 2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -331,12 +331,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestCEReactions@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore15TestCEReactionsE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestCEReactions does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestCEReactions), "TestCEReactions is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestCEReactions>::value, "TestCEReactions is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestCEReactions has subclasses. If TestCEReactions has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestCEReactions you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionsStringifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp   2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp      2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -251,12 +251,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestCEReactionsStringifier@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore26TestCEReactionsStringifierE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestCEReactionsStringifier does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestCEReactionsStringifier), "TestCEReactionsStringifier is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestCEReactionsStringifier>::value, "TestCEReactionsStringifier is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestCEReactionsStringifier has subclasses. If TestCEReactionsStringifier has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestCEReactionsStringifier you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestClassWithJSBuiltinConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp    2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp       2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -191,12 +191,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestClassWithJSBuiltinConstructor@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore33TestClassWithJSBuiltinConstructorE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestClassWithJSBuiltinConstructor does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestClassWithJSBuiltinConstructor), "TestClassWithJSBuiltinConstructor is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestClassWithJSBuiltinConstructor>::value, "TestClassWithJSBuiltinConstructor is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestClassWithJSBuiltinConstructor has subclasses. If TestClassWithJSBuiltinConstructor has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestClassWithJSBuiltinConstructor you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomConstructorWithNoInterfaceObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp   2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp      2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -189,12 +189,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestCustomConstructorWithNoInterfaceObject@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore42TestCustomConstructorWithNoInterfaceObjectE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestCustomConstructorWithNoInterfaceObject does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestCustomConstructorWithNoInterfaceObject), "TestCustomConstructorWithNoInterfaceObject is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestCustomConstructorWithNoInterfaceObject>::value, "TestCustomConstructorWithNoInterfaceObject is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestCustomConstructorWithNoInterfaceObject has subclasses. If TestCustomConstructorWithNoInterfaceObject has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestCustomConstructorWithNoInterfaceObject you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp 2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp    2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -294,12 +294,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestEventConstructor@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore20TestEventConstructorE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestEventConstructor does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestEventConstructor), "TestEventConstructor is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestEventConstructor>::value, "TestEventConstructor is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestEventConstructor has subclasses. If TestEventConstructor has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestEventConstructor you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp      2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp 2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -263,12 +263,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestEventTarget@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore15TestEventTargetE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestEventTarget does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestEventTarget), "TestEventTarget is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestEventTarget>::value, "TestEventTarget is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestEventTarget has subclasses. If TestEventTarget has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestEventTarget you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp   2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -221,12 +221,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestException@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore13TestExceptionE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestException does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestException), "TestException is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestException>::value, "TestException is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestException has subclasses. If TestException has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestException you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp      2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp 2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -215,12 +215,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestGenerateIsReachable@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore23TestGenerateIsReachableE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestGenerateIsReachable does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestGenerateIsReachable), "TestGenerateIsReachable is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestGenerateIsReachable>::value, "TestGenerateIsReachable is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestGenerateIsReachable has subclasses. If TestGenerateIsReachable has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestGenerateIsReachable you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGlobalObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp     2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp        2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -596,12 +596,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestGlobalObject@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore16TestGlobalObjectE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestGlobalObject does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestGlobalObject), "TestGlobalObject is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestGlobalObject>::value, "TestGlobalObject is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestGlobalObject has subclasses. If TestGlobalObject has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestGlobalObject you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestIndexedSetterNoIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp        2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp   2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -277,12 +277,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestIndexedSetterNoIdentifier@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore29TestIndexedSetterNoIdentifierE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestIndexedSetterNoIdentifier does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestIndexedSetterNoIdentifier), "TestIndexedSetterNoIdentifier is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestIndexedSetterNoIdentifier>::value, "TestIndexedSetterNoIdentifier is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestIndexedSetterNoIdentifier has subclasses. If TestIndexedSetterNoIdentifier has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestIndexedSetterNoIdentifier you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestIndexedSetterThrowingExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp   2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp      2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -277,12 +277,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestIndexedSetterThrowingException@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore34TestIndexedSetterThrowingExceptionE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestIndexedSetterThrowingException does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestIndexedSetterThrowingException), "TestIndexedSetterThrowingException is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestIndexedSetterThrowingException>::value, "TestIndexedSetterThrowingException is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestIndexedSetterThrowingException has subclasses. If TestIndexedSetterThrowingException has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestIndexedSetterThrowingException you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestIndexedSetterWithIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp      2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp 2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -309,12 +309,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestIndexedSetterWithIdentifier@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore31TestIndexedSetterWithIdentifierE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestIndexedSetterWithIdentifier does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestIndexedSetterWithIdentifier), "TestIndexedSetterWithIdentifier is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestIndexedSetterWithIdentifier>::value, "TestIndexedSetterWithIdentifier is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestIndexedSetterWithIdentifier has subclasses. If TestIndexedSetterWithIdentifier has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestIndexedSetterWithIdentifier you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp   2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -976,13 +976,11 @@
</span><span class="cx"> 
</span><span class="cx"> JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject, Ref<TestInterface>&& impl)
</span><span class="cx"> {
</span><del>-#if COMPILER(CLANG)
</del><span class="cx">     // If you hit this failure the interface definition has the ImplementationLacksVTable
</span><span class="cx">     // attribute. You should remove that attribute. If the class has subclasses
</span><span class="cx">     // that may be passed through this toJS() function you should use the SkipVTableValidation
</span><span class="cx">     // attribute to TestInterface.
</span><del>-    static_assert(!__is_polymorphic(TestInterface), "TestInterface is polymorphic but the IDL claims it is not");
-#endif
</del><ins>+    static_assert(!std::is_polymorphic<TestInterface>::value, "TestInterface is polymorphic but the IDL claims it is not");
</ins><span class="cx">     return createWrapper<TestInterface>(globalObject, WTFMove(impl));
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfaceLeadingUnderscorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp       2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp  2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -192,13 +192,11 @@
</span><span class="cx"> 
</span><span class="cx"> JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject, Ref<TestInterfaceLeadingUnderscore>&& impl)
</span><span class="cx"> {
</span><del>-#if COMPILER(CLANG)
</del><span class="cx">     // If you hit this failure the interface definition has the ImplementationLacksVTable
</span><span class="cx">     // attribute. You should remove that attribute. If the class has subclasses
</span><span class="cx">     // that may be passed through this toJS() function you should use the SkipVTableValidation
</span><span class="cx">     // attribute to TestInterfaceLeadingUnderscore.
</span><del>-    static_assert(!__is_polymorphic(TestInterfaceLeadingUnderscore), "TestInterfaceLeadingUnderscore is polymorphic but the IDL claims it is not");
-#endif
</del><ins>+    static_assert(!std::is_polymorphic<TestInterfaceLeadingUnderscore>::value, "TestInterfaceLeadingUnderscore is polymorphic but the IDL claims it is not");
</ins><span class="cx">     return createWrapper<TestInterfaceLeadingUnderscore>(globalObject, WTFMove(impl));
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestIterablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp 2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp    2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -261,12 +261,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestIterable@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore12TestIterableE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestIterable does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestIterable), "TestIterable is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestIterable>::value, "TestIterable is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestIterable has subclasses. If TestIterable has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestIterable you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp   2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp      2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -217,12 +217,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestMediaQueryListListener@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore26TestMediaQueryListListenerE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestMediaQueryListListener does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestMediaQueryListListener), "TestMediaQueryListListener is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestMediaQueryListListener>::value, "TestMediaQueryListListener is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestMediaQueryListListener has subclasses. If TestMediaQueryListListener has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestMediaQueryListListener you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedAndIndexedSetterNoIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp        2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp   2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -343,12 +343,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedAndIndexedSetterNoIdentifier@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore37TestNamedAndIndexedSetterNoIdentifierE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedAndIndexedSetterNoIdentifier does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedAndIndexedSetterNoIdentifier), "TestNamedAndIndexedSetterNoIdentifier is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedAndIndexedSetterNoIdentifier>::value, "TestNamedAndIndexedSetterNoIdentifier is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedAndIndexedSetterNoIdentifier has subclasses. If TestNamedAndIndexedSetterNoIdentifier has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedAndIndexedSetterNoIdentifier you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedAndIndexedSetterThrowingExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp   2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp      2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -343,12 +343,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedAndIndexedSetterThrowingException@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore42TestNamedAndIndexedSetterThrowingExceptionE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedAndIndexedSetterThrowingException does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedAndIndexedSetterThrowingException), "TestNamedAndIndexedSetterThrowingException is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedAndIndexedSetterThrowingException>::value, "TestNamedAndIndexedSetterThrowingException is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedAndIndexedSetterThrowingException has subclasses. If TestNamedAndIndexedSetterThrowingException has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedAndIndexedSetterThrowingException you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedAndIndexedSetterWithIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp      2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp 2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -397,12 +397,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedAndIndexedSetterWithIdentifier@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore39TestNamedAndIndexedSetterWithIdentifierE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedAndIndexedSetterWithIdentifier does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedAndIndexedSetterWithIdentifier), "TestNamedAndIndexedSetterWithIdentifier is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedAndIndexedSetterWithIdentifier>::value, "TestNamedAndIndexedSetterWithIdentifier is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedAndIndexedSetterWithIdentifier has subclasses. If TestNamedAndIndexedSetterWithIdentifier has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedAndIndexedSetterWithIdentifier you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp 2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp    2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -230,12 +230,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedConstructor@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore20TestNamedConstructorE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedConstructor does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedConstructor), "TestNamedConstructor is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedConstructor>::value, "TestNamedConstructor is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedConstructor has subclasses. If TestNamedConstructor has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedConstructor you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterNoIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp 2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp    2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -256,12 +256,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedDeleterNoIdentifier@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore28TestNamedDeleterNoIdentifierE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedDeleterNoIdentifier does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedDeleterNoIdentifier), "TestNamedDeleterNoIdentifier is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedDeleterNoIdentifier>::value, "TestNamedDeleterNoIdentifier is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedDeleterNoIdentifier has subclasses. If TestNamedDeleterNoIdentifier has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedDeleterNoIdentifier you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterThrowingExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp    2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp       2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -270,12 +270,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedDeleterThrowingException@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore33TestNamedDeleterThrowingExceptionE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedDeleterThrowingException does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedDeleterThrowingException), "TestNamedDeleterThrowingException is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedDeleterThrowingException>::value, "TestNamedDeleterThrowingException is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedDeleterThrowingException has subclasses. If TestNamedDeleterThrowingException has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedDeleterThrowingException you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterWithIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp       2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp  2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -287,12 +287,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedDeleterWithIdentifier@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore30TestNamedDeleterWithIdentifierE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedDeleterWithIdentifier does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedDeleterWithIdentifier), "TestNamedDeleterWithIdentifier is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedDeleterWithIdentifier>::value, "TestNamedDeleterWithIdentifier is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedDeleterWithIdentifier has subclasses. If TestNamedDeleterWithIdentifier has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedDeleterWithIdentifier you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterWithIndexedGettercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp    2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp       2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -274,12 +274,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedDeleterWithIndexedGetter@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore33TestNamedDeleterWithIndexedGetterE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedDeleterWithIndexedGetter does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedDeleterWithIndexedGetter), "TestNamedDeleterWithIndexedGetter is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedDeleterWithIndexedGetter>::value, "TestNamedDeleterWithIndexedGetter is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedDeleterWithIndexedGetter has subclasses. If TestNamedDeleterWithIndexedGetter has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedDeleterWithIndexedGetter you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedGetterCallWithcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp      2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp 2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -235,12 +235,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedGetterCallWith@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore23TestNamedGetterCallWithE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedGetterCallWith does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedGetterCallWith), "TestNamedGetterCallWith is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedGetterCallWith>::value, "TestNamedGetterCallWith is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedGetterCallWith has subclasses. If TestNamedGetterCallWith has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedGetterCallWith you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedGetterNoIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp  2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp     2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -235,12 +235,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedGetterNoIdentifier@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore27TestNamedGetterNoIdentifierE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedGetterNoIdentifier does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedGetterNoIdentifier), "TestNamedGetterNoIdentifier is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedGetterNoIdentifier>::value, "TestNamedGetterNoIdentifier is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedGetterNoIdentifier has subclasses. If TestNamedGetterNoIdentifier has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedGetterNoIdentifier you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedGetterWithIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp        2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp   2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -263,12 +263,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedGetterWithIdentifier@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore29TestNamedGetterWithIdentifierE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedGetterWithIdentifier does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedGetterWithIdentifier), "TestNamedGetterWithIdentifier is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedGetterWithIdentifier>::value, "TestNamedGetterWithIdentifier is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedGetterWithIdentifier has subclasses. If TestNamedGetterWithIdentifier has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedGetterWithIdentifier you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterNoIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp  2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp     2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -297,12 +297,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedSetterNoIdentifier@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore27TestNamedSetterNoIdentifierE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedSetterNoIdentifier does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedSetterNoIdentifier), "TestNamedSetterNoIdentifier is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedSetterNoIdentifier>::value, "TestNamedSetterNoIdentifier is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedSetterNoIdentifier has subclasses. If TestNamedSetterNoIdentifier has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedSetterNoIdentifier you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterThrowingExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp     2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp        2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -297,12 +297,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedSetterThrowingException@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore32TestNamedSetterThrowingExceptionE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedSetterThrowingException does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedSetterThrowingException), "TestNamedSetterThrowingException is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedSetterThrowingException>::value, "TestNamedSetterThrowingException is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedSetterThrowingException has subclasses. If TestNamedSetterThrowingException has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedSetterThrowingException you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp        2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp   2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -328,12 +328,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedSetterWithIdentifier@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore29TestNamedSetterWithIdentifierE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedSetterWithIdentifier does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedSetterWithIdentifier), "TestNamedSetterWithIdentifier is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedSetterWithIdentifier>::value, "TestNamedSetterWithIdentifier is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedSetterWithIdentifier has subclasses. If TestNamedSetterWithIdentifier has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedSetterWithIdentifier you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithOverrideBuiltinscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp  2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp     2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -284,12 +284,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedSetterWithOverrideBuiltins@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore35TestNamedSetterWithOverrideBuiltinsE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedSetterWithOverrideBuiltins does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedSetterWithOverrideBuiltins), "TestNamedSetterWithOverrideBuiltins is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedSetterWithOverrideBuiltins>::value, "TestNamedSetterWithOverrideBuiltins is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedSetterWithOverrideBuiltins has subclasses. If TestNamedSetterWithOverrideBuiltins has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedSetterWithOverrideBuiltins you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithUnforgablePropertiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp      2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp 2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -366,12 +366,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedSetterWithUnforgableProperties@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore39TestNamedSetterWithUnforgablePropertiesE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedSetterWithUnforgableProperties does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedSetterWithUnforgableProperties), "TestNamedSetterWithUnforgableProperties is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedSetterWithUnforgableProperties>::value, "TestNamedSetterWithUnforgableProperties is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedSetterWithUnforgableProperties has subclasses. If TestNamedSetterWithUnforgableProperties has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedSetterWithUnforgableProperties you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp   2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp      2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -353,12 +353,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore58TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins), "TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins>::value, "TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins has subclasses. If TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp     2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -428,12 +428,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNode@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore8TestNodeE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestNode does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestNode), "TestNode is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestNode>::value, "TestNode is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestNode has subclasses. If TestNode has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestNode you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp      2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp 2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -8043,12 +8043,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestObj@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore7TestObjE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestObj does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestObj), "TestObj is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestObj>::value, "TestObj is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestObj has subclasses. If TestObj has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestObj you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp   2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp      2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -280,12 +280,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestOverloadedConstructors@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore26TestOverloadedConstructorsE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestOverloadedConstructors does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestOverloadedConstructors), "TestOverloadedConstructors is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestOverloadedConstructors>::value, "TestOverloadedConstructors is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestOverloadedConstructors has subclasses. If TestOverloadedConstructors has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestOverloadedConstructors you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorsWithSequencecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp       2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp  2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -236,12 +236,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestOverloadedConstructorsWithSequence@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore38TestOverloadedConstructorsWithSequenceE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestOverloadedConstructorsWithSequence does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestOverloadedConstructorsWithSequence), "TestOverloadedConstructorsWithSequence is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestOverloadedConstructorsWithSequence>::value, "TestOverloadedConstructorsWithSequence is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestOverloadedConstructorsWithSequence has subclasses. If TestOverloadedConstructorsWithSequence has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestOverloadedConstructorsWithSequence you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverrideBuiltinscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp 2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp    2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -266,12 +266,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestOverrideBuiltins@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore20TestOverrideBuiltinsE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestOverrideBuiltins does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestOverrideBuiltins), "TestOverrideBuiltins is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestOverrideBuiltins>::value, "TestOverrideBuiltins is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestOverrideBuiltins has subclasses. If TestOverrideBuiltins has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestOverrideBuiltins you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestPromiseRejectionEventcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp    2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp       2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -275,12 +275,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestPromiseRejectionEvent@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore25TestPromiseRejectionEventE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestPromiseRejectionEvent does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestPromiseRejectionEvent), "TestPromiseRejectionEvent is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestPromiseRejectionEvent>::value, "TestPromiseRejectionEvent is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestPromiseRejectionEvent has subclasses. If TestPromiseRejectionEvent has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestPromiseRejectionEvent you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerialization.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerialization.cpp    2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerialization.cpp       2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -522,12 +522,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestSerialization@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore17TestSerializationE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestSerialization does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestSerialization), "TestSerialization is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestSerialization>::value, "TestSerialization is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestSerialization has subclasses. If TestSerialization has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestSerialization you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp   2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp      2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -374,12 +374,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestSerializedScriptValueInterface@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore34TestSerializedScriptValueInterfaceE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestSerializedScriptValueInterface does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestSerializedScriptValueInterface), "TestSerializedScriptValueInterface is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestSerializedScriptValueInterface>::value, "TestSerializedScriptValueInterface is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestSerializedScriptValueInterface has subclasses. If TestSerializedScriptValueInterface has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestSerializedScriptValueInterface you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStringifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifier.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifier.cpp      2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifier.cpp 2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -210,12 +210,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestStringifier@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore15TestStringifierE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestStringifier does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestStringifier), "TestStringifier is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestStringifier>::value, "TestStringifier is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestStringifier has subclasses. If TestStringifier has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestStringifier you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStringifierAnonymousOperationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp    2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp       2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -210,12 +210,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestStringifierAnonymousOperation@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore33TestStringifierAnonymousOperationE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestStringifierAnonymousOperation does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestStringifierAnonymousOperation), "TestStringifierAnonymousOperation is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestStringifierAnonymousOperation>::value, "TestStringifierAnonymousOperation is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestStringifierAnonymousOperation has subclasses. If TestStringifierAnonymousOperation has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestStringifierAnonymousOperation you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStringifierNamedOperationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp        2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp   2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -225,12 +225,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestStringifierNamedOperation@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore29TestStringifierNamedOperationE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestStringifierNamedOperation does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestStringifierNamedOperation), "TestStringifierNamedOperation is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestStringifierNamedOperation>::value, "TestStringifierNamedOperation is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestStringifierNamedOperation has subclasses. If TestStringifierNamedOperation has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestStringifierNamedOperation you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStringifierOperationImplementedAscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp        2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp   2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -225,12 +225,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestStringifierOperationImplementedAs@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore37TestStringifierOperationImplementedAsE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestStringifierOperationImplementedAs does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestStringifierOperationImplementedAs), "TestStringifierOperationImplementedAs is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestStringifierOperationImplementedAs>::value, "TestStringifierOperationImplementedAs is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestStringifierOperationImplementedAs has subclasses. If TestStringifierOperationImplementedAs has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestStringifierOperationImplementedAs you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStringifierOperationNamedToStringcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp        2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp   2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -210,12 +210,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestStringifierOperationNamedToString@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore37TestStringifierOperationNamedToStringE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestStringifierOperationNamedToString does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestStringifierOperationNamedToString), "TestStringifierOperationNamedToString is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestStringifierOperationNamedToString>::value, "TestStringifierOperationNamedToString is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestStringifierOperationNamedToString has subclasses. If TestStringifierOperationNamedToString has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestStringifierOperationNamedToString you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStringifierReadOnlyAttributecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp     2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp        2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -232,12 +232,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestStringifierReadOnlyAttribute@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore32TestStringifierReadOnlyAttributeE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestStringifierReadOnlyAttribute does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestStringifierReadOnlyAttribute), "TestStringifierReadOnlyAttribute is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestStringifierReadOnlyAttribute>::value, "TestStringifierReadOnlyAttribute is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestStringifierReadOnlyAttribute has subclasses. If TestStringifierReadOnlyAttribute has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestStringifierReadOnlyAttribute you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStringifierReadWriteAttributecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp    2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp       2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -249,12 +249,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestStringifierReadWriteAttribute@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore33TestStringifierReadWriteAttributeE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestStringifierReadWriteAttribute does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestStringifierReadWriteAttribute), "TestStringifierReadWriteAttribute is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestStringifierReadWriteAttribute>::value, "TestStringifierReadWriteAttribute is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestStringifierReadWriteAttribute has subclasses. If TestStringifierReadWriteAttribute has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestStringifierReadWriteAttribute you to opt out of binding hardening
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp (218996 => 218997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp 2017-06-30 15:33:16 UTC (rev 218996)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp    2017-06-30 15:45:59 UTC (rev 218997)
</span><span class="lines">@@ -898,12 +898,12 @@
</span><span class="cx">     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestTypedefs@WebCore@@6B@"));
</span><span class="cx"> #else
</span><span class="cx">     void* expectedVTablePointer = &_ZTVN7WebCore12TestTypedefsE[2];
</span><del>-#if COMPILER(CLANG)
</del><ins>+#endif
+
</ins><span class="cx">     // If this fails TestTypedefs does not have a vtable, so you need to add the
</span><span class="cx">     // ImplementationLacksVTable attribute to the interface definition
</span><del>-    static_assert(__is_polymorphic(TestTypedefs), "TestTypedefs is not polymorphic");
-#endif
-#endif
</del><ins>+    static_assert(std::is_polymorphic<TestTypedefs>::value, "TestTypedefs is not polymorphic");
+
</ins><span class="cx">     // If you hit this assertion you either have a use after free bug, or
</span><span class="cx">     // TestTypedefs has subclasses. If TestTypedefs has subclasses that get passed
</span><span class="cx">     // to toJS() we currently require TestTypedefs you to opt out of binding hardening
</span></span></pre>
</div>
</div>

</body>
</html>