[WebIDL] Replace use of __is_polymorphic with standard std::is_polymorphic<>::value
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 30 Jun 2017 15:45:59 +0000 (15:45 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 30 Jun 2017 15:45:59 +0000 (15:45 +0000)
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.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@218997 268f45cc-cd09-0410-ab3c-d52691b4dbfc

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

index a3c11f7..98d25b2 100644 (file)
@@ -1,3 +1,70 @@
+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.
+
 2017-06-30  Youenn Fablet  <youenn@apple.com>
 
        Support PeerConnectionStates::BundlePolicy::MaxBundle when setting rtc configuration
index 3cfb480..708da8a 100644 (file)
@@ -4576,43 +4576,41 @@ END
     void* expectedVTablePointer = reinterpret_cast<void*>(${vtableRefWin});
 #else
     void* expectedVTablePointer = ${vtableRefGnu};
-#if COMPILER(CLANG)
-    // If this fails $implType does not have a vtable, so you need to add the
-    // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic($implType), "${implType} is not polymorphic");
-#endif
 #endif
+
+    // If this fails ${implType} does not have a vtable, so you need to add the
+    // ImplementationLacksVTable attribute to the interface definition
+    static_assert(std::is_polymorphic<${implType}>::value, "${implType} is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
-    // $implType has subclasses. If $implType has subclasses that get passed
+    // ${implType} has subclasses. If ${implType} has subclasses that get passed
     // to toJS() we currently require $interfaceName you to opt out of binding hardening
     // by adding the SkipVTableValidation attribute to the interface IDL definition
     RELEASE_ASSERT(actualVTablePointer == expectedVTablePointer);
 #endif
 END
         push(@implContent, <<END) if $interface->extendedAttributes->{ImplementationLacksVTable};
-#if COMPILER(CLANG)
     // If you hit this failure the interface definition has the ImplementationLacksVTable
     // attribute. You should remove that attribute. If the class has subclasses
     // that may be passed through this toJS() function you should use the SkipVTableValidation
     // attribute to $interfaceName.
-    static_assert(!__is_polymorphic($implType), "${implType} is polymorphic but the IDL claims it is not");
-#endif
+    static_assert(!std::is_polymorphic<${implType}>::value, "${implType} is polymorphic but the IDL claims it is not");
 END
         push(@implContent, <<END) if $interface->extendedAttributes->{ReportExtraMemoryCost};
     globalObject->vm().heap.reportExtraMemoryAllocated(impl->memoryCost());
 END
 
-        push(@implContent, "    return createWrapper<$implType>(globalObject, WTFMove(impl));\n");
+        push(@implContent, "    return createWrapper<${implType}>(globalObject, WTFMove(impl));\n");
         push(@implContent, "}\n\n");
 
-        push(@implContent, "JSC::JSValue toJS(JSC::ExecState* state, JSDOMGlobalObject* globalObject, $implType& impl)\n");
+        push(@implContent, "JSC::JSValue toJS(JSC::ExecState* state, JSDOMGlobalObject* globalObject, ${implType}& impl)\n");
         push(@implContent, "{\n");
         push(@implContent, "    return wrap(state, globalObject, impl);\n");
         push(@implContent, "}\n\n");
     }
 
     if (ShouldGenerateToWrapped($hasParent, $interface) and !$interface->extendedAttributes->{JSCustomToNativeObject}) {
-        push(@implContent, "$implType* ${className}::toWrapped(JSC::VM& vm, JSC::JSValue value)\n");
+        push(@implContent, "${implType}* ${className}::toWrapped(JSC::VM& vm, JSC::JSValue value)\n");
         push(@implContent, "{\n");
         push(@implContent, "    if (auto* wrapper = " . GetCastingHelperForThisObject($interface) . "(vm, value))\n");
         push(@implContent, "        return &wrapper->wrapped();\n");
index a1c88f9..148328d 100644 (file)
@@ -199,12 +199,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7InterfaceName@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore13InterfaceNameE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails InterfaceName does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(InterfaceName), "InterfaceName is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<InterfaceName>::value, "InterfaceName is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // InterfaceName has subclasses. If InterfaceName has subclasses that get passed
     // to toJS() we currently require InterfaceName you to opt out of binding hardening
index a1c0f4a..55a8b63 100644 (file)
@@ -368,12 +368,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7MapLike@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore7MapLikeE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails MapLike does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(MapLike), "MapLike is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<MapLike>::value, "MapLike is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // MapLike has subclasses. If MapLike has subclasses that get passed
     // to toJS() we currently require MapLike you to opt out of binding hardening
index 131f36e..e226ed0 100644 (file)
@@ -317,12 +317,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7ReadOnlyMapLike@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore15ReadOnlyMapLikeE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails ReadOnlyMapLike does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(ReadOnlyMapLike), "ReadOnlyMapLike is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<ReadOnlyMapLike>::value, "ReadOnlyMapLike is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // ReadOnlyMapLike has subclasses. If ReadOnlyMapLike has subclasses that get passed
     // to toJS() we currently require ReadOnlyMapLike you to opt out of binding hardening
index 11eb43d..1aa0b15 100644 (file)
@@ -278,12 +278,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestActiveDOMObject@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore19TestActiveDOMObjectE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestActiveDOMObject does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestActiveDOMObject), "TestActiveDOMObject is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestActiveDOMObject>::value, "TestActiveDOMObject is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestActiveDOMObject has subclasses. If TestActiveDOMObject has subclasses that get passed
     // to toJS() we currently require TestActiveDOMObject you to opt out of binding hardening
index da2df79..a3fc638 100644 (file)
@@ -331,12 +331,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestCEReactions@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore15TestCEReactionsE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestCEReactions does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestCEReactions), "TestCEReactions is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestCEReactions>::value, "TestCEReactions is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestCEReactions has subclasses. If TestCEReactions has subclasses that get passed
     // to toJS() we currently require TestCEReactions you to opt out of binding hardening
