Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (279557 => 279558)
--- trunk/Source/_javascript_Core/ChangeLog 2021-07-04 18:47:07 UTC (rev 279557)
+++ trunk/Source/_javascript_Core/ChangeLog 2021-07-04 19:18:38 UTC (rev 279558)
@@ -1,3 +1,13 @@
+2021-07-04 Alexey Shvayka <[email protected]>
+
+ [WebIDL] Simplify generation of runtime conditionally read-write attributes
+ https://bugs.webkit.org/show_bug.cgi?id=227672
+
+ Reviewed by Sam Weinig.
+
+ * runtime/Lookup.h:
+ (JSC::HashTableValue::makeReadOnlyCopy const):
+
2021-07-03 Alexey Shvayka <[email protected]>
[WebIDL] Rework runtime enabled properties leveraging PropertyCallback
Modified: trunk/Source/_javascript_Core/runtime/Lookup.h (279557 => 279558)
--- trunk/Source/_javascript_Core/runtime/Lookup.h 2021-07-04 18:47:07 UTC (rev 279557)
+++ trunk/Source/_javascript_Core/runtime/Lookup.h 2021-07-04 19:18:38 UTC (rev 279558)
@@ -111,6 +111,15 @@
auto isEnabledCallback = bitwise_cast<IsLazyPropertyEnabledCallback>(m_values.value2);
return !isEnabledCallback || isEnabledCallback(globalObject);
}
+
+ HashTableValue makeReadOnlyCopy() const
+ {
+ ASSERT(m_attributes & PropertyAttribute::AccessorOrCustomAccessorOrValue);
+ HashTableValue copy = *this;
+ copy.m_attributes |= PropertyAttribute::ReadOnly;
+ copy.m_values.value2 = 0;
+ return copy;
+ }
};
struct HashTable {
Modified: trunk/Source/WebCore/ChangeLog (279557 => 279558)
--- trunk/Source/WebCore/ChangeLog 2021-07-04 18:47:07 UTC (rev 279557)
+++ trunk/Source/WebCore/ChangeLog 2021-07-04 19:18:38 UTC (rev 279558)
@@ -1,5 +1,24 @@
2021-07-04 Alexey Shvayka <[email protected]>
+ [WebIDL] Simplify generation of runtime conditionally read-write attributes
+ https://bugs.webkit.org/show_bug.cgi?id=227672
+
+ Reviewed by Sam Weinig.
+
+ This patch introduces HashTableValue::makeReadOnlyCopy() to avoid manually
+ generating & putting a JSValue for an attribute, which is non-trivial to
+ do right while supporting all kinds of accelerated / built-in attributes.
+
+ Also, removes incorrect `classForThis` argument from `entries` reification.
+
+ No new tests, no behavior change.
+
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GenerateImplementation):
+ * bindings/scripts/test/JS/*: Updated.
+
+2021-07-04 Alexey Shvayka <[email protected]>
+
[WebIDL] Generate constructor's hash table in GenerateConstructorHelperMethods
https://bugs.webkit.org/show_bug.cgi?id=227668
Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (279557 => 279558)
--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm 2021-07-04 18:47:07 UTC (rev 279557)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm 2021-07-04 19:18:38 UTC (rev 279558)
@@ -4450,10 +4450,6 @@
my $runtimeEnableConditionalString = GenerateRuntimeEnableConditionalString($interface, $attribute, "globalObject()");
my $attributeName = $attribute->name;
- # FIXME: Simplify this by calling reifyStaticProperty() on a HashTableValue that has been transformed to read-only.
- my $getter = GetAttributeGetterName($interface, $className, $attribute);
- my $setter = "nullptr";
- my $jscAttributes = StringifyJSCAttributes(GetJSCAttributesForAttribute($interface, $attribute)) . " | JSC::PropertyAttribute::ReadOnly";
assert("Being both runtime enabled and runtime conditionally read-write is not yet supported (used on the '${attributeName}' attribute of '${visibleInterfaceName}').") if NeedsRuntimeCheck($interface, $attribute);
my $conditionalString = $codeGenerator->GenerateConditionalString($attribute);
@@ -4460,13 +4456,9 @@
push(@implContent, "#if ${conditionalString}\n") if $conditionalString;
push(@implContent, " // Shadow read-write variant from the static hash table.\n");
push(@implContent, " if (!${runtimeEnableConditionalString})\n");
- if (IsAcceleratedDOMAttribute($interface, $attribute)) {
- my $classForThis = "${className}::info()";
- push(@implContent, " putDirectCustomAccessor(vm, static_cast<JSVMClientData*>(vm.clientData)->builtinNames()." . $attributeName . "PublicName(), JSC::DOMAttributeGetterSetter::create(vm, $getter, $setter, JSC::DOMAttributeAnnotation { $classForThis, nullptr }), attributesForStructure($jscAttributes));\n");
- } else {
- assert("CustomGetterSetter is not allowed for DOMAttribute. DOMAttributeGetterSetter must be used.") if IsAcceleratedDOMAttribute($interface, $attribute);
- push(@implContent, " putDirectCustomAccessor(vm, static_cast<JSVMClientData*>(vm.clientData)->builtinNames()." . $attributeName . "PublicName(), CustomGetterSetter::create(vm, $getter, $setter), attributesForStructure($jscAttributes));\n");
- }
+
+ my $propertyName = "static_cast<JSVMClientData*>(vm.clientData)->builtinNames().${attributeName}PublicName()";
+ push(@implContent, " reifyStaticProperty(vm, ${className}::info(), ${propertyName}, info()->staticPropHashTable->entry(${propertyName})->makeReadOnlyCopy(), *this);\n");
push(@implContent, "#endif\n") if $conditionalString;
}
}
@@ -4475,7 +4467,7 @@
AddToImplIncludes("<_javascript_Core/BuiltinNames.h>");
if (IsKeyValueIterableInterface($interface) or $interface->mapLike or $interface->setLike) {
push(@implContent, " auto& entries = vm.propertyNames->builtinNames().entriesPublicName();\n");
- push(@implContent, " reifyStaticProperty(vm, info(), entries, *info()->staticPropHashTable->entry(entries), *this);\n");
+ push(@implContent, " reifyStaticProperty(vm, nullptr, entries, *info()->staticPropHashTable->entry(entries), *this);\n");
push(@implContent, " putDirectWithoutTransition(vm, vm.propertyNames->iteratorSymbol, getDirect(vm, entries), static_cast<unsigned>(JSC::PropertyAttribute::DontEnum));\n");
} else {
push(@implContent, " putDirectWithoutTransition(vm, vm.propertyNames->iteratorSymbol, globalObject()->arrayProtoValuesFunction(), static_cast<unsigned>(JSC::PropertyAttribute::DontEnum));\n");
Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp (279557 => 279558)
--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp 2021-07-04 18:47:07 UTC (rev 279557)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp 2021-07-04 19:18:38 UTC (rev 279558)
@@ -192,28 +192,28 @@
reifyStaticProperties(vm, JSTestConditionallyReadWrite::info(), JSTestConditionallyReadWritePrototypeTableValues, *this);
// Shadow read-write variant from the static hash table.
if (!RuntimeEnabledFeatures::sharedFeatures().testFeatureEnabled())
- putDirectCustomAccessor(vm, static_cast<JSVMClientData*>(vm.clientData)->builtinNames().runtimeConditionallyReadWriteAttributePublicName(), JSC::DOMAttributeGetterSetter::create(vm, jsTestConditionallyReadWrite_runtimeConditionallyReadWriteAttribute, nullptr, JSC::DOMAttributeAnnotation { JSTestConditionallyReadWrite::info(), nullptr }), attributesForStructure(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | JSC::PropertyAttribute::ReadOnly));
+ reifyStaticProperty(vm, JSTestConditionallyReadWrite::info(), static_cast<JSVMClientData*>(vm.clientData)->builtinNames().runtimeConditionallyReadWriteAttributePublicName(), info()->staticPropHashTable->entry(static_cast<JSVMClientData*>(vm.clientData)->builtinNames().runtimeConditionallyReadWriteAttributePublicName())->makeReadOnlyCopy(), *this);
// Shadow read-write variant from the static hash table.
if (!RuntimeEnabledFeatures::sharedFeatures().testFeatureEnabled())
- putDirectCustomAccessor(vm, static_cast<JSVMClientData*>(vm.clientData)->builtinNames().runtimeConditionallyReadWriteAttributeUnforgeablePublicName(), JSC::DOMAttributeGetterSetter::create(vm, jsTestConditionallyReadWrite_runtimeConditionallyReadWriteAttributeUnforgeable, nullptr, JSC::DOMAttributeAnnotation { JSTestConditionallyReadWrite::info(), nullptr }), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | JSC::PropertyAttribute::ReadOnly));
+ reifyStaticProperty(vm, JSTestConditionallyReadWrite::info(), static_cast<JSVMClientData*>(vm.clientData)->builtinNames().runtimeConditionallyReadWriteAttributeUnforgeablePublicName(), info()->staticPropHashTable->entry(static_cast<JSVMClientData*>(vm.clientData)->builtinNames().runtimeConditionallyReadWriteAttributeUnforgeablePublicName())->makeReadOnlyCopy(), *this);
// Shadow read-write variant from the static hash table.
if (!RuntimeEnabledFeatures::sharedFeatures().testFeatureEnabled())
- putDirectCustomAccessor(vm, static_cast<JSVMClientData*>(vm.clientData)->builtinNames().runtimeConditionallyReadWriteAttributeUnforgeablePrivatePublicName(), CustomGetterSetter::create(vm, jsTestConditionallyReadWrite_runtimeConditionallyReadWriteAttributeUnforgeablePrivate, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::ReadOnly));
+ reifyStaticProperty(vm, JSTestConditionallyReadWrite::info(), static_cast<JSVMClientData*>(vm.clientData)->builtinNames().runtimeConditionallyReadWriteAttributeUnforgeablePrivatePublicName(), info()->staticPropHashTable->entry(static_cast<JSVMClientData*>(vm.clientData)->builtinNames().runtimeConditionallyReadWriteAttributeUnforgeablePrivatePublicName())->makeReadOnlyCopy(), *this);
// Shadow read-write variant from the static hash table.
if (!RuntimeEnabledFeatures::sharedFeatures().testFeatureEnabled())
- putDirectCustomAccessor(vm, static_cast<JSVMClientData*>(vm.clientData)->builtinNames().runtimeConditionallyReadWriteAttributePromisePublicName(), CustomGetterSetter::create(vm, jsTestConditionallyReadWrite_runtimeConditionallyReadWriteAttributePromise, nullptr), attributesForStructure(static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor) | JSC::PropertyAttribute::ReadOnly));
+ reifyStaticProperty(vm, JSTestConditionallyReadWrite::info(), static_cast<JSVMClientData*>(vm.clientData)->builtinNames().runtimeConditionallyReadWriteAttributePromisePublicName(), info()->staticPropHashTable->entry(static_cast<JSVMClientData*>(vm.clientData)->builtinNames().runtimeConditionallyReadWriteAttributePromisePublicName())->makeReadOnlyCopy(), *this);
// Shadow read-write variant from the static hash table.
if (!downcast<Document>(jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext())->settingsValues().testFeatureEnabled)
- putDirectCustomAccessor(vm, static_cast<JSVMClientData*>(vm.clientData)->builtinNames().settingsConditionallyReadWriteAttributePublicName(), JSC::DOMAttributeGetterSetter::create(vm, jsTestConditionallyReadWrite_settingsConditionallyReadWriteAttribute, nullptr, JSC::DOMAttributeAnnotation { JSTestConditionallyReadWrite::info(), nullptr }), attributesForStructure(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | JSC::PropertyAttribute::ReadOnly));
+ reifyStaticProperty(vm, JSTestConditionallyReadWrite::info(), static_cast<JSVMClientData*>(vm.clientData)->builtinNames().settingsConditionallyReadWriteAttributePublicName(), info()->staticPropHashTable->entry(static_cast<JSVMClientData*>(vm.clientData)->builtinNames().settingsConditionallyReadWriteAttributePublicName())->makeReadOnlyCopy(), *this);
// Shadow read-write variant from the static hash table.
if (!downcast<Document>(jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext())->settingsValues().testFeatureEnabled)
- putDirectCustomAccessor(vm, static_cast<JSVMClientData*>(vm.clientData)->builtinNames().settingsConditionallyReadWriteAttributeUnforgeablePublicName(), JSC::DOMAttributeGetterSetter::create(vm, jsTestConditionallyReadWrite_settingsConditionallyReadWriteAttributeUnforgeable, nullptr, JSC::DOMAttributeAnnotation { JSTestConditionallyReadWrite::info(), nullptr }), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | JSC::PropertyAttribute::ReadOnly));
+ reifyStaticProperty(vm, JSTestConditionallyReadWrite::info(), static_cast<JSVMClientData*>(vm.clientData)->builtinNames().settingsConditionallyReadWriteAttributeUnforgeablePublicName(), info()->staticPropHashTable->entry(static_cast<JSVMClientData*>(vm.clientData)->builtinNames().settingsConditionallyReadWriteAttributeUnforgeablePublicName())->makeReadOnlyCopy(), *this);
// Shadow read-write variant from the static hash table.
if (!downcast<Document>(jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext())->settingsValues().testFeatureEnabled)
- putDirectCustomAccessor(vm, static_cast<JSVMClientData*>(vm.clientData)->builtinNames().settingsConditionallyReadWriteAttributeUnforgeablePrivatePublicName(), CustomGetterSetter::create(vm, jsTestConditionallyReadWrite_settingsConditionallyReadWriteAttributeUnforgeablePrivate, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::ReadOnly));
+ reifyStaticProperty(vm, JSTestConditionallyReadWrite::info(), static_cast<JSVMClientData*>(vm.clientData)->builtinNames().settingsConditionallyReadWriteAttributeUnforgeablePrivatePublicName(), info()->staticPropHashTable->entry(static_cast<JSVMClientData*>(vm.clientData)->builtinNames().settingsConditionallyReadWriteAttributeUnforgeablePrivatePublicName())->makeReadOnlyCopy(), *this);
// Shadow read-write variant from the static hash table.
if (!downcast<Document>(jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext())->settingsValues().testFeatureEnabled)
- putDirectCustomAccessor(vm, static_cast<JSVMClientData*>(vm.clientData)->builtinNames().settingsConditionallyReadWriteAttributePromisePublicName(), CustomGetterSetter::create(vm, jsTestConditionallyReadWrite_settingsConditionallyReadWriteAttributePromise, nullptr), attributesForStructure(static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor) | JSC::PropertyAttribute::ReadOnly));
+ reifyStaticProperty(vm, JSTestConditionallyReadWrite::info(), static_cast<JSVMClientData*>(vm.clientData)->builtinNames().settingsConditionallyReadWriteAttributePromisePublicName(), info()->staticPropHashTable->entry(static_cast<JSVMClientData*>(vm.clientData)->builtinNames().settingsConditionallyReadWriteAttributePromisePublicName())->makeReadOnlyCopy(), *this);
JSC_TO_STRING_TAG_WITHOUT_TRANSITION();
}
Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (279557 => 279558)
--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp 2021-07-04 18:47:07 UTC (rev 279557)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp 2021-07-04 19:18:38 UTC (rev 279558)
@@ -572,7 +572,7 @@
Base::finishCreation(vm);
reifyStaticProperties(vm, JSTestInterface::info(), JSTestInterfacePrototypeTableValues, *this);
auto& entries = vm.propertyNames->builtinNames().entriesPublicName();
- reifyStaticProperty(vm, info(), entries, *info()->staticPropHashTable->entry(entries), *this);
+ reifyStaticProperty(vm, nullptr, entries, *info()->staticPropHashTable->entry(entries), *this);
putDirectWithoutTransition(vm, vm.propertyNames->iteratorSymbol, getDirect(vm, entries), static_cast<unsigned>(JSC::PropertyAttribute::DontEnum));
JSC_TO_STRING_TAG_WITHOUT_TRANSITION();
}
Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp (279557 => 279558)
--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp 2021-07-04 18:47:07 UTC (rev 279557)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp 2021-07-04 19:18:38 UTC (rev 279558)
@@ -152,7 +152,7 @@
Base::finishCreation(vm);
reifyStaticProperties(vm, JSTestIterable::info(), JSTestIterablePrototypeTableValues, *this);
auto& entries = vm.propertyNames->builtinNames().entriesPublicName();
- reifyStaticProperty(vm, info(), entries, *info()->staticPropHashTable->entry(entries), *this);
+ reifyStaticProperty(vm, nullptr, entries, *info()->staticPropHashTable->entry(entries), *this);
putDirectWithoutTransition(vm, vm.propertyNames->iteratorSymbol, getDirect(vm, entries), static_cast<unsigned>(JSC::PropertyAttribute::DontEnum));
JSC_TO_STRING_TAG_WITHOUT_TRANSITION();
}
Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLike.cpp (279557 => 279558)
--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLike.cpp 2021-07-04 18:47:07 UTC (rev 279557)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLike.cpp 2021-07-04 19:18:38 UTC (rev 279558)
@@ -181,7 +181,7 @@
Base::finishCreation(vm);
reifyStaticProperties(vm, JSTestMapLike::info(), JSTestMapLikePrototypeTableValues, *this);
auto& entries = vm.propertyNames->builtinNames().entriesPublicName();
- reifyStaticProperty(vm, info(), entries, *info()->staticPropHashTable->entry(entries), *this);
+ reifyStaticProperty(vm, nullptr, entries, *info()->staticPropHashTable->entry(entries), *this);
putDirectWithoutTransition(vm, vm.propertyNames->iteratorSymbol, getDirect(vm, entries), static_cast<unsigned>(JSC::PropertyAttribute::DontEnum));
JSC_TO_STRING_TAG_WITHOUT_TRANSITION();
}
Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp (279557 => 279558)
--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp 2021-07-04 18:47:07 UTC (rev 279557)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp 2021-07-04 19:18:38 UTC (rev 279558)
@@ -185,7 +185,7 @@
Base::finishCreation(vm);
reifyStaticProperties(vm, JSTestMapLikeWithOverriddenOperations::info(), JSTestMapLikeWithOverriddenOperationsPrototypeTableValues, *this);
auto& entries = vm.propertyNames->builtinNames().entriesPublicName();
- reifyStaticProperty(vm, info(), entries, *info()->staticPropHashTable->entry(entries), *this);
+ reifyStaticProperty(vm, nullptr, entries, *info()->staticPropHashTable->entry(entries), *this);
putDirectWithoutTransition(vm, vm.propertyNames->iteratorSymbol, getDirect(vm, entries), static_cast<unsigned>(JSC::PropertyAttribute::DontEnum));
JSC_TO_STRING_TAG_WITHOUT_TRANSITION();
}
Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp (279557 => 279558)
--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp 2021-07-04 18:47:07 UTC (rev 279557)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp 2021-07-04 19:18:38 UTC (rev 279558)
@@ -295,7 +295,7 @@
Base::finishCreation(vm);
reifyStaticProperties(vm, JSTestNode::info(), JSTestNodePrototypeTableValues, *this);
auto& entries = vm.propertyNames->builtinNames().entriesPublicName();
- reifyStaticProperty(vm, info(), entries, *info()->staticPropHashTable->entry(entries), *this);
+ reifyStaticProperty(vm, nullptr, entries, *info()->staticPropHashTable->entry(entries), *this);
putDirectWithoutTransition(vm, vm.propertyNames->iteratorSymbol, getDirect(vm, entries), static_cast<unsigned>(JSC::PropertyAttribute::DontEnum));
JSC_TO_STRING_TAG_WITHOUT_TRANSITION();
}
Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp (279557 => 279558)
--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp 2021-07-04 18:47:07 UTC (rev 279557)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp 2021-07-04 19:18:38 UTC (rev 279558)
@@ -160,7 +160,7 @@
Base::finishCreation(vm);
reifyStaticProperties(vm, JSTestReadOnlyMapLike::info(), JSTestReadOnlyMapLikePrototypeTableValues, *this);
auto& entries = vm.propertyNames->builtinNames().entriesPublicName();
- reifyStaticProperty(vm, info(), entries, *info()->staticPropHashTable->entry(entries), *this);
+ reifyStaticProperty(vm, nullptr, entries, *info()->staticPropHashTable->entry(entries), *this);
putDirectWithoutTransition(vm, vm.propertyNames->iteratorSymbol, getDirect(vm, entries), static_cast<unsigned>(JSC::PropertyAttribute::DontEnum));
JSC_TO_STRING_TAG_WITHOUT_TRANSITION();
}
Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp (279557 => 279558)
--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp 2021-07-04 18:47:07 UTC (rev 279557)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp 2021-07-04 19:18:38 UTC (rev 279558)
@@ -158,7 +158,7 @@
Base::finishCreation(vm);
reifyStaticProperties(vm, JSTestReadOnlySetLike::info(), JSTestReadOnlySetLikePrototypeTableValues, *this);
auto& entries = vm.propertyNames->builtinNames().entriesPublicName();
- reifyStaticProperty(vm, info(), entries, *info()->staticPropHashTable->entry(entries), *this);
+ reifyStaticProperty(vm, nullptr, entries, *info()->staticPropHashTable->entry(entries), *this);
putDirectWithoutTransition(vm, vm.propertyNames->iteratorSymbol, getDirect(vm, entries), static_cast<unsigned>(JSC::PropertyAttribute::DontEnum));
JSC_TO_STRING_TAG_WITHOUT_TRANSITION();
}
Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLike.cpp (279557 => 279558)
--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLike.cpp 2021-07-04 18:47:07 UTC (rev 279557)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLike.cpp 2021-07-04 19:18:38 UTC (rev 279558)
@@ -180,7 +180,7 @@
Base::finishCreation(vm);
reifyStaticProperties(vm, JSTestSetLike::info(), JSTestSetLikePrototypeTableValues, *this);
auto& entries = vm.propertyNames->builtinNames().entriesPublicName();
- reifyStaticProperty(vm, info(), entries, *info()->staticPropHashTable->entry(entries), *this);
+ reifyStaticProperty(vm, nullptr, entries, *info()->staticPropHashTable->entry(entries), *this);
putDirectWithoutTransition(vm, vm.propertyNames->iteratorSymbol, getDirect(vm, entries), static_cast<unsigned>(JSC::PropertyAttribute::DontEnum));
JSC_TO_STRING_TAG_WITHOUT_TRANSITION();
}
Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp (279557 => 279558)
--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp 2021-07-04 18:47:07 UTC (rev 279557)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp 2021-07-04 19:18:38 UTC (rev 279558)
@@ -184,7 +184,7 @@
Base::finishCreation(vm);
reifyStaticProperties(vm, JSTestSetLikeWithOverriddenOperations::info(), JSTestSetLikeWithOverriddenOperationsPrototypeTableValues, *this);
auto& entries = vm.propertyNames->builtinNames().entriesPublicName();
- reifyStaticProperty(vm, info(), entries, *info()->staticPropHashTable->entry(entries), *this);
+ reifyStaticProperty(vm, nullptr, entries, *info()->staticPropHashTable->entry(entries), *this);
putDirectWithoutTransition(vm, vm.propertyNames->iteratorSymbol, getDirect(vm, entries), static_cast<unsigned>(JSC::PropertyAttribute::DontEnum));
JSC_TO_STRING_TAG_WITHOUT_TRANSITION();
}