<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[282864] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/282864">282864</a></dd>
<dt>Author</dt> <dd>shvaikalesh@gmail.com</dd>
<dt>Date</dt> <dd>2021-09-21 21:55:56 -0700 (Tue, 21 Sep 2021)</dd>
</dl>

<h3>Log Message</h3>
<pre>[WebIDL] DOM constructors should extend InternalFunction
https://bugs.webkit.org/show_bug.cgi?id=228763

Reviewed by Sam Weinig.

Source/JavaScriptCore:

Introduce finishCreation(VM&) overload to preserve the current property order of
WebIDL constructors, and to defer a large code change needed for passing through
`length` / `name` parameters (bug #230584).

* runtime/InternalFunction.cpp:
(JSC::InternalFunction::InternalFunction):
(JSC::InternalFunction::finishCreation):
* runtime/InternalFunction.h:

Source/WebCore:

This patch makes JSDOMConstructorBase a subclass of InternalFunction, aligning
DOM constructors with their ECMA-262 counterparts, which renders a few benefits.

  1. InternalFunction is way faster to call than a class with custom getCallData():
     JIT inlines InternalFunction::getCallData(), emitting a direct call into
     m_functionForConstruct. Speeds up invoking Event constructor by ~18% (1M calls).
  2. Since InternalFunction disallows its subclasses to override getCallData(),
     the presence of [[Call]] method can be inferred by JSType only. In the future,
     this invariant will allow to speed up a few bytecodes: is_callable, typeof*.
  3. InternalFunction::finishCreation() takes care of "length" / "name" properties,
     which can leveraged (in a follow-up) to align property order of WebIDL constructors
     with JSC built-ins, and also clean up bindings generator a bit (bug #230584).
  4. Using InternalFunctionType is essential to keep the `instanceof` update
     (bug #151348) performance-neutral for DOM constructors.

No new tests, no behavior change.

* bindings/js/JSDOMBuiltinConstructor.h:
(WebCore::JSDOMBuiltinConstructor<JSClass>::create):
(WebCore::JSDOMBuiltinConstructor<JSClass>::createStructure):
(WebCore::JSDOMBuiltinConstructor<JSClass>::getConstructData): Deleted.
* bindings/js/JSDOMBuiltinConstructorBase.h:
(WebCore::JSDOMBuiltinConstructorBase::JSDOMBuiltinConstructorBase):
* bindings/js/JSDOMConstructor.h:
(WebCore::JSDOMConstructor<JSClass>::create):
(WebCore::JSDOMConstructor<JSClass>::createStructure):
(WebCore::JSDOMConstructor<JSClass>::getConstructData): Deleted.
* bindings/js/JSDOMConstructorBase.cpp:
(WebCore::JSC_DEFINE_HOST_FUNCTION):
(WebCore::JSDOMConstructorBase::getCallData): Deleted.
* bindings/js/JSDOMConstructorBase.h:
(WebCore::JSDOMConstructorBase::globalObject const):
(WebCore::JSDOMConstructorBase::scriptExecutionContext const):
(WebCore::JSDOMConstructorBase::JSDOMConstructorBase):
(WebCore::JSDOMConstructorBase::createStructure): Deleted.
* bindings/js/JSDOMConstructorNotCallable.h:
(WebCore::JSDOMConstructorNotCallable::subspaceFor):
* bindings/js/JSDOMConstructorNotConstructable.h:
(WebCore::JSDOMConstructorNotConstructable<JSClass>::create):
(WebCore::JSDOMConstructorNotConstructable<JSClass>::createStructure):
* bindings/js/JSDOMConstructorWithDocument.h:
(WebCore::JSDOMConstructorWithDocument::JSDOMConstructorWithDocument):
* bindings/js/JSDOMLegacyFactoryFunction.h:
(WebCore::JSDOMLegacyFactoryFunction<JSClass>::create):
(WebCore::JSDOMLegacyFactoryFunction<JSClass>::createStructure):
(WebCore::JSDOMLegacyFactoryFunction<JSClass>::getConstructData): Deleted.
* bindings/js/WebCoreJSClientData.cpp:
(WebCore::JSVMClientData::JSVMClientData):
* bindings/js/WebCoreJSClientData.h:
(WebCore::JSVMClientData::domNamespaceObjectSpace):
Move JSDOMConstructorNotCallable to separate IsoSubspace since it no longer shares
a common parent class with callable constructors.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorHelperMethods):
Introduce InternalFunction::finishCreation(VM&) overload and set m_originalName
directly to preserve the current property order of WebIDL constructors, and to defer
a large code change needed for passing through `length` / `name` parameters (bug #230584).

* bindings/scripts/test/JS/*: Updated.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeInternalFunctioncpp">trunk/Source/JavaScriptCore/runtime/InternalFunction.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeInternalFunctionh">trunk/Source/JavaScriptCore/runtime/InternalFunction.h</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMBuiltinConstructorh">trunk/Source/WebCore/bindings/js/JSDOMBuiltinConstructor.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMBuiltinConstructorBaseh">trunk/Source/WebCore/bindings/js/JSDOMBuiltinConstructorBase.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMConstructorh">trunk/Source/WebCore/bindings/js/JSDOMConstructor.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMConstructorBasecpp">trunk/Source/WebCore/bindings/js/JSDOMConstructorBase.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMConstructorBaseh">trunk/Source/WebCore/bindings/js/JSDOMConstructorBase.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMConstructorNotCallableh">trunk/Source/WebCore/bindings/js/JSDOMConstructorNotCallable.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMConstructorNotConstructableh">trunk/Source/WebCore/bindings/js/JSDOMConstructorNotConstructable.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMConstructorWithDocumenth">trunk/Source/WebCore/bindings/js/JSDOMConstructorWithDocument.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMLegacyFactoryFunctionh">trunk/Source/WebCore/bindings/js/JSDOMLegacyFactoryFunction.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsWebCoreJSClientDatacpp">trunk/Source/WebCore/bindings/js/WebCoreJSClientData.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsWebCoreJSClientDatah">trunk/Source/WebCore/bindings/js/WebCoreJSClientData.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSDOMWindowcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSDOMWindow.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSDedicatedWorkerGlobalScopecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSExposedToWorkerAndWindowcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSPaintWorkletGlobalScopecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSServiceWorkerGlobalScopecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSSharedWorkerGlobalScopecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSSharedWorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionsStringifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCallTracercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallTracer.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCallbackInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestClassWithJSBuiltinConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestConditionalIncludescpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestConditionalIncludes.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestConditionallyReadWritecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestDOMJITcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDOMJIT.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestDefaultToJSONcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSON.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestDefaultToJSONFilteredByExposedcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestDefaultToJSONIndirectInheritancecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestDefaultToJSONInheritcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestDefaultToJSONInheritFinalcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestDelegateToSharedSyntheticAttributecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestDomainSecuritycpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDomainSecurity.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEnabledBySettingcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEnabledBySetting.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEnabledForContextcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEnabledForContext.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestGenerateAddOpaqueRootcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestGlobalObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestIndexedSetterNoIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestIndexedSetterThrowingExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestIndexedSetterWithIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfaceLeadingUnderscorecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestIterablecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestJSBuiltinConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestLegacyFactoryFunctioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestLegacyOverrideBuiltInscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestMapLikecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLike.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestMapLikeWithOverriddenOperationscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedAndIndexedSetterNoIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedAndIndexedSetterThrowingExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedAndIndexedSetterWithIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterNoIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterThrowingExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterWithIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterWithIndexedGettercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedGetterCallWithcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedGetterNoIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedGetterWithIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterNoIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterThrowingExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithIdentifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithIndexedGettercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithIndexedGetterAndSettercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithLegacyOverrideBuiltInscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithLegacyUnforgeablePropertiescpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltInscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOperationConditionalcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOperationConditional.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorsWithSequencecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestPluginInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPluginInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestPromiseRejectionEventcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestReadOnlyMapLikecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestReadOnlySetLikecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestReportExtraMemoryCostcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSetLikecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLike.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSetLikeWithOverriddenOperationscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStringifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStringifierAnonymousOperationcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStringifierNamedOperationcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStringifierOperationImplementedAscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStringifierOperationNamedToStringcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStringifierReadOnlyAttributecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestStringifierReadWriteAttributecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSWorkerGlobalScopecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSWorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSWorkletGlobalScopecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSWorkletGlobalScope.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/JavaScriptCore/ChangeLog       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2021-09-21  Alexey Shvayka  <shvaikalesh@gmail.com>
+
+        [WebIDL] DOM constructors should extend InternalFunction
+        https://bugs.webkit.org/show_bug.cgi?id=228763
+
+        Reviewed by Sam Weinig.
+
+        Introduce finishCreation(VM&) overload to preserve the current property order of
+        WebIDL constructors, and to defer a large code change needed for passing through
+        `length` / `name` parameters (bug #230584).
+
+        * runtime/InternalFunction.cpp:
+        (JSC::InternalFunction::InternalFunction):
+        (JSC::InternalFunction::finishCreation):
+        * runtime/InternalFunction.h:
+
</ins><span class="cx"> 2021-09-21  Chris Dumez  <cdumez@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Reduce use of makeRef() and use Ref { } instead
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeInternalFunctioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/InternalFunction.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/InternalFunction.cpp 2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/JavaScriptCore/runtime/InternalFunction.cpp    2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -41,17 +41,18 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT_WITH_MESSAGE(m_functionForCall, "[[Call]] must be implemented");
</span><span class="cx">     ASSERT(m_functionForConstruct);
</span><del>-}
</del><span class="cx"> 
</span><del>-void InternalFunction::finishCreation(VM& vm, unsigned length, const String& name, PropertyAdditionMode nameAdditionMode)
-{
-    Base::finishCreation(vm);
</del><span class="cx">     ASSERT(jsDynamicCast<InternalFunction*>(vm, this));
</span><span class="cx">     // JSCell::{getCallData,getConstructData} relies on the following conditions.
</span><span class="cx">     ASSERT(methodTable(vm)->getCallData == InternalFunction::info()->methodTable.getCallData);
</span><span class="cx">     ASSERT(methodTable(vm)->getConstructData == InternalFunction::info()->methodTable.getConstructData);
</span><span class="cx">     ASSERT(type() == InternalFunctionType || type() == NullSetterFunctionType);
</span><ins>+}
</ins><span class="cx"> 
</span><ins>+void InternalFunction::finishCreation(VM& vm, unsigned length, const String& name, PropertyAdditionMode nameAdditionMode)
+{
+    Base::finishCreation(vm);
+
</ins><span class="cx">     JSString* nameString = jsString(vm, name);
</span><span class="cx">     m_originalName.set(vm, this, nameString);
</span><span class="cx">     // The enumeration order is length followed by name. So, we make sure to add the properties in that order.
</span><span class="lines">@@ -64,6 +65,11 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void InternalFunction::finishCreation(VM& vm)
+{
+    Base::finishCreation(vm);
+}
+
</ins><span class="cx"> template<typename Visitor>
</span><span class="cx"> void InternalFunction::visitChildrenImpl(JSCell* cell, Visitor& visitor)
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeInternalFunctionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/InternalFunction.h (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/InternalFunction.h   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/JavaScriptCore/runtime/InternalFunction.h      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -88,6 +88,7 @@
</span><span class="cx"> 
</span><span class="cx">     enum class PropertyAdditionMode { WithStructureTransition, WithoutStructureTransition };
</span><span class="cx">     JS_EXPORT_PRIVATE void finishCreation(VM&, unsigned length, const String& name, PropertyAdditionMode = PropertyAdditionMode::WithStructureTransition);
</span><ins>+    JS_EXPORT_PRIVATE void finishCreation(VM&);
</ins><span class="cx"> 
</span><span class="cx">     JS_EXPORT_PRIVATE static CallData getConstructData(JSCell*);
</span><span class="cx">     JS_EXPORT_PRIVATE static CallData getCallData(JSCell*);
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/ChangeLog      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -1,3 +1,71 @@
</span><ins>+2021-09-21  Alexey Shvayka  <shvaikalesh@gmail.com>
+
+        [WebIDL] DOM constructors should extend InternalFunction
+        https://bugs.webkit.org/show_bug.cgi?id=228763
+
+        Reviewed by Sam Weinig.
+
+        This patch makes JSDOMConstructorBase a subclass of InternalFunction, aligning
+        DOM constructors with their ECMA-262 counterparts, which renders a few benefits.
+
+          1. InternalFunction is way faster to call than a class with custom getCallData():
+             JIT inlines InternalFunction::getCallData(), emitting a direct call into
+             m_functionForConstruct. Speeds up invoking Event constructor by ~18% (1M calls).
+          2. Since InternalFunction disallows its subclasses to override getCallData(),
+             the presence of [[Call]] method can be inferred by JSType only. In the future,
+             this invariant will allow to speed up a few bytecodes: is_callable, typeof*.
+          3. InternalFunction::finishCreation() takes care of "length" / "name" properties,
+             which can leveraged (in a follow-up) to align property order of WebIDL constructors
+             with JSC built-ins, and also clean up bindings generator a bit (bug #230584).
+          4. Using InternalFunctionType is essential to keep the `instanceof` update
+             (bug #151348) performance-neutral for DOM constructors.
+
+        No new tests, no behavior change.
+
+        * bindings/js/JSDOMBuiltinConstructor.h:
+        (WebCore::JSDOMBuiltinConstructor<JSClass>::create):
+        (WebCore::JSDOMBuiltinConstructor<JSClass>::createStructure):
+        (WebCore::JSDOMBuiltinConstructor<JSClass>::getConstructData): Deleted.
+        * bindings/js/JSDOMBuiltinConstructorBase.h:
+        (WebCore::JSDOMBuiltinConstructorBase::JSDOMBuiltinConstructorBase):
+        * bindings/js/JSDOMConstructor.h:
+        (WebCore::JSDOMConstructor<JSClass>::create):
+        (WebCore::JSDOMConstructor<JSClass>::createStructure):
+        (WebCore::JSDOMConstructor<JSClass>::getConstructData): Deleted.
+        * bindings/js/JSDOMConstructorBase.cpp:
+        (WebCore::JSC_DEFINE_HOST_FUNCTION):
+        (WebCore::JSDOMConstructorBase::getCallData): Deleted.
+        * bindings/js/JSDOMConstructorBase.h:
+        (WebCore::JSDOMConstructorBase::globalObject const):
+        (WebCore::JSDOMConstructorBase::scriptExecutionContext const):
+        (WebCore::JSDOMConstructorBase::JSDOMConstructorBase):
+        (WebCore::JSDOMConstructorBase::createStructure): Deleted.
+        * bindings/js/JSDOMConstructorNotCallable.h:
+        (WebCore::JSDOMConstructorNotCallable::subspaceFor):
+        * bindings/js/JSDOMConstructorNotConstructable.h:
+        (WebCore::JSDOMConstructorNotConstructable<JSClass>::create):
+        (WebCore::JSDOMConstructorNotConstructable<JSClass>::createStructure):
+        * bindings/js/JSDOMConstructorWithDocument.h:
+        (WebCore::JSDOMConstructorWithDocument::JSDOMConstructorWithDocument):
+        * bindings/js/JSDOMLegacyFactoryFunction.h:
+        (WebCore::JSDOMLegacyFactoryFunction<JSClass>::create):
+        (WebCore::JSDOMLegacyFactoryFunction<JSClass>::createStructure):
+        (WebCore::JSDOMLegacyFactoryFunction<JSClass>::getConstructData): Deleted.
+        * bindings/js/WebCoreJSClientData.cpp:
+        (WebCore::JSVMClientData::JSVMClientData):
+        * bindings/js/WebCoreJSClientData.h:
+        (WebCore::JSVMClientData::domNamespaceObjectSpace):
+        Move JSDOMConstructorNotCallable to separate IsoSubspace since it no longer shares
+        a common parent class with callable constructors.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateConstructorHelperMethods):
+        Introduce InternalFunction::finishCreation(VM&) overload and set m_originalName
+        directly to preserve the current property order of WebIDL constructors, and to defer
+        a large code change needed for passing through `length` / `name` parameters (bug #230584).
+
+        * bindings/scripts/test/JS/*: Updated.
+
</ins><span class="cx"> 2021-09-21  Myles C. Maxfield  <mmaxfield@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Add FontCreationContext
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMBuiltinConstructorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMBuiltinConstructor.h (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMBuiltinConstructor.h       2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/js/JSDOMBuiltinConstructor.h  2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -40,13 +40,12 @@
</span><span class="cx">     static JSC::EncodedJSValue JSC_HOST_CALL_ATTRIBUTES construct(JSC::JSGlobalObject*, JSC::CallFrame*);
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    JSDOMBuiltinConstructor(JSC::Structure* structure, JSDOMGlobalObject& globalObject)
-        : Base(structure, globalObject)
</del><ins>+    JSDOMBuiltinConstructor(JSC::VM& vm, JSC::Structure* structure)
+        : Base(vm, structure, construct)
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void finishCreation(JSC::VM&, JSDOMGlobalObject&);
</span><del>-    static JSC::CallData getConstructData(JSC::JSCell*);
</del><span class="cx"> 
</span><span class="cx">     JSC::EncodedJSValue callConstructor(JSC::JSGlobalObject&, JSC::CallFrame&, JSC::JSObject&);
</span><span class="cx">     JSC::EncodedJSValue callConstructor(JSC::JSGlobalObject&, JSC::CallFrame&, JSC::JSObject*);
</span><span class="lines">@@ -59,7 +58,7 @@
</span><span class="cx"> 
</span><span class="cx"> template<typename JSClass> inline JSDOMBuiltinConstructor<JSClass>* JSDOMBuiltinConstructor<JSClass>::create(JSC::VM& vm, JSC::Structure* structure, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><del>-    JSDOMBuiltinConstructor* constructor = new (NotNull, JSC::allocateCell<JSDOMBuiltinConstructor>(vm.heap)) JSDOMBuiltinConstructor(structure, globalObject);
</del><ins>+    JSDOMBuiltinConstructor* constructor = new (NotNull, JSC::allocateCell<JSDOMBuiltinConstructor>(vm.heap)) JSDOMBuiltinConstructor(vm, structure);
</ins><span class="cx">     constructor->finishCreation(vm, globalObject);
</span><span class="cx">     return constructor;
</span><span class="cx"> }
</span><span class="lines">@@ -66,7 +65,7 @@
</span><span class="cx"> 
</span><span class="cx"> template<typename JSClass> inline JSC::Structure* JSDOMBuiltinConstructor<JSClass>::createStructure(JSC::VM& vm, JSC::JSGlobalObject& globalObject, JSC::JSValue prototype)
</span><span class="cx"> {
</span><del>-    return JSC::Structure::create(vm, &globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
</del><ins>+    return JSC::Structure::create(vm, &globalObject, prototype, JSC::TypeInfo(JSC::InternalFunctionType, StructureFlags), info());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template<typename JSClass> inline void JSDOMBuiltinConstructor<JSClass>::finishCreation(JSC::VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="lines">@@ -119,12 +118,4 @@
</span><span class="cx">     return castedThis->callConstructor(*lexicalGlobalObject, *callFrame, createJSObject(*castedThis));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template<typename JSClass> inline JSC::CallData JSDOMBuiltinConstructor<JSClass>::getConstructData(JSC::JSCell*)
-{
-    JSC::CallData constructData;
-    constructData.type = JSC::CallData::Type::Native;
-    constructData.native.function = construct;
-    return constructData;
-}
-
</del><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMBuiltinConstructorBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMBuiltinConstructorBase.h (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMBuiltinConstructorBase.h   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/js/JSDOMBuiltinConstructorBase.h      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -37,8 +37,8 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    JSDOMBuiltinConstructorBase(JSC::Structure* structure, JSDOMGlobalObject& globalObject)
-        : JSDOMConstructorBase(structure, globalObject)
</del><ins>+    JSDOMBuiltinConstructorBase(JSC::VM& vm, JSC::Structure* structure, JSC::NativeFunction functionForConstruct)
+        : Base(vm, structure, functionForConstruct)
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMConstructorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMConstructor.h (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMConstructor.h      2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/js/JSDOMConstructor.h 2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -39,13 +39,12 @@
</span><span class="cx">     static JSC::EncodedJSValue JSC_HOST_CALL_ATTRIBUTES construct(JSC::JSGlobalObject*, JSC::CallFrame*);
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    JSDOMConstructor(JSC::Structure* structure, JSDOMGlobalObject& globalObject)
-        : Base(structure, globalObject)
</del><ins>+    JSDOMConstructor(JSC::VM& vm, JSC::Structure* structure)
+        : Base(vm, structure, construct)
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void finishCreation(JSC::VM&, JSDOMGlobalObject&);
</span><del>-    static JSC::CallData getConstructData(JSC::JSCell*);
</del><span class="cx"> 
</span><span class="cx">     // Usually defined for each specialization class.
</span><span class="cx">     void initializeProperties(JSC::VM&, JSDOMGlobalObject&) { }
</span><span class="lines">@@ -53,7 +52,7 @@
</span><span class="cx"> 
</span><span class="cx"> template<typename JSClass> inline JSDOMConstructor<JSClass>* JSDOMConstructor<JSClass>::create(JSC::VM& vm, JSC::Structure* structure, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><del>-    JSDOMConstructor* constructor = new (NotNull, JSC::allocateCell<JSDOMConstructor>(vm.heap)) JSDOMConstructor(structure, globalObject);
</del><ins>+    JSDOMConstructor* constructor = new (NotNull, JSC::allocateCell<JSDOMConstructor>(vm.heap)) JSDOMConstructor(vm, structure);
</ins><span class="cx">     constructor->finishCreation(vm, globalObject);
</span><span class="cx">     return constructor;
</span><span class="cx"> }
</span><span class="lines">@@ -60,7 +59,7 @@
</span><span class="cx"> 
</span><span class="cx"> template<typename JSClass> inline JSC::Structure* JSDOMConstructor<JSClass>::createStructure(JSC::VM& vm, JSC::JSGlobalObject& globalObject, JSC::JSValue prototype)
</span><span class="cx"> {
</span><del>-    return JSC::Structure::create(vm, &globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
</del><ins>+    return JSC::Structure::create(vm, &globalObject, prototype, JSC::TypeInfo(JSC::InternalFunctionType, StructureFlags), info());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template<typename JSClass> inline void JSDOMConstructor<JSClass>::finishCreation(JSC::VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="lines">@@ -70,13 +69,4 @@
</span><span class="cx">     initializeProperties(vm, globalObject);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template<typename JSClass> inline JSC::CallData JSDOMConstructor<JSClass>::getConstructData(JSC::JSCell*)
-{
-    JSC::CallData constructData;
-    constructData.type = JSC::CallData::Type::Native;
-    constructData.native.function = construct;
-    return constructData;
-}
-
-
</del><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMConstructorBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMConstructorBase.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMConstructorBase.cpp        2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/js/JSDOMConstructorBase.cpp   2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -30,9 +30,7 @@
</span><span class="cx"> 
</span><span class="cx"> STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(JSDOMConstructorBase);
</span><span class="cx"> 
</span><del>-static JSC_DECLARE_HOST_FUNCTION(callThrowTypeError);
-
-JSC_DEFINE_HOST_FUNCTION(callThrowTypeError, (JSGlobalObject* globalObject, CallFrame*))
</del><ins>+JSC_DEFINE_HOST_FUNCTION(callThrowTypeErrorForJSDOMConstructor, (JSGlobalObject* globalObject, CallFrame*))
</ins><span class="cx"> {
</span><span class="cx">     VM& vm = globalObject->vm();
</span><span class="cx">     auto scope = DECLARE_THROW_SCOPE(vm);
</span><span class="lines">@@ -48,14 +46,6 @@
</span><span class="cx">     return JSC::JSValue::encode(JSC::jsNull());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-CallData JSDOMConstructorBase::getCallData(JSCell*)
-{
-    CallData callData;
-    callData.type = CallData::Type::Native;
-    callData.native.function = callThrowTypeError;
-    return callData;
-}
-
</del><span class="cx"> JSC::IsoSubspace* JSDOMConstructorBase::subspaceForImpl(JSC::VM& vm)
</span><span class="cx"> {
</span><span class="cx">     return &static_cast<JSVMClientData*>(vm.clientData)->domConstructorSpace();
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMConstructorBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMConstructorBase.h (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMConstructorBase.h  2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/js/JSDOMConstructorBase.h     2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -19,20 +19,21 @@
</span><span class="cx"> 
</span><span class="cx"> #pragma once
</span><span class="cx"> 
</span><del>-#include "JSDOMWrapper.h"
</del><ins>+#include "JSDOMGlobalObject.h"
+#include <JavaScriptCore/InternalFunction.h>
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+JSC_DECLARE_HOST_FUNCTION(callThrowTypeErrorForJSDOMConstructor);
</ins><span class="cx"> JSC_DECLARE_HOST_FUNCTION(callThrowTypeErrorForJSDOMConstructorNotConstructable);
</span><span class="cx"> 
</span><del>-// Base class for all constructor objects in the JSC bindings.
-class JSDOMConstructorBase : public JSDOMObject {
</del><ins>+// Base class for all callable constructor objects in the JSC bindings.
+class JSDOMConstructorBase : public JSC::InternalFunction {
</ins><span class="cx"> public:
</span><del>-    using Base = JSDOMObject;
</del><ins>+    using Base = InternalFunction;
</ins><span class="cx"> 
</span><del>-    static constexpr unsigned StructureFlags = Base::StructureFlags | JSC::ImplementsHasInstance | JSC::ImplementsDefaultHasInstance | JSC::OverridesGetCallData;
</del><ins>+    static constexpr unsigned StructureFlags = Base::StructureFlags;
</ins><span class="cx">     static constexpr bool needsDestruction = false;
</span><del>-    static JSC::Structure* createStructure(JSC::VM&, JSC::JSGlobalObject*, JSC::JSValue);
</del><span class="cx"> 
</span><span class="cx">     template<typename CellType, JSC::SubspaceAccess>
</span><span class="cx">     static JSC::IsoSubspace* subspaceFor(JSC::VM& vm)
</span><span class="lines">@@ -45,18 +46,16 @@
</span><span class="cx"> 
</span><span class="cx">     static JSC::IsoSubspace* subspaceForImpl(JSC::VM&);
</span><span class="cx"> 
</span><ins>+    JSDOMGlobalObject* globalObject() const { return JSC::jsCast<JSDOMGlobalObject*>(Base::globalObject()); }
+    ScriptExecutionContext* scriptExecutionContext() const { return globalObject()->scriptExecutionContext(); }
+
</ins><span class="cx"> protected:
</span><del>-    JSDOMConstructorBase(JSC::Structure* structure, JSDOMGlobalObject& globalObject)
-        : JSDOMObject(structure, globalObject)
</del><ins>+    JSDOMConstructorBase(JSC::VM& vm, JSC::Structure* structure, JSC::NativeFunction functionForConstruct)
+        : Base(vm, structure,
+            functionForConstruct ? callThrowTypeErrorForJSDOMConstructor : callThrowTypeErrorForJSDOMConstructorNotConstructable,
+            functionForConstruct ? functionForConstruct : callThrowTypeErrorForJSDOMConstructorNotConstructable)
</ins><span class="cx">     {
</span><span class="cx">     }
</span><del>-
-    static JSC::CallData getCallData(JSC::JSCell*);
</del><span class="cx"> };
</span><span class="cx"> 
</span><del>-inline JSC::Structure* JSDOMConstructorBase::createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
-{
-    return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
-}
-
</del><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMConstructorNotCallableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMConstructorNotCallable.h (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMConstructorNotCallable.h   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/js/JSDOMConstructorNotCallable.h      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">         static_assert(sizeof(CellType) == sizeof(JSDOMConstructorNotCallable));
</span><span class="cx">         STATIC_ASSERT_ISO_SUBSPACE_SHARABLE(CellType, JSDOMConstructorNotCallable);
</span><span class="cx">         static_assert(CellType::destroy == JSC::JSCell::destroy, "JSDOMConstructorNotCallable<JSClass> is not destructible actually");
</span><del>-        return &static_cast<JSVMClientData*>(vm.clientData)->domConstructorSpace();
</del><ins>+        return &static_cast<JSVMClientData*>(vm.clientData)->domNamespaceObjectSpace();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMConstructorNotConstructableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMConstructorNotConstructable.h (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMConstructorNotConstructable.h      2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/js/JSDOMConstructorNotConstructable.h 2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -36,8 +36,8 @@
</span><span class="cx">     static JSC::JSValue prototypeForStructure(JSC::VM&, const JSDOMGlobalObject&);
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    JSDOMConstructorNotConstructable(JSC::Structure* structure, JSDOMGlobalObject& globalObject)
-        : Base(structure, globalObject)
</del><ins>+    JSDOMConstructorNotConstructable(JSC::VM& vm, JSC::Structure* structure)
+        : Base(vm, structure, nullptr)
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -45,27 +45,11 @@
</span><span class="cx"> 
</span><span class="cx">     // Usually defined for each specialization class.
</span><span class="cx">     void initializeProperties(JSC::VM&, JSDOMGlobalObject&) { }
</span><del>-
-    static JSC::CallData getCallData(JSC::JSCell*)
-    {
-        JSC::CallData callData;
-        callData.type = JSC::CallData::Type::Native;
-        callData.native.function = callThrowTypeErrorForJSDOMConstructorNotConstructable;
-        return callData;
-    }
-
-    static JSC::CallData getConstructData(JSC::JSCell*)
-    {
-        JSC::CallData callData;
-        callData.type = JSC::CallData::Type::Native;
-        callData.native.function = callThrowTypeErrorForJSDOMConstructorNotConstructable;
-        return callData;
-    }
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> template<typename JSClass> inline JSDOMConstructorNotConstructable<JSClass>* JSDOMConstructorNotConstructable<JSClass>::create(JSC::VM& vm, JSC::Structure* structure, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><del>-    JSDOMConstructorNotConstructable* constructor = new (NotNull, JSC::allocateCell<JSDOMConstructorNotConstructable>(vm.heap)) JSDOMConstructorNotConstructable(structure, globalObject);
</del><ins>+    JSDOMConstructorNotConstructable* constructor = new (NotNull, JSC::allocateCell<JSDOMConstructorNotConstructable>(vm.heap)) JSDOMConstructorNotConstructable(vm, structure);
</ins><span class="cx">     constructor->finishCreation(vm, globalObject);
</span><span class="cx">     return constructor;
</span><span class="cx"> }
</span><span class="lines">@@ -72,7 +56,7 @@
</span><span class="cx"> 
</span><span class="cx"> template<typename JSClass> inline JSC::Structure* JSDOMConstructorNotConstructable<JSClass>::createStructure(JSC::VM& vm, JSC::JSGlobalObject& globalObject, JSC::JSValue prototype)
</span><span class="cx"> {
</span><del>-    return JSC::Structure::create(vm, &globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
</del><ins>+    return JSC::Structure::create(vm, &globalObject, prototype, JSC::TypeInfo(JSC::InternalFunctionType, StructureFlags), info());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template<typename JSClass> inline void JSDOMConstructorNotConstructable<JSClass>::finishCreation(JSC::VM& vm, JSDOMGlobalObject& globalObject)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMConstructorWithDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMConstructorWithDocument.h (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMConstructorWithDocument.h  2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/js/JSDOMConstructorWithDocument.h     2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -36,8 +36,8 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    JSDOMConstructorWithDocument(JSC::Structure* structure, JSDOMGlobalObject& globalObject)
-        : JSDOMConstructorBase(structure, globalObject)
</del><ins>+    JSDOMConstructorWithDocument(JSC::VM& vm, JSC::Structure* structure, JSC::NativeFunction functionForConstruct)
+        : Base(vm, structure, functionForConstruct)
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMLegacyFactoryFunctionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMLegacyFactoryFunction.h (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMLegacyFactoryFunction.h    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/js/JSDOMLegacyFactoryFunction.h       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -23,7 +23,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-// FIMXE: Why can't LegacyFactoryFunctions be used with workers?
</del><ins>+// All legacy factory functions are exposed on Window only, while authors are advised against adding new ones.
</ins><span class="cx"> template<typename JSClass> class JSDOMLegacyFactoryFunction final : public JSDOMConstructorWithDocument {
</span><span class="cx"> public:
</span><span class="cx">     using Base = JSDOMConstructorWithDocument;
</span><span class="lines">@@ -40,13 +40,12 @@
</span><span class="cx">     static JSC::EncodedJSValue JSC_HOST_CALL_ATTRIBUTES construct(JSC::JSGlobalObject*, JSC::CallFrame*);
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    JSDOMLegacyFactoryFunction(JSC::Structure* structure, JSDOMGlobalObject& globalObject)
-        : Base(structure, globalObject)
</del><ins>+    JSDOMLegacyFactoryFunction(JSC::VM& vm, JSC::Structure* structure)
+        : Base(vm, structure, construct)
</ins><span class="cx">     { 
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void finishCreation(JSC::VM&, JSDOMGlobalObject&);
</span><del>-    static JSC::CallData getConstructData(JSC::JSCell*);
</del><span class="cx"> 
</span><span class="cx">     // Usually defined for each specialization class.
</span><span class="cx">     void initializeProperties(JSC::VM&, JSDOMGlobalObject&) { }
</span><span class="lines">@@ -54,7 +53,7 @@
</span><span class="cx"> 
</span><span class="cx"> template<typename JSClass> inline JSDOMLegacyFactoryFunction<JSClass>* JSDOMLegacyFactoryFunction<JSClass>::create(JSC::VM& vm, JSC::Structure* structure, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><del>-    JSDOMLegacyFactoryFunction* constructor = new (NotNull, JSC::allocateCell<JSDOMLegacyFactoryFunction>(vm.heap)) JSDOMLegacyFactoryFunction(structure, globalObject);
</del><ins>+    JSDOMLegacyFactoryFunction* constructor = new (NotNull, JSC::allocateCell<JSDOMLegacyFactoryFunction>(vm.heap)) JSDOMLegacyFactoryFunction(vm, structure);
</ins><span class="cx">     constructor->finishCreation(vm, globalObject);
</span><span class="cx">     return constructor;
</span><span class="cx"> }
</span><span class="lines">@@ -61,7 +60,7 @@
</span><span class="cx"> 
</span><span class="cx"> template<typename JSClass> inline JSC::Structure* JSDOMLegacyFactoryFunction<JSClass>::createStructure(JSC::VM& vm, JSC::JSGlobalObject& globalObject, JSC::JSValue prototype)
</span><span class="cx"> {
</span><del>-    return JSC::Structure::create(vm, &globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
</del><ins>+    return JSC::Structure::create(vm, &globalObject, prototype, JSC::TypeInfo(JSC::InternalFunctionType, StructureFlags), info());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template<typename JSClass> inline void JSDOMLegacyFactoryFunction<JSClass>::finishCreation(JSC::VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="lines">@@ -71,12 +70,4 @@
</span><span class="cx">     initializeProperties(vm, globalObject);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template<typename JSClass> inline JSC::CallData JSDOMLegacyFactoryFunction<JSClass>::getConstructData(JSC::JSCell*)
-{
-    JSC::CallData constructData;
-    constructData.type = JSC::CallData::Type::Native;
-    constructData.native.function = construct;
-    return constructData;
-}
-
</del><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsWebCoreJSClientDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/WebCoreJSClientData.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/WebCoreJSClientData.cpp 2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/js/WebCoreJSClientData.cpp    2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -79,6 +79,7 @@
</span><span class="cx">     , m_heapCellTypeForJSIDBSerializationGlobalObject(JSC::IsoHeapCellType::create<JSIDBSerializationGlobalObject>())
</span><span class="cx">     , m_domBuiltinConstructorSpace ISO_SUBSPACE_INIT(vm.heap, vm.cellHeapCellType.get(), JSDOMBuiltinConstructorBase)
</span><span class="cx">     , m_domConstructorSpace ISO_SUBSPACE_INIT(vm.heap, vm.cellHeapCellType.get(), JSDOMConstructorBase)
</span><ins>+    , m_domNamespaceObjectSpace ISO_SUBSPACE_INIT(vm.heap, vm.cellHeapCellType.get(), JSDOMObject)
</ins><span class="cx">     , m_domWindowPropertiesSpace ISO_SUBSPACE_INIT(vm.heap, vm.cellHeapCellType.get(), JSDOMWindowProperties)
</span><span class="cx">     , m_runtimeArraySpace ISO_SUBSPACE_INIT(vm.heap, m_runtimeArrayHeapCellType.get(), RuntimeArray)
</span><span class="cx">     , m_runtimeMethodSpace ISO_SUBSPACE_INIT(vm.heap, vm.cellHeapCellType.get(), RuntimeMethod) // Hash:0xf70c4a85
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsWebCoreJSClientDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/WebCoreJSClientData.h (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/WebCoreJSClientData.h   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/js/WebCoreJSClientData.h      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -64,6 +64,7 @@
</span><span class="cx">     
</span><span class="cx">     JSC::IsoSubspace& domBuiltinConstructorSpace() { return m_domBuiltinConstructorSpace; }
</span><span class="cx">     JSC::IsoSubspace& domConstructorSpace() { return m_domConstructorSpace; }
</span><ins>+    JSC::IsoSubspace& domNamespaceObjectSpace() { return m_domNamespaceObjectSpace; }
</ins><span class="cx">     JSC::IsoSubspace& domWindowPropertiesSpace() { return m_domWindowPropertiesSpace; }
</span><span class="cx">     JSC::IsoSubspace& runtimeArraySpace() { return m_runtimeArraySpace; }
</span><span class="cx">     JSC::IsoSubspace& runtimeMethodSpace() { return m_runtimeMethodSpace; }
</span><span class="lines">@@ -113,6 +114,7 @@
</span><span class="cx"> private:
</span><span class="cx">     JSC::IsoSubspace m_domBuiltinConstructorSpace;
</span><span class="cx">     JSC::IsoSubspace m_domConstructorSpace;
</span><ins>+    JSC::IsoSubspace m_domNamespaceObjectSpace;
</ins><span class="cx">     JSC::IsoSubspace m_domWindowPropertiesSpace;
</span><span class="cx">     JSC::IsoSubspace m_runtimeArraySpace;
</span><span class="cx">     JSC::IsoSubspace m_runtimeMethodSpace;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm 2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm    2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -7809,7 +7809,13 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     assert("jsNontrivialString() requires strings two or more characters long") if length($visibleInterfaceName) < 2;
</span><del>-    push(@$outputArray, "    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, \"$visibleInterfaceName\"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);\n") if !$interface->isNamespaceObject;
</del><ins>+    if (!$interface->isNamespaceObject) {
+        # FIXME: Align property order of DOM constructors with ECMA-262 counterparts
+        # https://bugs.webkit.org/show_bug.cgi?id=230584
+        push(@$outputArray, "    JSString* nameString = jsNontrivialString(vm, \"$visibleInterfaceName\"_s);\n");
+        push(@$outputArray, "    m_originalName.set(vm, this, nameString);\n");
+        push(@$outputArray, "    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);\n");
+    }
</ins><span class="cx"> 
</span><span class="cx">     if ($interface->extendedAttributes->{LegacyFactoryFunctionEnabledBySetting}) {
</span><span class="cx">         my $runtimeEnableConditionalString = GenerateRuntimeEnableConditionalString($interface, $interface, "&globalObject");
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSDOMWindowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSDOMWindow.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSDOMWindow.cpp    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSDOMWindow.cpp       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -153,7 +153,9 @@
</span><span class="cx"> template<> void JSDOMWindowDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, globalObject.getPrototypeDirect(vm), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "DOMWindow"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "DOMWindow"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSDedicatedWorkerGlobalScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -77,7 +77,9 @@
</span><span class="cx"> template<> void JSDedicatedWorkerGlobalScopeDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, globalObject.getPrototypeDirect(vm), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "DedicatedWorkerGlobalScope"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "DedicatedWorkerGlobalScope"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSExposedToWorkerAndWindowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp     2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp        2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -159,7 +159,9 @@
</span><span class="cx"> template<> void JSExposedToWorkerAndWindowDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSExposedToWorkerAndWindow::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "ExposedToWorkerAndWindow"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "ExposedToWorkerAndWindow"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSPaintWorkletGlobalScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp      2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp 2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -77,7 +77,9 @@
</span><span class="cx"> template<> void JSPaintWorkletGlobalScopeDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, globalObject.getPrototypeDirect(vm), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "PaintWorkletGlobalScope"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "PaintWorkletGlobalScope"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSServiceWorkerGlobalScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp     2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp        2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -77,7 +77,9 @@
</span><span class="cx"> template<> void JSServiceWorkerGlobalScopeDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, globalObject.getPrototypeDirect(vm), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "ServiceWorkerGlobalScope"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "ServiceWorkerGlobalScope"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSSharedWorkerGlobalScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSSharedWorkerGlobalScope.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSSharedWorkerGlobalScope.cpp      2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSSharedWorkerGlobalScope.cpp 2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -77,7 +77,9 @@
</span><span class="cx"> template<> void JSSharedWorkerGlobalScopeDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, globalObject.getPrototypeDirect(vm), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "SharedWorkerGlobalScope"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "SharedWorkerGlobalScope"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.cpp      2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.cpp 2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -120,7 +120,9 @@
</span><span class="cx"> template<> void JSTestCEReactionsDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestCEReactions::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestCEReactions"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestCEReactions"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionsStringifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -105,7 +105,9 @@
</span><span class="cx"> template<> void JSTestCEReactionsStringifierDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestCEReactionsStringifier::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestCEReactionsStringifier"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestCEReactionsStringifier"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCallTracercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallTracer.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallTracer.cpp       2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallTracer.cpp  2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -136,7 +136,9 @@
</span><span class="cx"> template<> void JSTestCallTracerDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestCallTracer::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestCallTracer"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestCallTracer"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx">     reifyStaticProperties(vm, JSTestCallTracer::info(), JSTestCallTracerConstructorTableValues, *this);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCallbackInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackInterface.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackInterface.cpp        2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackInterface.cpp   2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -164,7 +164,9 @@
</span><span class="cx"> template<> void JSTestCallbackInterfaceDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     UNUSED_PARAM(globalObject);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestCallbackInterface"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestCallbackInterface"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx">     reifyStaticProperties(vm, nullptr, JSTestCallbackInterfaceConstructorTableValues, *this);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestClassWithJSBuiltinConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -94,7 +94,9 @@
</span><span class="cx"> template<> void JSTestClassWithJSBuiltinConstructorDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestClassWithJSBuiltinConstructor::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestClassWithJSBuiltinConstructor"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestClassWithJSBuiltinConstructor"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestConditionalIncludescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestConditionalIncludes.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestConditionalIncludes.cpp      2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestConditionalIncludes.cpp 2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -188,7 +188,9 @@
</span><span class="cx"> template<> void JSTestConditionalIncludesDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestConditionalIncludes::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestConditionalIncludes"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestConditionalIncludes"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx">     reifyStaticProperties(vm, JSTestConditionalIncludes::info(), JSTestConditionalIncludesConstructorTableValues, *this);
</span><span class="cx"> #if ENABLE(Condition22) || ENABLE(Condition23)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestConditionallyReadWritecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -149,7 +149,9 @@
</span><span class="cx"> template<> void JSTestConditionallyReadWriteDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestConditionallyReadWrite::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestConditionallyReadWrite"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestConditionallyReadWrite"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestDOMJITcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDOMJIT.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDOMJIT.cpp   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDOMJIT.cpp      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -510,7 +510,9 @@
</span><span class="cx"> template<> void JSTestDOMJITDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestDOMJIT::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestDOMJIT"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestDOMJIT"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestDefaultToJSONcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSON.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSON.cpp    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSON.cpp       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -154,7 +154,9 @@
</span><span class="cx"> template<> void JSTestDefaultToJSONDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestDefaultToJSON::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestDefaultToJSON"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestDefaultToJSON"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestDefaultToJSONFilteredByExposedcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -105,7 +105,9 @@
</span><span class="cx"> template<> void JSTestDefaultToJSONFilteredByExposedDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestDefaultToJSONFilteredByExposed::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestDefaultToJSONFilteredByExposed"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestDefaultToJSONFilteredByExposed"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestDefaultToJSONIndirectInheritancecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp 2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp    2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -91,7 +91,9 @@
</span><span class="cx"> template<> void JSTestDefaultToJSONIndirectInheritanceDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestDefaultToJSONIndirectInheritance::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestDefaultToJSONIndirectInheritance"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestDefaultToJSONIndirectInheritance"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestDefaultToJSONInheritcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp     2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp        2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -118,7 +118,9 @@
</span><span class="cx"> template<> void JSTestDefaultToJSONInheritDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestDefaultToJSONInherit::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestDefaultToJSONInherit"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestDefaultToJSONInherit"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestDefaultToJSONInheritFinalcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp        2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp   2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -120,7 +120,9 @@
</span><span class="cx"> template<> void JSTestDefaultToJSONInheritFinalDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestDefaultToJSONInheritFinal::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestDefaultToJSONInheritFinal"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestDefaultToJSONInheritFinal"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestDelegateToSharedSyntheticAttributecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.cpp       2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.cpp  2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -100,7 +100,9 @@
</span><span class="cx"> template<> void JSTestDelegateToSharedSyntheticAttributeDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestDelegateToSharedSyntheticAttribute::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestDelegateToSharedSyntheticAttribute"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestDelegateToSharedSyntheticAttribute"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestDomainSecuritycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDomainSecurity.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDomainSecurity.cpp   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDomainSecurity.cpp      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -124,7 +124,9 @@
</span><span class="cx"> template<> void JSTestDomainSecurityDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestDomainSecurity::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestDomainSecurity"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestDomainSecurity"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEnabledBySettingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEnabledBySetting.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEnabledBySetting.cpp 2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEnabledBySetting.cpp    2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -145,7 +145,9 @@
</span><span class="cx"> template<> void JSTestEnabledBySettingDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestEnabledBySetting::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestEnabledBySetting"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestEnabledBySetting"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx">     reifyStaticProperties(vm, JSTestEnabledBySetting::info(), JSTestEnabledBySettingConstructorTableValues, *this);
</span><span class="cx">     if (!jsCast<JSDOMGlobalObject*>(&globalObject)->scriptExecutionContext()->settingsValues().testSettingEnabled) {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEnabledForContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEnabledForContext.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEnabledForContext.cpp        2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEnabledForContext.cpp   2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -96,7 +96,9 @@
</span><span class="cx"> template<> void JSTestEnabledForContextDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestEnabledForContext::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestEnabledForContext"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestEnabledForContext"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp 2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp    2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -201,7 +201,9 @@
</span><span class="cx"> template<> void JSTestEventConstructorDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestEventConstructor::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestEventConstructor"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestEventConstructor"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(1), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp      2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp 2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -102,7 +102,9 @@
</span><span class="cx"> template<> void JSTestEventTargetDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestEventTarget::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestEventTarget"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestEventTarget"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp   2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -96,7 +96,9 @@
</span><span class="cx"> template<> void JSTestExceptionDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestException::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestException"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestException"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGenerateAddOpaqueRootcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.cpp    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.cpp       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -96,7 +96,9 @@
</span><span class="cx"> template<> void JSTestGenerateAddOpaqueRootDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestGenerateAddOpaqueRoot::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestGenerateAddOpaqueRoot"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestGenerateAddOpaqueRoot"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp      2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp 2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -96,7 +96,9 @@
</span><span class="cx"> template<> void JSTestGenerateIsReachableDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestGenerateIsReachable::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestGenerateIsReachable"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestGenerateIsReachable"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGlobalObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp     2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp        2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -626,7 +626,9 @@
</span><span class="cx"> template<> void JSTestGlobalObjectDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, globalObject.getPrototypeDirect(vm), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestGlobalObject"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestGlobalObject"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx">     reifyStaticProperties(vm, JSTestGlobalObject::info(), JSTestGlobalObjectConstructorTableValues, *this);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestIndexedSetterNoIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp        2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp   2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -95,7 +95,9 @@
</span><span class="cx"> template<> void JSTestIndexedSetterNoIdentifierDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestIndexedSetterNoIdentifier::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestIndexedSetterNoIdentifier"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestIndexedSetterNoIdentifier"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestIndexedSetterThrowingExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -95,7 +95,9 @@
</span><span class="cx"> template<> void JSTestIndexedSetterThrowingExceptionDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestIndexedSetterThrowingException::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestIndexedSetterThrowingException"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestIndexedSetterThrowingException"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestIndexedSetterWithIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp      2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp 2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -103,7 +103,9 @@
</span><span class="cx"> template<> void JSTestIndexedSetterWithIdentifierDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestIndexedSetterWithIdentifier::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestIndexedSetterWithIdentifier"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestIndexedSetterWithIdentifier"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp   2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -300,7 +300,9 @@
</span><span class="cx"> template<> void JSTestInterfaceDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestInterface::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestInterface"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestInterface"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(1), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx">     reifyStaticProperties(vm, JSTestInterface::info(), JSTestInterfaceConstructorTableValues, *this);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfaceLeadingUnderscorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp       2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp  2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -96,7 +96,9 @@
</span><span class="cx"> template<> void JSTestInterfaceLeadingUnderscoreDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestInterfaceLeadingUnderscore::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestInterfaceLeadingUnderscore"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestInterfaceLeadingUnderscore"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestIterablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp 2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp    2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -105,7 +105,9 @@
</span><span class="cx"> template<> void JSTestIterableDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestIterable::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestIterable"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestIterable"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestJSBuiltinConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp     2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp        2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -99,7 +99,9 @@
</span><span class="cx"> template<> void JSTestJSBuiltinConstructorDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestJSBuiltinConstructor::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestJSBuiltinConstructor"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestJSBuiltinConstructor"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestLegacyFactoryFunctioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -98,7 +98,9 @@
</span><span class="cx"> template<> void JSTestLegacyFactoryFunctionDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestLegacyFactoryFunction::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestLegacyFactoryFunction"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestLegacyFactoryFunction"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(1), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -146,7 +148,9 @@
</span><span class="cx"> template<> void JSTestLegacyFactoryFunctionLegacyFactoryFunction::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestLegacyFactoryFunction::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "Audio"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "Audio"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(1), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestLegacyOverrideBuiltInscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -103,7 +103,9 @@
</span><span class="cx"> template<> void JSTestLegacyOverrideBuiltInsDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestLegacyOverrideBuiltIns::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestLegacyOverrideBuiltIns"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestLegacyOverrideBuiltIns"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestMapLikecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLike.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLike.cpp  2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLike.cpp     2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -112,7 +112,9 @@
</span><span class="cx"> template<> void JSTestMapLikeDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestMapLike::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestMapLike"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestMapLike"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestMapLikeWithOverriddenOperationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp  2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp     2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -116,7 +116,9 @@
</span><span class="cx"> template<> void JSTestMapLikeWithOverriddenOperationsDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestMapLikeWithOverriddenOperations::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestMapLikeWithOverriddenOperations"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestMapLikeWithOverriddenOperations"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedAndIndexedSetterNoIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp        2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp   2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -96,7 +96,9 @@
</span><span class="cx"> template<> void JSTestNamedAndIndexedSetterNoIdentifierDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedAndIndexedSetterNoIdentifier::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedAndIndexedSetterNoIdentifier"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedAndIndexedSetterNoIdentifier"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedAndIndexedSetterThrowingExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -96,7 +96,9 @@
</span><span class="cx"> template<> void JSTestNamedAndIndexedSetterThrowingExceptionDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedAndIndexedSetterThrowingException::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedAndIndexedSetterThrowingException"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedAndIndexedSetterThrowingException"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedAndIndexedSetterWithIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp      2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp 2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -105,7 +105,9 @@
</span><span class="cx"> template<> void JSTestNamedAndIndexedSetterWithIdentifierDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedAndIndexedSetterWithIdentifier::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedAndIndexedSetterWithIdentifier"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedAndIndexedSetterWithIdentifier"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterNoIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp 2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp    2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -95,7 +95,9 @@
</span><span class="cx"> template<> void JSTestNamedDeleterNoIdentifierDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedDeleterNoIdentifier::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedDeleterNoIdentifier"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedDeleterNoIdentifier"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterThrowingExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -95,7 +95,9 @@
</span><span class="cx"> template<> void JSTestNamedDeleterThrowingExceptionDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedDeleterThrowingException::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedDeleterThrowingException"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedDeleterThrowingException"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterWithIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp       2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp  2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -102,7 +102,9 @@
</span><span class="cx"> template<> void JSTestNamedDeleterWithIdentifierDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedDeleterWithIdentifier::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedDeleterWithIdentifier"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedDeleterWithIdentifier"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedDeleterWithIndexedGettercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -96,7 +96,9 @@
</span><span class="cx"> template<> void JSTestNamedDeleterWithIndexedGetterDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedDeleterWithIndexedGetter::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedDeleterWithIndexedGetter"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedDeleterWithIndexedGetter"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedGetterCallWithcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp      2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp 2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -95,7 +95,9 @@
</span><span class="cx"> template<> void JSTestNamedGetterCallWithDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedGetterCallWith::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedGetterCallWith"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedGetterCallWith"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedGetterNoIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp  2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp     2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -95,7 +95,9 @@
</span><span class="cx"> template<> void JSTestNamedGetterNoIdentifierDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedGetterNoIdentifier::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedGetterNoIdentifier"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedGetterNoIdentifier"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedGetterWithIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp        2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp   2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -100,7 +100,9 @@
</span><span class="cx"> template<> void JSTestNamedGetterWithIdentifierDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedGetterWithIdentifier::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedGetterWithIdentifier"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedGetterWithIdentifier"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterNoIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp  2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp     2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -95,7 +95,9 @@
</span><span class="cx"> template<> void JSTestNamedSetterNoIdentifierDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedSetterNoIdentifier::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedSetterNoIdentifier"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedSetterNoIdentifier"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterThrowingExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp     2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp        2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -95,7 +95,9 @@
</span><span class="cx"> template<> void JSTestNamedSetterThrowingExceptionDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedSetterThrowingException::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedSetterThrowingException"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedSetterThrowingException"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithIdentifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp        2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp   2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -102,7 +102,9 @@
</span><span class="cx"> template<> void JSTestNamedSetterWithIdentifierDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedSetterWithIdentifier::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedSetterWithIdentifier"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedSetterWithIdentifier"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithIndexedGettercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp     2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp        2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -105,7 +105,9 @@
</span><span class="cx"> template<> void JSTestNamedSetterWithIndexedGetterDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedSetterWithIndexedGetter::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedSetterWithIndexedGetter"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedSetterWithIndexedGetter"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithIndexedGetterAndSettercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -105,7 +105,9 @@
</span><span class="cx"> template<> void JSTestNamedSetterWithIndexedGetterAndSetterDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedSetterWithIndexedGetterAndSetter::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedSetterWithIndexedGetterAndSetter"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedSetterWithIndexedGetterAndSetter"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithLegacyOverrideBuiltInscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -95,7 +95,9 @@
</span><span class="cx"> template<> void JSTestNamedSetterWithLegacyOverrideBuiltInsDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedSetterWithLegacyOverrideBuiltIns::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedSetterWithLegacyOverrideBuiltIns"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedSetterWithLegacyOverrideBuiltIns"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithLegacyUnforgeablePropertiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp       2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp  2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -121,7 +121,9 @@
</span><span class="cx"> template<> void JSTestNamedSetterWithLegacyUnforgeablePropertiesDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedSetterWithLegacyUnforgeableProperties::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedSetterWithLegacyUnforgeableProperties"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedSetterWithLegacyUnforgeableProperties"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltInscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp      2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp 2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -121,7 +121,9 @@
</span><span class="cx"> template<> void JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltInsDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp     2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -141,7 +141,9 @@
</span><span class="cx"> template<> void JSTestNodeDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestNode::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestNode"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestNode"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp      2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp 2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -2033,7 +2033,9 @@
</span><span class="cx"> template<> void JSTestObjDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestObj::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestObject"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestObject"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(2), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx">     reifyStaticProperties(vm, JSTestObj::info(), JSTestObjConstructorTableValues, *this);
</span><span class="cx"> #if ENABLE(TEST_FEATURE)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOperationConditionalcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOperationConditional.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOperationConditional.cpp     2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOperationConditional.cpp        2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -111,7 +111,9 @@
</span><span class="cx"> template<> void JSTestOperationConditionalDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestOperationConditional::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestOperationConditional"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestOperationConditional"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -218,7 +218,9 @@
</span><span class="cx"> template<> void JSTestOverloadedConstructorsDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestOverloadedConstructors::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestOverloadedConstructors"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestOverloadedConstructors"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorsWithSequencecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp       2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp  2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -161,7 +161,9 @@
</span><span class="cx"> template<> void JSTestOverloadedConstructorsWithSequenceDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestOverloadedConstructorsWithSequence::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestOverloadedConstructorsWithSequence"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestOverloadedConstructorsWithSequence"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestPluginInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPluginInterface.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPluginInterface.cpp  2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPluginInterface.cpp     2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -94,7 +94,9 @@
</span><span class="cx"> template<> void JSTestPluginInterfaceDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestPluginInterface::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestPluginInterface"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestPluginInterface"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestPromiseRejectionEventcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -202,7 +202,9 @@
</span><span class="cx"> template<> void JSTestPromiseRejectionEventDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestPromiseRejectionEvent::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestPromiseRejectionEvent"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestPromiseRejectionEvent"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(2), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestReadOnlyMapLikecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp  2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp     2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -109,7 +109,9 @@
</span><span class="cx"> template<> void JSTestReadOnlyMapLikeDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestReadOnlyMapLike::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestReadOnlyMapLike"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestReadOnlyMapLike"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestReadOnlySetLikecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp  2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp     2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -108,7 +108,9 @@
</span><span class="cx"> template<> void JSTestReadOnlySetLikeDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestReadOnlySetLike::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestReadOnlySetLike"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestReadOnlySetLike"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestReportExtraMemoryCostcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -93,7 +93,9 @@
</span><span class="cx"> template<> void JSTestReportExtraMemoryCostDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestReportExtraMemoryCost::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestReportExtraMemoryCost"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestReportExtraMemoryCost"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -119,7 +119,9 @@
</span><span class="cx"> template<> void JSTestSerializedScriptValueInterfaceDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestSerializedScriptValueInterface::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestSerializedScriptValueInterface"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestSerializedScriptValueInterface"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSetLikecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLike.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLike.cpp  2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLike.cpp     2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -111,7 +111,9 @@
</span><span class="cx"> template<> void JSTestSetLikeDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestSetLike::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestSetLike"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestSetLike"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSetLikeWithOverriddenOperationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp  2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp     2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -115,7 +115,9 @@
</span><span class="cx"> template<> void JSTestSetLikeWithOverriddenOperationsDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestSetLikeWithOverriddenOperations::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestSetLikeWithOverriddenOperations"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestSetLikeWithOverriddenOperations"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStringifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifier.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifier.cpp      2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifier.cpp 2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -99,7 +99,9 @@
</span><span class="cx"> template<> void JSTestStringifierDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestStringifier::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestStringifier"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestStringifier"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStringifierAnonymousOperationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -99,7 +99,9 @@
</span><span class="cx"> template<> void JSTestStringifierAnonymousOperationDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestStringifierAnonymousOperation::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestStringifierAnonymousOperation"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestStringifierAnonymousOperation"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStringifierNamedOperationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp        2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp   2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -100,7 +100,9 @@
</span><span class="cx"> template<> void JSTestStringifierNamedOperationDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestStringifierNamedOperation::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestStringifierNamedOperation"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestStringifierNamedOperation"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStringifierOperationImplementedAscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp        2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp   2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -100,7 +100,9 @@
</span><span class="cx"> template<> void JSTestStringifierOperationImplementedAsDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestStringifierOperationImplementedAs::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestStringifierOperationImplementedAs"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestStringifierOperationImplementedAs"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStringifierOperationNamedToStringcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp        2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp   2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -99,7 +99,9 @@
</span><span class="cx"> template<> void JSTestStringifierOperationNamedToStringDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestStringifierOperationNamedToString::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestStringifierOperationNamedToString"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestStringifierOperationNamedToString"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStringifierReadOnlyAttributecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp     2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp        2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -101,7 +101,9 @@
</span><span class="cx"> template<> void JSTestStringifierReadOnlyAttributeDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestStringifierReadOnlyAttribute::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestStringifierReadOnlyAttribute"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestStringifierReadOnlyAttribute"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestStringifierReadWriteAttributecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -102,7 +102,9 @@
</span><span class="cx"> template<> void JSTestStringifierReadWriteAttributeDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestStringifierReadWriteAttribute::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestStringifierReadWriteAttribute"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestStringifierReadWriteAttribute"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp 2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp    2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -195,7 +195,9 @@
</span><span class="cx"> template<> void JSTestTypedefsDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSTestTypedefs::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "TestTypedefs"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "TestTypedefs"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(3), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx">     reifyStaticProperties(vm, JSTestTypedefs::info(), JSTestTypedefsConstructorTableValues, *this);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSWorkerGlobalScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSWorkerGlobalScope.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSWorkerGlobalScope.cpp    2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSWorkerGlobalScope.cpp       2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -108,7 +108,9 @@
</span><span class="cx"> template<> void JSWorkerGlobalScopeDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSWorkerGlobalScope::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "WorkerGlobalScope"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "WorkerGlobalScope"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSWorkletGlobalScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSWorkletGlobalScope.cpp (282863 => 282864)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSWorkletGlobalScope.cpp   2021-09-22 04:06:11 UTC (rev 282863)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSWorkletGlobalScope.cpp      2021-09-22 04:55:56 UTC (rev 282864)
</span><span class="lines">@@ -77,7 +77,9 @@
</span><span class="cx"> template<> void JSWorkletGlobalScopeDOMConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
</span><span class="cx"> {
</span><span class="cx">     putDirect(vm, vm.propertyNames->prototype, JSWorkletGlobalScope::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><del>-    putDirect(vm, vm.propertyNames->name, jsNontrivialString(vm, "WorkletGlobalScope"_s), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</del><ins>+    JSString* nameString = jsNontrivialString(vm, "WorkletGlobalScope"_s);
+    m_originalName.set(vm, this, nameString);
+    putDirect(vm, vm.propertyNames->name, nameString, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</ins><span class="cx">     putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>