index 4eb4608..c648afd 100644 (file)
@@ -251,12 +251,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestCEReactionsStringifier@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore26TestCEReactionsStringifierE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestCEReactionsStringifier does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestCEReactionsStringifier), "TestCEReactionsStringifier is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestCEReactionsStringifier>::value, "TestCEReactionsStringifier is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestCEReactionsStringifier has subclasses. If TestCEReactionsStringifier has subclasses that get passed
     // to toJS() we currently require TestCEReactionsStringifier you to opt out of binding hardening
index ccc9d36..3889a33 100644 (file)
@@ -191,12 +191,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestClassWithJSBuiltinConstructor@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore33TestClassWithJSBuiltinConstructorE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestClassWithJSBuiltinConstructor does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestClassWithJSBuiltinConstructor), "TestClassWithJSBuiltinConstructor is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestClassWithJSBuiltinConstructor>::value, "TestClassWithJSBuiltinConstructor is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestClassWithJSBuiltinConstructor has subclasses. If TestClassWithJSBuiltinConstructor has subclasses that get passed
     // to toJS() we currently require TestClassWithJSBuiltinConstructor you to opt out of binding hardening
index 1e7f09e..83c068d 100644 (file)
@@ -189,12 +189,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestCustomConstructorWithNoInterfaceObject@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore42TestCustomConstructorWithNoInterfaceObjectE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestCustomConstructorWithNoInterfaceObject does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestCustomConstructorWithNoInterfaceObject), "TestCustomConstructorWithNoInterfaceObject is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestCustomConstructorWithNoInterfaceObject>::value, "TestCustomConstructorWithNoInterfaceObject is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestCustomConstructorWithNoInterfaceObject has subclasses. If TestCustomConstructorWithNoInterfaceObject has subclasses that get passed
     // to toJS() we currently require TestCustomConstructorWithNoInterfaceObject you to opt out of binding hardening
index a2d139f..d2ae546 100644 (file)
@@ -294,12 +294,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestEventConstructor@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore20TestEventConstructorE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestEventConstructor does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestEventConstructor), "TestEventConstructor is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestEventConstructor>::value, "TestEventConstructor is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestEventConstructor has subclasses. If TestEventConstructor has subclasses that get passed
     // to toJS() we currently require TestEventConstructor you to opt out of binding hardening
