Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d8e02e3e3f41cb1a73f1f6b7c841d3286282a030 https://github.com/WebKit/WebKit/commit/d8e02e3e3f41cb1a73f1f6b7c841d3286282a030 Author: Chris Dumez <cdu...@apple.com> Date: 2023-06-22 (Thu, 22 Jun 2023)
Changed paths: M Source/WebCore/bindings/scripts/CodeGeneratorJS.pm M Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp M Source/WebCore/bindings/scripts/test/JS/JSTestPluginInterface.cpp M Source/WebCore/dom/CustomElementRegistry.cpp M Source/WebCore/dom/Document.h M Source/WebCore/page/Quirks.cpp M Source/WebCore/page/Quirks.h Log Message: ----------- REGRESSION (264594@main): Broke custom element built-in polyfill by making form properties non deletable https://bugs.webkit.org/show_bug.cgi?id=258282 rdar://111008826 Reviewed by Ryosuke Niwa. 264594@main changed the behavior of some of our bindings objects setters and deleters (in particular, the ones with an indexed getter but not indexed setter, such as HTMLFormElement). The new behavior from 264594@main is spec-compliant and I have verified again that it matches both Firefox & Gecko. However, the ungap/@custom-elements polyfill relied on the old WebKit behavior and is now broken. The polyfill was very recently fixed in v1.3.0 but this patch adds a quirk to maintain old behavior when an older version of this polyfill is detected, to give sites time to update their polyfill. The quirk detection relies on a custom element named "extends-li" getting created (in v1.3.0, the custom element is named differently). * Source/WebCore/bindings/scripts/CodeGeneratorJS.pm: (GeneratePut): (GeneratePutByIndex): (GenerateDefineOwnProperty): (GenerateDeleteProperty): (GenerateDeletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp: (WebCore::JSTestEventTarget::put): (WebCore::JSTestEventTarget::putByIndex): (WebCore::JSTestEventTarget::deleteProperty): (WebCore::JSTestEventTarget::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp: (WebCore::JSTestIndexedSetterNoIdentifier::deleteProperty): (WebCore::JSTestIndexedSetterNoIdentifier::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp: (WebCore::JSTestIndexedSetterThrowingException::deleteProperty): (WebCore::JSTestIndexedSetterThrowingException::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp: (WebCore::JSTestIndexedSetterWithIdentifier::deleteProperty): (WebCore::JSTestIndexedSetterWithIdentifier::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp: (WebCore::JSTestLegacyOverrideBuiltIns::put): (WebCore::JSTestLegacyOverrideBuiltIns::putByIndex): (WebCore::JSTestLegacyOverrideBuiltIns::deleteProperty): (WebCore::JSTestLegacyOverrideBuiltIns::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp: (WebCore::JSTestNamedAndIndexedSetterNoIdentifier::deleteProperty): (WebCore::JSTestNamedAndIndexedSetterNoIdentifier::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp: (WebCore::JSTestNamedAndIndexedSetterThrowingException::deleteProperty): (WebCore::JSTestNamedAndIndexedSetterThrowingException::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp: (WebCore::JSTestNamedAndIndexedSetterWithIdentifier::deleteProperty): (WebCore::JSTestNamedAndIndexedSetterWithIdentifier::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp: (WebCore::JSTestNamedDeleterNoIdentifier::put): (WebCore::JSTestNamedDeleterNoIdentifier::putByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp: (WebCore::JSTestNamedDeleterThrowingException::put): (WebCore::JSTestNamedDeleterThrowingException::putByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp: (WebCore::JSTestNamedDeleterWithIdentifier::put): (WebCore::JSTestNamedDeleterWithIdentifier::putByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp: (WebCore::JSTestNamedDeleterWithIndexedGetter::put): (WebCore::JSTestNamedDeleterWithIndexedGetter::putByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp: (WebCore::JSTestNamedGetterCallWith::put): (WebCore::JSTestNamedGetterCallWith::putByIndex): (WebCore::JSTestNamedGetterCallWith::deleteProperty): (WebCore::JSTestNamedGetterCallWith::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp: (WebCore::JSTestNamedGetterNoIdentifier::put): (WebCore::JSTestNamedGetterNoIdentifier::putByIndex): (WebCore::JSTestNamedGetterNoIdentifier::deleteProperty): (WebCore::JSTestNamedGetterNoIdentifier::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp: (WebCore::JSTestNamedGetterWithIdentifier::put): (WebCore::JSTestNamedGetterWithIdentifier::putByIndex): (WebCore::JSTestNamedGetterWithIdentifier::deleteProperty): (WebCore::JSTestNamedGetterWithIdentifier::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp: (WebCore::JSTestNamedSetterNoIdentifier::deleteProperty): (WebCore::JSTestNamedSetterNoIdentifier::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp: (WebCore::JSTestNamedSetterThrowingException::deleteProperty): (WebCore::JSTestNamedSetterThrowingException::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp: (WebCore::JSTestNamedSetterWithIdentifier::deleteProperty): (WebCore::JSTestNamedSetterWithIdentifier::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp: (WebCore::JSTestNamedSetterWithIndexedGetter::deleteProperty): (WebCore::JSTestNamedSetterWithIndexedGetter::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp: (WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::deleteProperty): (WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp: (WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::deleteProperty): (WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp: (WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::deleteProperty): (WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp: (WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::deleteProperty): (WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::JSTestObj::put): (WebCore::JSTestObj::putByIndex): (WebCore::JSTestObj::deleteProperty): (WebCore::JSTestObj::deletePropertyByIndex): * Source/WebCore/bindings/scripts/test/JS/JSTestPluginInterface.cpp: (WebCore::JSTestPluginInterface::put): (WebCore::JSTestPluginInterface::putByIndex): * Source/WebCore/dom/CustomElementRegistry.cpp: (WebCore::CustomElementRegistry::addElementDefinition): * Source/WebCore/dom/Document.h: (WebCore::Document::quirks): * Source/WebCore/page/Quirks.cpp: (WebCore::Quirks::needsConfigurableIndexedPropertiesQuirk const): * Source/WebCore/page/Quirks.h: (WebCore::Quirks::setNeedsConfigurableIndexedPropertiesQuirk): Canonical link: https://commits.webkit.org/265403@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes