<!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>[210507] trunk/Source/WebCore</title>
</head>
<body>

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

<h3>Log Message</h3>
<pre>REGRESSION(<a href="http://trac.webkit.org/projects/webkit/changeset/178955">r178955</a>): Touching Settings.in doesn't cause JSInternalSettingsGenerated.cpp to be updated on first build
https://bugs.webkit.org/show_bug.cgi?id=166814

Reviewed by Darin Adler.

Stop using .INTERMEDIATE in DerivedSources.make was it seems to break dependency
chains for some reason. We started using .INTERMEDIATE for scripts that generate
several targets when run a single time. It avoided running the script several
times (once per target) unnecessarily, and fixed issues with parallel builds.

To address the same issue without using .INTERMEDIATE, we now use pattern rules
(i.e. rules that have '%'). As per the documentation [1]:
&quot;Pattern rules may have more than one target. Unlike normal rules, this does not
 act as many different rules with the same prerequisites and recipe. If a pattern
 rule has multiple targets, make knows that the rule’s recipe is responsible for
 making all of the targets. The recipe is executed only once to make all the
 targets&quot;.

 We are therefore solving the same problem as with .INTERMEDIATE. However, I have
 confirmed that using pattern rules does not break dependency chains. For example,
 modifying Settings.in re-generates both InternalSettingsGenerated.idl *and*
 JSInternalSettingsGenerated.cpp.

 [1] https://www.gnu.org/software/make/manual/html_node/Pattern-Intro.html#Pattern-Intro