index c996df5..d0de013 100644 (file)
@@ -263,12 +263,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestEventTarget@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore15TestEventTargetE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestEventTarget does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestEventTarget), "TestEventTarget is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestEventTarget>::value, "TestEventTarget is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestEventTarget has subclasses. If TestEventTarget has subclasses that get passed
     // to toJS() we currently require TestEventTarget you to opt out of binding hardening
index 6562eae..921b68d 100644 (file)
@@ -221,12 +221,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestException@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore13TestExceptionE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestException does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestException), "TestException is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestException>::value, "TestException is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestException has subclasses. If TestException has subclasses that get passed
     // to toJS() we currently require TestException you to opt out of binding hardening
index 0eb7b78..52d9ceb 100644 (file)
@@ -215,12 +215,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestGenerateIsReachable@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore23TestGenerateIsReachableE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestGenerateIsReachable does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestGenerateIsReachable), "TestGenerateIsReachable is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestGenerateIsReachable>::value, "TestGenerateIsReachable is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestGenerateIsReachable has subclasses. If TestGenerateIsReachable has subclasses that get passed
     // to toJS() we currently require TestGenerateIsReachable you to opt out of binding hardening
index 7354ac3..6899ccf 100644 (file)
@@ -596,12 +596,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestGlobalObject@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore16TestGlobalObjectE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestGlobalObject does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestGlobalObject), "TestGlobalObject is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestGlobalObject>::value, "TestGlobalObject is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestGlobalObject has subclasses. If TestGlobalObject has subclasses that get passed
     // to toJS() we currently require TestGlobalObject you to opt out of binding hardening
index 275b444..ed8686b 100644 (file)
@@ -277,12 +277,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestIndexedSetterNoIdentifier@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore29TestIndexedSetterNoIdentifierE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestIndexedSetterNoIdentifier does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestIndexedSetterNoIdentifier), "TestIndexedSetterNoIdentifier is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestIndexedSetterNoIdentifier>::value, "TestIndexedSetterNoIdentifier is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestIndexedSetterNoIdentifier has subclasses. If TestIndexedSetterNoIdentifier has subclasses that get passed
     // to toJS() we currently require TestIndexedSetterNoIdentifier you to opt out of binding hardening
index 5ec55fd..65e4fbd 100644 (file)
@@ -277,12 +277,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestIndexedSetterThrowingException@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore34TestIndexedSetterThrowingExceptionE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestIndexedSetterThrowingException does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestIndexedSetterThrowingException), "TestIndexedSetterThrowingException is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestIndexedSetterThrowingException>::value, "TestIndexedSetterThrowingException is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestIndexedSetterThrowingException has subclasses. If TestIndexedSetterThrowingException has subclasses that get passed
     // to toJS() we currently require TestIndexedSetterThrowingException you to opt out of binding hardening
index f781121..421e636 100644 (file)
@@ -309,12 +309,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestIndexedSetterWithIdentifier@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore31TestIndexedSetterWithIdentifierE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestIndexedSetterWithIdentifier does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestIndexedSetterWithIdentifier), "TestIndexedSetterWithIdentifier is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestIndexedSetterWithIdentifier>::value, "TestIndexedSetterWithIdentifier is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestIndexedSetterWithIdentifier has subclasses. If TestIndexedSetterWithIdentifier has subclasses that get passed
     // to toJS() we currently require TestIndexedSetterWithIdentifier you to opt out of binding hardening
index 417944c..9f991cc 100644 (file)
@@ -976,13 +976,11 @@ void JSTestInterfaceOwner::finalize(JSC::Handle<JSC::Unknown> handle, void* cont
 
 JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject, Ref<TestInterface>&& impl)
 {
-#if COMPILER(CLANG)
     // If you hit this failure the interface definition has the ImplementationLacksVTable
     // attribute. You should remove that attribute. If the class has subclasses
     // that may be passed through this toJS() function you should use the SkipVTableValidation
     // attribute to TestInterface.
-    static_assert(!__is_polymorphic(TestInterface), "TestInterface is polymorphic but the IDL claims it is not");
-#endif
+    static_assert(!std::is_polymorphic<TestInterface>::value, "TestInterface is polymorphic but the IDL claims it is not");
     return createWrapper<TestInterface>(globalObject, WTFMove(impl));
 }
 
index 32e42d7..07ec5de 100644 (file)
@@ -192,13 +192,11 @@ void JSTestInterfaceLeadingUnderscoreOwner::finalize(JSC::Handle<JSC::Unknown> h
 
 JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject, Ref<TestInterfaceLeadingUnderscore>&& impl)
 {
-#if COMPILER(CLANG)
     // If you hit this failure the interface definition has the ImplementationLacksVTable
     // attribute. You should remove that attribute. If the class has subclasses
     // that may be passed through this toJS() function you should use the SkipVTableValidation
     // attribute to TestInterfaceLeadingUnderscore.
-    static_assert(!__is_polymorphic(TestInterfaceLeadingUnderscore), "TestInterfaceLeadingUnderscore is polymorphic but the IDL claims it is not");
-#endif
+    static_assert(!std::is_polymorphic<TestInterfaceLeadingUnderscore>::value, "TestInterfaceLeadingUnderscore is polymorphic but the IDL claims it is not");
     return createWrapper<TestInterfaceLeadingUnderscore>(globalObject, WTFMove(impl));
 }
 
index db265e7..bcf1570 100644 (file)
@@ -261,12 +261,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestIterable@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore12TestIterableE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestIterable does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestIterable), "TestIterable is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestIterable>::value, "TestIterable is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestIterable has subclasses. If TestIterable has subclasses that get passed
     // to toJS() we currently require TestIterable you to opt out of binding hardening
index 2776ba9..28c6601 100644 (file)
@@ -217,12 +217,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestMediaQueryListListener@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore26TestMediaQueryListListenerE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestMediaQueryListListener does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestMediaQueryListListener), "TestMediaQueryListListener is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestMediaQueryListListener>::value, "TestMediaQueryListListener is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestMediaQueryListListener has subclasses. If TestMediaQueryListListener has subclasses that get passed
     // to toJS() we currently require TestMediaQueryListListener you to opt out of binding hardening
index cfdf260..86d16a7 100644 (file)
@@ -343,12 +343,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedAndIndexedSetterNoIdentifier@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore37TestNamedAndIndexedSetterNoIdentifierE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedAndIndexedSetterNoIdentifier does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedAndIndexedSetterNoIdentifier), "TestNamedAndIndexedSetterNoIdentifier is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedAndIndexedSetterNoIdentifier>::value, "TestNamedAndIndexedSetterNoIdentifier is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedAndIndexedSetterNoIdentifier has subclasses. If TestNamedAndIndexedSetterNoIdentifier has subclasses that get passed
     // to toJS() we currently require TestNamedAndIndexedSetterNoIdentifier you to opt out of binding hardening
index 758057b..addcfaa 100644 (file)
@@ -343,12 +343,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedAndIndexedSetterThrowingException@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore42TestNamedAndIndexedSetterThrowingExceptionE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedAndIndexedSetterThrowingException does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedAndIndexedSetterThrowingException), "TestNamedAndIndexedSetterThrowingException is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedAndIndexedSetterThrowingException>::value, "TestNamedAndIndexedSetterThrowingException is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedAndIndexedSetterThrowingException has subclasses. If TestNamedAndIndexedSetterThrowingException has subclasses that get passed
     // to toJS() we currently require TestNamedAndIndexedSetterThrowingException you to opt out of binding hardening
index e44e678..c0c7680 100644 (file)
@@ -397,12 +397,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedAndIndexedSetterWithIdentifier@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore39TestNamedAndIndexedSetterWithIdentifierE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedAndIndexedSetterWithIdentifier does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedAndIndexedSetterWithIdentifier), "TestNamedAndIndexedSetterWithIdentifier is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedAndIndexedSetterWithIdentifier>::value, "TestNamedAndIndexedSetterWithIdentifier is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedAndIndexedSetterWithIdentifier has subclasses. If TestNamedAndIndexedSetterWithIdentifier has subclasses that get passed
     // to toJS() we currently require TestNamedAndIndexedSetterWithIdentifier you to opt out of binding hardening