* DerivedSources.make:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreDerivedSourcesmake">trunk/Source/WebCore/DerivedSources.make</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (210506 => 210507)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2017-01-09 16:31:18 UTC (rev 210506)
+++ trunk/Source/WebCore/ChangeLog        2017-01-09 16:54:59 UTC (rev 210507)
</span><span class="lines">@@ -1,3 +1,32 @@
</span><ins>+2017-01-09  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        REGRESSION(r178955): Touching Settings.in doesn't cause JSInternalSettingsGenerated.cpp to be updated on first build
+        https://bugs.webkit.org/show_bug.cgi?id=166814
+
+        Reviewed by Darin Adler.
+
+        Stop using .INTERMEDIATE in DerivedSources.make was it seems to break dependency
+        chains for some reason. We started using .INTERMEDIATE for scripts that generate
+        several targets when run a single time. It avoided running the script several
+        times (once per target) unnecessarily, and fixed issues with parallel builds.
+
+        To address the same issue without using .INTERMEDIATE, we now use pattern rules
+        (i.e. rules that have '%'). As per the documentation [1]:
+        &quot;Pattern rules may have more than one target. Unlike normal rules, this does not
+         act as many different rules with the same prerequisites and recipe. If a pattern
+         rule has multiple targets, make knows that the rule’s recipe is responsible for
+         making all of the targets. The recipe is executed only once to make all the
+         targets&quot;.
+
+         We are therefore solving the same problem as with .INTERMEDIATE. However, I have
+         confirmed that using pattern rules does not break dependency chains. For example,
+         modifying Settings.in re-generates both InternalSettingsGenerated.idl *and*
+         JSInternalSettingsGenerated.cpp.
+
+         [1] https://www.gnu.org/software/make/manual/html_node/Pattern-Intro.html#Pattern-Intro
+
+        * DerivedSources.make:
+
</ins><span class="cx"> 2017-01-09  Commit Queue  &lt;commit-queue@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r210493 and r210495.
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (210506 => 210507)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make        2017-01-09 16:31:18 UTC (rev 210506)
+++ trunk/Source/WebCore/DerivedSources.make        2017-01-09 16:54:59 UTC (rev 210507)
</span><span class="lines">@@ -954,15 +954,13 @@
</span><span class="cx"> WEBCORE_CSS_VALUE_KEYWORDS_DEFINES := $(FEATURE_DEFINES) $(ADDITIONAL_CSS_VALUE_KEYWORDS_DEFINES)
</span><span class="cx"> WEBCORE_CSS_PROPERTIES_DEFINES := $(FEATURE_DEFINES) $(ADDITIONAL_CSS_PROPERTIES_DEFINES)
</span><span class="cx"> 
</span><del>-CSSPropertyNames.h CSSPropertyNames.cpp StyleBuilder.cpp StylePropertyShorthandFunctions.h StylePropertyShorthandFunctions.cpp : makeprop.intermediate
-.INTERMEDIATE : makeprop.intermediate
-makeprop.intermediate : $(WEBCORE_CSS_PROPERTY_NAMES) css/makeprop.pl $(PLATFORM_FEATURE_DEFINES)
</del><ins>+all : CSSPropertyNames.h CSSPropertyNames.cpp StyleBuilder.cpp StylePropertyShorthandFunctions.h StylePropertyShorthandFunctions.cpp
+CSSPropertyNames%h CSSPropertyNames%cpp StyleBuilder%cpp StylePropertyShorthandFunctions%h StylePropertyShorthandFunctions%cpp : $(WEBCORE_CSS_PROPERTY_NAMES) css/makeprop.pl $(PLATFORM_FEATURE_DEFINES)
</ins><span class="cx">         $(PERL) -pe '' $(WEBCORE_CSS_PROPERTY_NAMES) &gt; CSSProperties.json
</span><span class="cx">         $(PERL) &quot;$(WebCore)/css/makeprop.pl&quot; --defines &quot;$(WEBCORE_CSS_PROPERTIES_DEFINES)&quot;
</span><span class="cx"> 
</span><del>-CSSValueKeywords.h CSSValueKeywords.cpp : makevalues.intermediate
-.INTERMEDIATE : makevalues.intermediate
-makevalues.intermediate : $(WEBCORE_CSS_VALUE_KEYWORDS) css/makevalues.pl bindings/scripts/preprocessor.pm $(PLATFORM_FEATURE_DEFINES)
</del><ins>+all : CSSValueKeywords.h CSSValueKeywords.cpp
+CSSValueKeywords%h CSSValueKeywords%cpp : $(WEBCORE_CSS_VALUE_KEYWORDS) css/makevalues.pl bindings/scripts/preprocessor.pm $(PLATFORM_FEATURE_DEFINES)
</ins><span class="cx">         $(PERL) -pe '' $(WEBCORE_CSS_VALUE_KEYWORDS) &gt; CSSValueKeywords.in
</span><span class="cx">         $(PERL) &quot;$(WebCore)/css/makevalues.pl&quot; --defines &quot;$(WEBCORE_CSS_VALUE_KEYWORDS_DEFINES)&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -1111,9 +1109,8 @@
</span><span class="cx"> 
</span><span class="cx"> # --------
</span><span class="cx"> 
</span><del>-WebKitFontFamilyNames.cpp WebKitFontFamilyNames.h: WebKitFontFamilyMakeNames.intermediate
-.INTERMEDIATE : WebKitFontFamilyMakeNames.intermediate
-WebKitFontFamilyMakeNames.intermediate : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm css/WebKitFontFamilyNames.in
</del><ins>+all : WebKitFontFamilyNames.cpp WebKitFontFamilyNames.h
+WebKitFontFamilyNames%cpp WebKitFontFamilyNames%h: dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm css/WebKitFontFamilyNames.in
</ins><span class="cx">         $(PERL) $&lt; --fonts $(WebCore)/css/WebKitFontFamilyNames.in
</span><span class="cx"> 
</span><span class="cx"> # HTML tag and attribute names
</span><span class="lines">@@ -1154,17 +1151,16 @@
</span><span class="cx">     HTML_FLAGS := $(HTML_FLAGS) ENABLE_ENCRYPTED_MEDIA=1
</span><span class="cx"> endif
</span><span class="cx"> 
</span><del>-JSHTMLElementWrapperFactory.cpp JSHTMLElementWrapperFactory.h HTMLElementFactory.cpp HTMLElementFactory.h HTMLElementTypeHelpers.h HTMLNames.cpp HTMLNames.h : htmlMakeNames.intermediate
-.INTERMEDIATE : htmlMakeNames.intermediate
</del><ins>+all : JSHTMLElementWrapperFactory.cpp JSHTMLElementWrapperFactory.h HTMLElementFactory.cpp HTMLElementFactory.h HTMLElementTypeHelpers.h HTMLNames.cpp HTMLNames.h
</ins><span class="cx"> 
</span><span class="cx"> ifdef HTML_FLAGS
</span><span class="cx"> 
</span><del>-htmlMakeNames.intermediate : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm html/HTMLTagNames.in html/HTMLAttributeNames.in
</del><ins>+JSHTMLElementWrapperFactory%cpp JSHTMLElementWrapperFactory%h HTMLElementFactory%cpp HTMLElementFactory%h HTMLElementTypeHelpers%h HTMLNames%cpp HTMLNames%h : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm html/HTMLTagNames.in html/HTMLAttributeNames.in
</ins><span class="cx">         $(PERL) $&lt; --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory --extraDefines &quot;$(HTML_FLAGS)&quot;
</span><span class="cx"> 
</span><span class="cx"> else
</span><span class="cx"> 
</span><del>-htmlMakeNames.intermediate : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm html/HTMLTagNames.in html/HTMLAttributeNames.in
</del><ins>+JSHTMLElementWrapperFactory%cpp JSHTMLElementWrapperFactory%h HTMLElementFactory%cpp HTMLElementFactory%h HTMLElementTypeHelpers%h HTMLNames%cpp HTMLNames%h : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm html/HTMLTagNames.in html/HTMLAttributeNames.in
</ins><span class="cx">         $(PERL) $&lt; --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory
</span><span class="cx"> 
</span><span class="cx"> endif
</span><span class="lines">@@ -1185,15 +1181,14 @@
</span><span class="cx"> 
</span><span class="cx"> # SVG tag and attribute names (need to pass an extra flag if svg experimental features are enabled)
</span><span class="cx"> 
</span><del>-JSSVGElementWrapperFactory.cpp JSSVGElementWrapperFactory.h SVGElementFactory.cpp SVGElementFactory.h SVGElementTypeHelpers.h SVGNames.cpp SVGNames.h : svgMakeNames.intermediate
-.INTERMEDIATE : svgMakeNames.intermediate
</del><ins>+all : JSSVGElementWrapperFactory.cpp JSSVGElementWrapperFactory.h SVGElementFactory.cpp SVGElementFactory.h SVGElementTypeHelpers.h SVGNames.cpp SVGNames.h
</ins><span class="cx"> 
</span><span class="cx"> ifdef SVG_FLAGS
</span><del>-svgMakeNames.intermediate : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm svg/svgtags.in svg/svgattrs.in
</del><ins>+JSSVGElementWrapperFactory%cpp JSSVGElementWrapperFactory%h SVGElementFactory%cpp SVGElementFactory%h SVGElementTypeHelpers%h SVGNames%cpp SVGNames%h : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm svg/svgtags.in svg/svgattrs.in
</ins><span class="cx">         $(PERL) $&lt; --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --extraDefines &quot;$(SVG_FLAGS)&quot; --factory --wrapperFactory
</span><span class="cx"> else
</span><span class="cx"> 
</span><del>-svgMakeNames.intermediate : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm svg/svgtags.in svg/svgattrs.in
</del><ins>+JSSVGElementWrapperFactory%cpp JSSVGElementWrapperFactory%h SVGElementFactory%cpp SVGElementFactory%h SVGElementTypeHelpers%h SVGNames%cpp SVGNames%h : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm svg/svgtags.in svg/svgattrs.in
</ins><span class="cx">         $(PERL) $&lt; --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --factory --wrapperFactory
</span><span class="cx"> 
</span><span class="cx"> endif
</span><span class="lines">@@ -1207,21 +1202,18 @@
</span><span class="cx"> 
</span><span class="cx"> EVENT_NAMES = EventNames.in $(ADDITIONAL_EVENT_NAMES)
</span><span class="cx"> 
</span><del>-EventFactory.cpp EventHeaders.h EventInterfaces.h : EventFactory.intermediate
-.INTERMEDIATE : EventFactory.intermediate
-EventFactory.intermediate : dom/make_event_factory.pl $(EVENT_NAMES)
</del><ins>+all : EventFactory.cpp EventHeaders.h EventInterfaces.h
+EventFactory%cpp EventHeaders%h EventInterfaces%h : dom/make_event_factory.pl $(EVENT_NAMES)
</ins><span class="cx">         $(PERL) $&lt; $(addprefix --input , $(filter-out $(WebCore)/dom/make_event_factory.pl, $^))
</span><span class="cx"> 
</span><span class="cx"> EVENT_TARGET_FACTORY = EventTargetFactory.in $(ADDITIONAL_EVENT_TARGET_FACTORY)
</span><span class="cx"> 
</span><del>-EventTargetHeaders.h EventTargetInterfaces.h : EventTargetFactory.intermediate
-.INTERMEDIATE : EventTargetFactory.intermediate
-EventTargetFactory.intermediate : dom/make_event_factory.pl $(EVENT_TARGET_FACTORY)
</del><ins>+all : EventTargetHeaders.h EventTargetInterfaces.h
+EventTargetHeaders%h EventTargetInterfaces%h : dom/make_event_factory.pl $(EVENT_TARGET_FACTORY)
</ins><span class="cx">         $(PERL) $&lt; $(addprefix --input , $(filter-out $(WebCore)/dom/make_event_factory.pl, $^))
</span><span class="cx"> 
</span><del>-ExceptionCodeDescription.cpp ExceptionCodeDescription.h ExceptionHeaders.h ExceptionInterfaces.h : MakeDOMExceptions.intermediate
-.INTERMEDIATE : MakeDOMExceptions.intermediate
-MakeDOMExceptions.intermediate : dom/make_dom_exceptions.pl dom/DOMExceptions.in
</del><ins>+all : ExceptionCodeDescription.cpp ExceptionCodeDescription.h ExceptionHeaders.h ExceptionInterfaces.h
+ExceptionCodeDescription%cpp ExceptionCodeDescription%h ExceptionHeaders%h ExceptionInterfaces%h : dom/make_dom_exceptions.pl dom/DOMExceptions.in
</ins><span class="cx">         $(PERL) $&lt; --input $(WebCore)/dom/DOMExceptions.in
</span><span class="cx"> 
</span><span class="cx"> # --------
</span><span class="lines">@@ -1228,9 +1220,8 @@
</span><span class="cx"> 
</span><span class="cx"> # MathML tag and attribute names, and element factory
</span><span class="cx"> 
</span><del>-JSMathMLElementWrapperFactory.cpp JSMathMLElementWrapperFactory.h MathMLElementFactory.cpp MathMLElementFactory.h MathMLElementTypeHelpers.h MathMLNames.cpp MathMLNames.h : mathmlMakeNames.intermediate
-.INTERMEDIATE : mathmlMakeNames.intermediate
-mathmlMakeNames.intermediate : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm mathml/mathtags.in mathml/mathattrs.in
</del><ins>+all : JSMathMLElementWrapperFactory.cpp JSMathMLElementWrapperFactory.h MathMLElementFactory.cpp MathMLElementFactory.h MathMLElementTypeHelpers.h MathMLNames.cpp MathMLNames.h
+JSMathMLElementWrapperFactory%cpp JSMathMLElementWrapperFactory%h MathMLElementFactory%cpp MathMLElementFactory%h MathMLElementTypeHelpers%h MathMLNames%cpp MathMLNames%h : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm mathml/mathtags.in mathml/mathattrs.in
</ins><span class="cx">         $(PERL) $&lt; --tags $(WebCore)/mathml/mathtags.in --attrs $(WebCore)/mathml/mathattrs.in --factory --wrapperFactory
</span><span class="cx"> 
</span><span class="cx"> # --------
</span><span class="lines">@@ -1237,9 +1228,8 @@
</span><span class="cx"> 
</span><span class="cx"> # Internal Settings
</span><span class="cx"> 
</span><del>-InternalSettingsGenerated.idl InternalSettingsGenerated.cpp InternalSettingsGenerated.h SettingsMacros.h : MakeSettings.intermediate
-.INTERMEDIATE : MakeSettings.intermediate
-MakeSettings.intermediate : page/make_settings.pl page/Settings.in
</del><ins>+all : InternalSettingsGenerated.idl InternalSettingsGenerated.cpp InternalSettingsGenerated.h SettingsMacros.h
+InternalSettingsGenerated%idl InternalSettingsGenerated%cpp InternalSettingsGenerated%h SettingsMacros%h : page/make_settings.pl page/Settings.in
</ins><span class="cx">         $(PERL) $&lt; --input $(WebCore)/page/Settings.in
</span><span class="cx"> 
</span><span class="cx"> # --------
</span><span class="lines">@@ -1302,7 +1292,7 @@
</span><span class="cx">         $(PERL) $(WebCore)/bindings/scripts/preprocess-idls.pl --defines &quot;$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT&quot; --idlFilesList $(IDL_FILES_TMP) --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) --windowConstructorsFile $(WINDOW_CONSTRUCTORS_FILE) --workerGlobalScopeConstructorsFile $(WORKERGLOBALSCOPE_CONSTRUCTORS_FILE) --dedicatedWorkerGlobalScopeConstructorsFile $(DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE) --supplementalMakefileDeps $@
</span><span class="cx">         $(DELETE) $(IDL_FILES_TMP)
</span><span class="cx"> 
</span><del>-JS%.h : %.idl $(JS_BINDINGS_SCRIPTS) $(IDL_ATTRIBUTES_FILE) $(WINDOW_CONSTRUCTORS_FILE) $(WORKERGLOBALSCOPE_CONSTRUCTORS_FILE) $(PLATFORM_FEATURE_DEFINES)
</del><ins>+JS%.cpp JS%.h : %.idl $(JS_BINDINGS_SCRIPTS) $(IDL_ATTRIBUTES_FILE) $(WINDOW_CONSTRUCTORS_FILE) $(WORKERGLOBALSCOPE_CONSTRUCTORS_FILE) $(PLATFORM_FEATURE_DEFINES)
</ins><span class="cx">         $(PERL) $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_COMMON_ARGS) --defines &quot;$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT&quot; --generator JS --idlAttributesFile $(IDL_ATTRIBUTES_FILE) --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) $&lt;
</span><span class="cx"> 
</span><span class="cx"> -include $(SUPPLEMENTAL_MAKEFILE_DEPS)
</span></span></pre>
</div>
</div>

</body>
</html>