index ce17876..3b75551 100644 (file)
@@ -230,12 +230,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedConstructor@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore20TestNamedConstructorE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedConstructor does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedConstructor), "TestNamedConstructor is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedConstructor>::value, "TestNamedConstructor is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedConstructor has subclasses. If TestNamedConstructor has subclasses that get passed
     // to toJS() we currently require TestNamedConstructor you to opt out of binding hardening
index c6557c2..75820dd 100644 (file)
@@ -256,12 +256,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedDeleterNoIdentifier@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore28TestNamedDeleterNoIdentifierE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedDeleterNoIdentifier does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedDeleterNoIdentifier), "TestNamedDeleterNoIdentifier is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedDeleterNoIdentifier>::value, "TestNamedDeleterNoIdentifier is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedDeleterNoIdentifier has subclasses. If TestNamedDeleterNoIdentifier has subclasses that get passed
     // to toJS() we currently require TestNamedDeleterNoIdentifier you to opt out of binding hardening
index b3f0cf9..f9c33d1 100644 (file)
@@ -270,12 +270,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedDeleterThrowingException@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore33TestNamedDeleterThrowingExceptionE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedDeleterThrowingException does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedDeleterThrowingException), "TestNamedDeleterThrowingException is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedDeleterThrowingException>::value, "TestNamedDeleterThrowingException is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedDeleterThrowingException has subclasses. If TestNamedDeleterThrowingException has subclasses that get passed
     // to toJS() we currently require TestNamedDeleterThrowingException you to opt out of binding hardening
index 18944ef..b4f336b 100644 (file)
@@ -287,12 +287,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedDeleterWithIdentifier@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore30TestNamedDeleterWithIdentifierE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedDeleterWithIdentifier does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedDeleterWithIdentifier), "TestNamedDeleterWithIdentifier is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedDeleterWithIdentifier>::value, "TestNamedDeleterWithIdentifier is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedDeleterWithIdentifier has subclasses. If TestNamedDeleterWithIdentifier has subclasses that get passed
     // to toJS() we currently require TestNamedDeleterWithIdentifier you to opt out of binding hardening
index 5f1f685..997a8f4 100644 (file)
@@ -274,12 +274,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedDeleterWithIndexedGetter@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore33TestNamedDeleterWithIndexedGetterE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedDeleterWithIndexedGetter does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedDeleterWithIndexedGetter), "TestNamedDeleterWithIndexedGetter is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedDeleterWithIndexedGetter>::value, "TestNamedDeleterWithIndexedGetter is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedDeleterWithIndexedGetter has subclasses. If TestNamedDeleterWithIndexedGetter has subclasses that get passed
     // to toJS() we currently require TestNamedDeleterWithIndexedGetter you to opt out of binding hardening
index ad8316f..3e809b6 100644 (file)
@@ -235,12 +235,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedGetterCallWith@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore23TestNamedGetterCallWithE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedGetterCallWith does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedGetterCallWith), "TestNamedGetterCallWith is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedGetterCallWith>::value, "TestNamedGetterCallWith is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedGetterCallWith has subclasses. If TestNamedGetterCallWith has subclasses that get passed
     // to toJS() we currently require TestNamedGetterCallWith you to opt out of binding hardening
index 4c1d7cf..2089a06 100644 (file)
@@ -235,12 +235,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedGetterNoIdentifier@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore27TestNamedGetterNoIdentifierE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedGetterNoIdentifier does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedGetterNoIdentifier), "TestNamedGetterNoIdentifier is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedGetterNoIdentifier>::value, "TestNamedGetterNoIdentifier is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedGetterNoIdentifier has subclasses. If TestNamedGetterNoIdentifier has subclasses that get passed
     // to toJS() we currently require TestNamedGetterNoIdentifier you to opt out of binding hardening
index 7949104..aabfb69 100644 (file)
@@ -263,12 +263,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedGetterWithIdentifier@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore29TestNamedGetterWithIdentifierE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedGetterWithIdentifier does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedGetterWithIdentifier), "TestNamedGetterWithIdentifier is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedGetterWithIdentifier>::value, "TestNamedGetterWithIdentifier is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedGetterWithIdentifier has subclasses. If TestNamedGetterWithIdentifier has subclasses that get passed
     // to toJS() we currently require TestNamedGetterWithIdentifier you to opt out of binding hardening
index 583603f..54b81b8 100644 (file)
@@ -297,12 +297,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedSetterNoIdentifier@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore27TestNamedSetterNoIdentifierE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedSetterNoIdentifier does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedSetterNoIdentifier), "TestNamedSetterNoIdentifier is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedSetterNoIdentifier>::value, "TestNamedSetterNoIdentifier is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedSetterNoIdentifier has subclasses. If TestNamedSetterNoIdentifier has subclasses that get passed
     // to toJS() we currently require TestNamedSetterNoIdentifier you to opt out of binding hardening
index 9c0444e..45dfec7 100644 (file)
@@ -297,12 +297,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedSetterThrowingException@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore32TestNamedSetterThrowingExceptionE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedSetterThrowingException does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedSetterThrowingException), "TestNamedSetterThrowingException is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedSetterThrowingException>::value, "TestNamedSetterThrowingException is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedSetterThrowingException has subclasses. If TestNamedSetterThrowingException has subclasses that get passed
     // to toJS() we currently require TestNamedSetterThrowingException you to opt out of binding hardening
index 7794e23..2743e87 100644 (file)
@@ -328,12 +328,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedSetterWithIdentifier@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore29TestNamedSetterWithIdentifierE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedSetterWithIdentifier does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedSetterWithIdentifier), "TestNamedSetterWithIdentifier is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedSetterWithIdentifier>::value, "TestNamedSetterWithIdentifier is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedSetterWithIdentifier has subclasses. If TestNamedSetterWithIdentifier has subclasses that get passed
     // to toJS() we currently require TestNamedSetterWithIdentifier you to opt out of binding hardening
index 5a25c3a..2769b0a 100644 (file)
@@ -284,12 +284,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedSetterWithOverrideBuiltins@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore35TestNamedSetterWithOverrideBuiltinsE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedSetterWithOverrideBuiltins does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedSetterWithOverrideBuiltins), "TestNamedSetterWithOverrideBuiltins is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedSetterWithOverrideBuiltins>::value, "TestNamedSetterWithOverrideBuiltins is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedSetterWithOverrideBuiltins has subclasses. If TestNamedSetterWithOverrideBuiltins has subclasses that get passed
     // to toJS() we currently require TestNamedSetterWithOverrideBuiltins you to opt out of binding hardening
index 8f0aaae..2ebec64 100644 (file)
@@ -366,12 +366,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedSetterWithUnforgableProperties@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore39TestNamedSetterWithUnforgablePropertiesE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedSetterWithUnforgableProperties does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedSetterWithUnforgableProperties), "TestNamedSetterWithUnforgableProperties is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedSetterWithUnforgableProperties>::value, "TestNamedSetterWithUnforgableProperties is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedSetterWithUnforgableProperties has subclasses. If TestNamedSetterWithUnforgableProperties has subclasses that get passed
     // to toJS() we currently require TestNamedSetterWithUnforgableProperties you to opt out of binding hardening
index b9331e7..d25616e 100644 (file)
@@ -353,12 +353,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore58TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins), "TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins>::value, "TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins has subclasses. If TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins has subclasses that get passed
     // to toJS() we currently require TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins you to opt out of binding hardening
index 947eebf..fc6a719 100644 (file)
@@ -428,12 +428,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestNode@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore8TestNodeE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestNode does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestNode), "TestNode is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestNode>::value, "TestNode is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestNode has subclasses. If TestNode has subclasses that get passed
     // to toJS() we currently require TestNode you to opt out of binding hardening
index 98d125a..85ad7e3 100644 (file)
@@ -8043,12 +8043,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestObj@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore7TestObjE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestObj does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestObj), "TestObj is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestObj>::value, "TestObj is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestObj has subclasses. If TestObj has subclasses that get passed
     // to toJS() we currently require TestObj you to opt out of binding hardening
index 35be58b..56a5b21 100644 (file)
@@ -280,12 +280,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestOverloadedConstructors@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore26TestOverloadedConstructorsE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestOverloadedConstructors does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestOverloadedConstructors), "TestOverloadedConstructors is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestOverloadedConstructors>::value, "TestOverloadedConstructors is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestOverloadedConstructors has subclasses. If TestOverloadedConstructors has subclasses that get passed
     // to toJS() we currently require TestOverloadedConstructors you to opt out of binding hardening
index 9837f05..3261cf2 100644 (file)
@@ -236,12 +236,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestOverloadedConstructorsWithSequence@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore38TestOverloadedConstructorsWithSequenceE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestOverloadedConstructorsWithSequence does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestOverloadedConstructorsWithSequence), "TestOverloadedConstructorsWithSequence is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestOverloadedConstructorsWithSequence>::value, "TestOverloadedConstructorsWithSequence is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestOverloadedConstructorsWithSequence has subclasses. If TestOverloadedConstructorsWithSequence has subclasses that get passed
     // to toJS() we currently require TestOverloadedConstructorsWithSequence you to opt out of binding hardening
index 85e4290..8b60dc9 100644 (file)
@@ -266,12 +266,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestOverrideBuiltins@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore20TestOverrideBuiltinsE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestOverrideBuiltins does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestOverrideBuiltins), "TestOverrideBuiltins is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestOverrideBuiltins>::value, "TestOverrideBuiltins is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestOverrideBuiltins has subclasses. If TestOverrideBuiltins has subclasses that get passed
     // to toJS() we currently require TestOverrideBuiltins you to opt out of binding hardening
index 32ce6d4..936229e 100644 (file)
@@ -275,12 +275,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestPromiseRejectionEvent@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore25TestPromiseRejectionEventE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestPromiseRejectionEvent does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestPromiseRejectionEvent), "TestPromiseRejectionEvent is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestPromiseRejectionEvent>::value, "TestPromiseRejectionEvent is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestPromiseRejectionEvent has subclasses. If TestPromiseRejectionEvent has subclasses that get passed
     // to toJS() we currently require TestPromiseRejectionEvent you to opt out of binding hardening
index b429f4e..39df97d 100644 (file)
@@ -522,12 +522,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestSerialization@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore17TestSerializationE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestSerialization does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestSerialization), "TestSerialization is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestSerialization>::value, "TestSerialization is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestSerialization has subclasses. If TestSerialization has subclasses that get passed
     // to toJS() we currently require TestSerialization you to opt out of binding hardening
index b78a6fb..a565d02 100644 (file)
@@ -374,12 +374,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestSerializedScriptValueInterface@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore34TestSerializedScriptValueInterfaceE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestSerializedScriptValueInterface does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestSerializedScriptValueInterface), "TestSerializedScriptValueInterface is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestSerializedScriptValueInterface>::value, "TestSerializedScriptValueInterface is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestSerializedScriptValueInterface has subclasses. If TestSerializedScriptValueInterface has subclasses that get passed
     // to toJS() we currently require TestSerializedScriptValueInterface you to opt out of binding hardening
index 8bb712d..6305fff 100644 (file)
@@ -210,12 +210,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestStringifier@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore15TestStringifierE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestStringifier does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestStringifier), "TestStringifier is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestStringifier>::value, "TestStringifier is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestStringifier has subclasses. If TestStringifier has subclasses that get passed
     // to toJS() we currently require TestStringifier you to opt out of binding hardening
index 2df079e..67719bc 100644 (file)
@@ -210,12 +210,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestStringifierAnonymousOperation@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore33TestStringifierAnonymousOperationE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestStringifierAnonymousOperation does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestStringifierAnonymousOperation), "TestStringifierAnonymousOperation is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestStringifierAnonymousOperation>::value, "TestStringifierAnonymousOperation is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestStringifierAnonymousOperation has subclasses. If TestStringifierAnonymousOperation has subclasses that get passed
     // to toJS() we currently require TestStringifierAnonymousOperation you to opt out of binding hardening
index eb09cf7..3491040 100644 (file)
@@ -225,12 +225,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestStringifierNamedOperation@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore29TestStringifierNamedOperationE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestStringifierNamedOperation does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestStringifierNamedOperation), "TestStringifierNamedOperation is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestStringifierNamedOperation>::value, "TestStringifierNamedOperation is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestStringifierNamedOperation has subclasses. If TestStringifierNamedOperation has subclasses that get passed
     // to toJS() we currently require TestStringifierNamedOperation you to opt out of binding hardening
index afb99a8..66f2c2b 100644 (file)
@@ -225,12 +225,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestStringifierOperationImplementedAs@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore37TestStringifierOperationImplementedAsE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestStringifierOperationImplementedAs does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestStringifierOperationImplementedAs), "TestStringifierOperationImplementedAs is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestStringifierOperationImplementedAs>::value, "TestStringifierOperationImplementedAs is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestStringifierOperationImplementedAs has subclasses. If TestStringifierOperationImplementedAs has subclasses that get passed
     // to toJS() we currently require TestStringifierOperationImplementedAs you to opt out of binding hardening
index ceba9ea..9e64416 100644 (file)
@@ -210,12 +210,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestStringifierOperationNamedToString@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore37TestStringifierOperationNamedToStringE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestStringifierOperationNamedToString does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestStringifierOperationNamedToString), "TestStringifierOperationNamedToString is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestStringifierOperationNamedToString>::value, "TestStringifierOperationNamedToString is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestStringifierOperationNamedToString has subclasses. If TestStringifierOperationNamedToString has subclasses that get passed
     // to toJS() we currently require TestStringifierOperationNamedToString you to opt out of binding hardening
index 2213dc0..52cc732 100644 (file)
@@ -232,12 +232,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestStringifierReadOnlyAttribute@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore32TestStringifierReadOnlyAttributeE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestStringifierReadOnlyAttribute does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestStringifierReadOnlyAttribute), "TestStringifierReadOnlyAttribute is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestStringifierReadOnlyAttribute>::value, "TestStringifierReadOnlyAttribute is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestStringifierReadOnlyAttribute has subclasses. If TestStringifierReadOnlyAttribute has subclasses that get passed
     // to toJS() we currently require TestStringifierReadOnlyAttribute you to opt out of binding hardening
index e42f9c5..7ec17b3 100644 (file)
@@ -249,12 +249,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestStringifierReadWriteAttribute@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore33TestStringifierReadWriteAttributeE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestStringifierReadWriteAttribute does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestStringifierReadWriteAttribute), "TestStringifierReadWriteAttribute is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestStringifierReadWriteAttribute>::value, "TestStringifierReadWriteAttribute is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestStringifierReadWriteAttribute has subclasses. If TestStringifierReadWriteAttribute has subclasses that get passed
     // to toJS() we currently require TestStringifierReadWriteAttribute you to opt out of binding hardening
index 03c23ba..331266d 100644 (file)
@@ -898,12 +898,12 @@ JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject,
     void* expectedVTablePointer = reinterpret_cast<void*>(__identifier("??_7TestTypedefs@WebCore@@6B@"));
 #else
     void* expectedVTablePointer = &_ZTVN7WebCore12TestTypedefsE[2];
-#if COMPILER(CLANG)
+#endif
+
     // If this fails TestTypedefs does not have a vtable, so you need to add the
     // ImplementationLacksVTable attribute to the interface definition
-    static_assert(__is_polymorphic(TestTypedefs), "TestTypedefs is not polymorphic");
-#endif
-#endif
+    static_assert(std::is_polymorphic<TestTypedefs>::value, "TestTypedefs is not polymorphic");
+
     // If you hit this assertion you either have a use after free bug, or
     // TestTypedefs has subclasses. If TestTypedefs has subclasses that get passed
     // to toJS() we currently require TestTypedefs you to opt out of binding hardening