<!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>[208692] trunk</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/208692">208692</a></dd>
<dt>Author</dt> <dd>mark.lam@apple.com</dd>
<dt>Date</dt> <dd>2016-11-14 10:27:41 -0800 (Mon, 14 Nov 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Enhance run-jsc-stress-test script to allow optional test specific options to be added for all test run configurations.
https://bugs.webkit.org/show_bug.cgi?id=164695

Reviewed by Keith Miller.

JSTests:

Replace use of runMisc* test run configurations with equivalents.

* stress/licm-no-pre-header-nested.js:
* stress/licm-no-pre-header.js:
* stress/licm-pre-header-cannot-exit-nested.js:
* stress/licm-pre-header-cannot-exit.js:
* stress/make-dictionary-repatch.js:
* stress/retry-cache-later.js:
* stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js:
* stress/slow-path-generator-updating-current-node-dfg.js:
* stress/unshift-array-storage.js:

Tools:

This gives us more flexibility when specific tests needs to enable special JSC
options in order to exercise specific code paths to be tested.  It also saves us
from having to create duplicate test run configurations e.g. runMiscFTLNoCJITTest.
We can now just use runFTLNoCJIT in its place.

Also replaced the ifJSCArgIsntProvidedAreWeReleaseBuild variable with $buildType
so that we have the ability to skip certain tests for release or debug builds.
This will be needed in the upcoming patch for https://webkit.org/b/155145.

* Scripts/run-jsc-stress-tests:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkJSTestsChangeLog">trunk/JSTests/ChangeLog</a></li>
<li><a href="#trunkJSTestsstresslicmnopreheadernestedjs">trunk/JSTests/stress/licm-no-pre-header-nested.js</a></li>
<li><a href="#trunkJSTestsstresslicmnopreheaderjs">trunk/JSTests/stress/licm-no-pre-header.js</a></li>
<li><a href="#trunkJSTestsstresslicmpreheadercannotexitnestedjs">trunk/JSTests/stress/licm-pre-header-cannot-exit-nested.js</a></li>
<li><a href="#trunkJSTestsstresslicmpreheadercannotexitjs">trunk/JSTests/stress/licm-pre-header-cannot-exit.js</a></li>
<li><a href="#trunkJSTestsstressmakedictionaryrepatchjs">trunk/JSTests/stress/make-dictionary-repatch.js</a></li>
<li><a href="#trunkJSTestsstressretrycachelaterjs">trunk/JSTests/stress/retry-cache-later.js</a></li>
<li><a href="#trunkJSTestsstressshadowchickenreadingfromscopeafterftlosrexitbytecodelivenessjs">trunk/JSTests/stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js</a></li>
<li><a href="#trunkJSTestsstressslowpathgeneratorupdatingcurrentnodedfgjs">trunk/JSTests/stress/slow-path-generator-updating-current-node-dfg.js</a></li>
<li><a href="#trunkJSTestsstressunshiftarraystoragejs">trunk/JSTests/stress/unshift-array-storage.js</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsScriptsrunjscstresstests">trunk/Tools/Scripts/run-jsc-stress-tests</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkJSTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/ChangeLog (208691 => 208692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/ChangeLog        2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/ChangeLog        2016-11-14 18:27:41 UTC (rev 208692)
</span><span class="lines">@@ -1,3 +1,22 @@
</span><ins>+2016-11-14  Mark Lam  &lt;mark.lam@apple.com&gt;
+
+        Enhance run-jsc-stress-test script to allow optional test specific options to be added for all test run configurations.
+        https://bugs.webkit.org/show_bug.cgi?id=164695
+
+        Reviewed by Keith Miller.
+
+        Replace use of runMisc* test run configurations with equivalents.
+
+        * stress/licm-no-pre-header-nested.js:
+        * stress/licm-no-pre-header.js:
+        * stress/licm-pre-header-cannot-exit-nested.js:
+        * stress/licm-pre-header-cannot-exit.js:
+        * stress/make-dictionary-repatch.js:
+        * stress/retry-cache-later.js:
+        * stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js:
+        * stress/slow-path-generator-updating-current-node-dfg.js:
+        * stress/unshift-array-storage.js:
+
</ins><span class="cx"> 2016-11-11  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         test262: DataView with explicit undefined byteLength should be the same as it not being present
</span></span></pre></div>
<a id="trunkJSTestsstresslicmnopreheadernestedjs"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/stress/licm-no-pre-header-nested.js (208691 => 208692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/licm-no-pre-header-nested.js        2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/licm-no-pre-header-nested.js        2016-11-14 18:27:41 UTC (rev 208692)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-//@ runMiscFTLNoCJITTest(&quot;--createPreHeaders=false&quot;)
</del><ins>+//@ runFTLNoCJIT(&quot;--createPreHeaders=false&quot;)
</ins><span class="cx"> 
</span><span class="cx"> function foo(array, y) {
</span><span class="cx">     var x = 0;
</span></span></pre></div>
<a id="trunkJSTestsstresslicmnopreheaderjs"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/stress/licm-no-pre-header.js (208691 => 208692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/licm-no-pre-header.js        2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/licm-no-pre-header.js        2016-11-14 18:27:41 UTC (rev 208692)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-//@ runMiscFTLNoCJITTest(&quot;--createPreHeaders=false&quot;)
</del><ins>+//@ runFTLNoCJIT(&quot;--createPreHeaders=false&quot;)
</ins><span class="cx"> 
</span><span class="cx"> function foo(array) {
</span><span class="cx">     var result = 0;
</span></span></pre></div>
<a id="trunkJSTestsstresslicmpreheadercannotexitnestedjs"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/stress/licm-pre-header-cannot-exit-nested.js (208691 => 208692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/licm-pre-header-cannot-exit-nested.js        2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/licm-pre-header-cannot-exit-nested.js        2016-11-14 18:27:41 UTC (rev 208692)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-//@ runMiscFTLNoCJITTest(&quot;--createPreHeaders=false&quot;)
</del><ins>+//@ runFTLNoCJIT(&quot;--createPreHeaders=false&quot;)
</ins><span class="cx"> 
</span><span class="cx"> function foo(object, predicate) {
</span><span class="cx">     for (var j = 0; j &lt; 10; ++j) {
</span></span></pre></div>
<a id="trunkJSTestsstresslicmpreheadercannotexitjs"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/stress/licm-pre-header-cannot-exit.js (208691 => 208692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/licm-pre-header-cannot-exit.js        2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/licm-pre-header-cannot-exit.js        2016-11-14 18:27:41 UTC (rev 208692)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-//@ runMiscFTLNoCJITTest(&quot;--createPreHeaders=false&quot;)
</del><ins>+//@ runFTLNoCJIT(&quot;--createPreHeaders=false&quot;)
</ins><span class="cx"> 
</span><span class="cx"> function foo(object, predicate) {
</span><span class="cx">     var result = 0;
</span></span></pre></div>
<a id="trunkJSTestsstressmakedictionaryrepatchjs"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/stress/make-dictionary-repatch.js (208691 => 208692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/make-dictionary-repatch.js        2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/make-dictionary-repatch.js        2016-11-14 18:27:41 UTC (rev 208692)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-//@ if $jitTests then runMiscNoCJITTest(&quot;--useDFGJIT=false&quot;, &quot;--useLLInt=false&quot;) else skip end
</del><ins>+//@ if $jitTests then runNoCJIT(&quot;--useDFGJIT=false&quot;, &quot;--useLLInt=false&quot;) else skip end
</ins><span class="cx"> 
</span><span class="cx"> function foo(o) {
</span><span class="cx">     return o.f;
</span></span></pre></div>
<a id="trunkJSTestsstressretrycachelaterjs"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/stress/retry-cache-later.js (208691 => 208692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/retry-cache-later.js        2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/retry-cache-later.js        2016-11-14 18:27:41 UTC (rev 208692)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-//@ runMiscNoCJITTest(&quot;--useLLInt=false&quot;, &quot;--useDFGJIT=false&quot;)
</del><ins>+//@ runNoCJIT(&quot;--useLLInt=false&quot;, &quot;--useDFGJIT=false&quot;)
</ins><span class="cx"> 
</span><span class="cx"> function foo(o) {
</span><span class="cx">     return o.i7;
</span></span></pre></div>
<a id="trunkJSTestsstressshadowchickenreadingfromscopeafterftlosrexitbytecodelivenessjs"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js (208691 => 208692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js        2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js        2016-11-14 18:27:41 UTC (rev 208692)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-//@ runMiscNoCJITTest(&quot;--forceDebuggerBytecodeGeneration=true&quot;, &quot;--alwaysUseShadowChicken=true&quot;)
</del><ins>+//@ runNoCJIT(&quot;--forceDebuggerBytecodeGeneration=true&quot;, &quot;--alwaysUseShadowChicken=true&quot;)
</ins><span class="cx"> 
</span><span class="cx"> &quot;use strict&quot;;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkJSTestsstressslowpathgeneratorupdatingcurrentnodedfgjs"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/stress/slow-path-generator-updating-current-node-dfg.js (208691 => 208692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/slow-path-generator-updating-current-node-dfg.js        2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/slow-path-generator-updating-current-node-dfg.js        2016-11-14 18:27:41 UTC (rev 208692)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-//@ runMiscFTLNoCJITTest(&quot;--deferGCShouldCollectWithProbability=true&quot;, &quot;--deferGCProbability=1.0&quot;)
</del><ins>+//@ runFTLNoCJIT(&quot;--deferGCShouldCollectWithProbability=true&quot;, &quot;--deferGCProbability=1.0&quot;)
</ins><span class="cx"> 
</span><span class="cx"> function foo(a) {
</span><span class="cx">     return a.push(25);
</span></span></pre></div>
<a id="trunkJSTestsstressunshiftarraystoragejs"></a>
<div class="modfile"><h4>Modified: trunk/JSTests/stress/unshift-array-storage.js (208691 => 208692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JSTests/stress/unshift-array-storage.js        2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/JSTests/stress/unshift-array-storage.js        2016-11-14 18:27:41 UTC (rev 208692)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-//@ runMiscFTLNoCJITTest(&quot;--scribbleFreeCells=true&quot;, &quot;--deferGCShouldCollectWithProbability=true&quot;, &quot;--deferGCProbability=1&quot;)
</del><ins>+//@ runFTLNoCJIT(&quot;--scribbleFreeCells=true&quot;, &quot;--deferGCShouldCollectWithProbability=true&quot;, &quot;--deferGCProbability=1&quot;)
</ins><span class="cx"> 
</span><span class="cx"> // Create some array storage.
</span><span class="cx"> var array = [];
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (208691 => 208692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/Tools/ChangeLog        2016-11-14 18:27:41 UTC (rev 208692)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2016-11-14  Mark Lam  &lt;mark.lam@apple.com&gt;
+
+        Enhance run-jsc-stress-test script to allow optional test specific options to be added for all test run configurations.
+        https://bugs.webkit.org/show_bug.cgi?id=164695
+
+        Reviewed by Keith Miller.
+
+        This gives us more flexibility when specific tests needs to enable special JSC
+        options in order to exercise specific code paths to be tested.  It also saves us
+        from having to create duplicate test run configurations e.g. runMiscFTLNoCJITTest.
+        We can now just use runFTLNoCJIT in its place.
+
+        Also replaced the ifJSCArgIsntProvidedAreWeReleaseBuild variable with $buildType
+        so that we have the ability to skip certain tests for release or debug builds.
+        This will be needed in the upcoming patch for https://webkit.org/b/155145.
+
+        * Scripts/run-jsc-stress-tests:
+
</ins><span class="cx"> 2016-11-14  Joanmarie Diggs  &lt;jdiggs@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         AX: [ATK] Expose STATE_SINGLE_LINE and STATE_MULTI_LINE for ARIA searchbox role
</span></span></pre></div>
<a id="trunkToolsScriptsrunjscstresstests"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/run-jsc-stress-tests (208691 => 208692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/run-jsc-stress-tests        2016-11-14 18:20:35 UTC (rev 208691)
+++ trunk/Tools/Scripts/run-jsc-stress-tests        2016-11-14 18:27:41 UTC (rev 208692)
</span><span class="lines">@@ -117,6 +117,7 @@
</span><span class="cx"> $filter = nil
</span><span class="cx"> $envVars = []
</span><span class="cx"> $quickMode = false
</span><ins>+$buildType = &quot;release&quot;
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def usage
</span><span class="lines">@@ -153,7 +154,6 @@
</span><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> jscArg = nil
</span><del>-ifJSCArgIsntProvidedAreWeReleaseBuild = true
</del><span class="cx"> 
</span><span class="cx"> GetoptLong.new(['--help', '-h', GetoptLong::NO_ARGUMENT],
</span><span class="cx">                ['--jsc', '-j', GetoptLong::REQUIRED_ARGUMENT],
</span><span class="lines">@@ -226,9 +226,9 @@
</span><span class="cx">     when '--quick'
</span><span class="cx">         $quickMode = true
</span><span class="cx">     when '--debug'
</span><del>-        ifJSCArgIsntProvidedAreWeReleaseBuild = false
</del><ins>+        $buildType = &quot;debug&quot;
</ins><span class="cx">     when '--release'
</span><del>-        ifJSCArgIsntProvidedAreWeReleaseBuild = true
</del><ins>+        $buildType = &quot;release&quot;
</ins><span class="cx">     end
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -252,7 +252,7 @@
</span><span class="cx"> unless jscArg
</span><span class="cx">     # If we're not provided a JSC path, try to come up with a sensible JSC path automagically.
</span><span class="cx">     command = SCRIPTS_PATH.join(&quot;webkit-build-directory&quot;).to_s
</span><del>-    command += ifJSCArgIsntProvidedAreWeReleaseBuild ? &quot; --release&quot; : &quot; --debug&quot;
</del><ins>+    command += ($buildType == &quot;release&quot;) ? &quot; --release&quot; : &quot; --debug&quot;
</ins><span class="cx">     command += &quot; --executablePath&quot;
</span><span class="cx"> 
</span><span class="cx">     output = `#{command}`.split(&quot;\n&quot;)
</span><span class="lines">@@ -791,117 +791,113 @@
</span><span class="cx">     addRunCommand(kind, [pathToVM.to_s] + BASE_OPTIONS + options + [$benchmark.to_s], silentOutputHandler, simpleErrorHandler)
</span><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runNoFTL
-    run(&quot;no-ftl&quot;)
</del><ins>+def runNoFTL(*optionalTestSpecificOptions)
+    run(&quot;no-ftl&quot;, *optionalTestSpecificOptions)
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runWithRAMSize(size)
-    run(&quot;ram-size-#{size}&quot;, &quot;--forceRAMSize=#{size}&quot;)
</del><ins>+def runWithRAMSize(size, *optionalTestSpecificOptions)
+    run(&quot;ram-size-#{size}&quot;, &quot;--forceRAMSize=#{size}&quot;, *optionalTestSpecificOptions)
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runOneLargeHeap
</del><ins>+def runOneLargeHeap(*optionalTestSpecificOptions)
</ins><span class="cx">     if $memoryLimited
</span><span class="cx">         $didAddRunCommand = true
</span><span class="cx">         puts &quot;Skipping #{$collectionName}/#{$benchmark}&quot;
</span><span class="cx">     else
</span><del>-        run(&quot;default&quot;)
</del><ins>+        run(&quot;default&quot;, *optionalTestSpecificOptions)
</ins><span class="cx">     end
</span><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runNoJIT
-    run(&quot;no-jit&quot;, &quot;--useJIT=false&quot;)
</del><ins>+def runNoJIT(*optionalTestSpecificOptions)
+    run(&quot;no-jit&quot;, &quot;--useJIT=false&quot;, *optionalTestSpecificOptions)
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runNoLLInt
</del><ins>+def runNoLLInt(*optionalTestSpecificOptions)
</ins><span class="cx">     if $jitTests
</span><del>-        run(&quot;no-llint&quot;, &quot;--useLLInt=false&quot;)
</del><ins>+        run(&quot;no-llint&quot;, &quot;--useLLInt=false&quot;, *optionalTestSpecificOptions)
</ins><span class="cx">     end
</span><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runNoCJITValidate
-    run(&quot;no-cjit&quot;, &quot;--validateBytecode=true&quot;, &quot;--validateGraph=true&quot;, *NO_CJIT_OPTIONS)
</del><ins>+def runNoCJITValidate(*optionalTestSpecificOptions)
+    run(&quot;no-cjit&quot;, &quot;--validateBytecode=true&quot;, &quot;--validateGraph=true&quot;, *(NO_CJIT_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runNoCJITValidatePhases
-    run(&quot;no-cjit-validate-phases&quot;, &quot;--validateBytecode=true&quot;, &quot;--validateGraphAtEachPhase=true&quot;, &quot;--useSourceProviderCache=false&quot;, *NO_CJIT_OPTIONS)
</del><ins>+def runNoCJITValidatePhases(*optionalTestSpecificOptions)
+    run(&quot;no-cjit-validate-phases&quot;, &quot;--validateBytecode=true&quot;, &quot;--validateGraphAtEachPhase=true&quot;, &quot;--useSourceProviderCache=false&quot;, *(NO_CJIT_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runDefault
-    run(&quot;default&quot;, *FTL_OPTIONS)
</del><ins>+def runDefault(*optionalTestSpecificOptions)
+    run(&quot;default&quot;, *(FTL_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runFTLNoCJIT
-    run(&quot;ftl-no-cjit&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</del><ins>+def runFTLNoCJIT(*optionalTestSpecificOptions)
+    run(&quot;misc-ftl-no-cjit&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runFTLNoCJITValidate
-    run(&quot;ftl-no-cjit-validate-sampling-profiler&quot;, &quot;--validateGraph=true&quot;, &quot;--useSamplingProfiler=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</del><ins>+def runFTLNoCJITValidate(*optionalTestSpecificOptions)
+    run(&quot;ftl-no-cjit-validate-sampling-profiler&quot;, &quot;--validateGraph=true&quot;, &quot;--useSamplingProfiler=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runFTLNoCJITNoPutStackValidate
-    run(&quot;ftl-no-cjit-no-put-stack-validate&quot;, &quot;--validateGraph=true&quot;, &quot;--usePutStackSinking=false&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</del><ins>+def runFTLNoCJITNoPutStackValidate(*optionalTestSpecificOptions)
+    run(&quot;ftl-no-cjit-no-put-stack-validate&quot;, &quot;--validateGraph=true&quot;, &quot;--usePutStackSinking=false&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runFTLNoCJITNoInlineValidate
-    run(&quot;ftl-no-cjit-no-inline-validate&quot;, &quot;--validateGraph=true&quot;, &quot;--maximumInliningDepth=1&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</del><ins>+def runFTLNoCJITNoInlineValidate(*optionalTestSpecificOptions)
+    run(&quot;ftl-no-cjit-no-inline-validate&quot;, &quot;--validateGraph=true&quot;, &quot;--maximumInliningDepth=1&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runFTLNoCJITOSRValidation
-    run(&quot;ftl-no-cjit-osr-validation&quot;, &quot;--validateFTLOSRExitLiveness=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</del><ins>+def runFTLNoCJITOSRValidation(*optionalTestSpecificOptions)
+    run(&quot;ftl-no-cjit-osr-validation&quot;, &quot;--validateFTLOSRExitLiveness=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runDFGEager
-    run(&quot;dfg-eager&quot;, *EAGER_OPTIONS)
</del><ins>+def runDFGEager(*optionalTestSpecificOptions)
+    run(&quot;dfg-eager&quot;, *(EAGER_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runDFGEagerNoCJITValidate
-    run(&quot;dfg-eager-no-cjit-validate&quot;, &quot;--validateGraph=true&quot;, *(NO_CJIT_OPTIONS + EAGER_OPTIONS))
</del><ins>+def runDFGEagerNoCJITValidate(*optionalTestSpecificOptions)
+    run(&quot;dfg-eager-no-cjit-validate&quot;, &quot;--validateGraph=true&quot;, *(NO_CJIT_OPTIONS + EAGER_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runFTLEager
-    run(&quot;ftl-eager&quot;, *(FTL_OPTIONS + EAGER_OPTIONS))
</del><ins>+def runFTLEager(*optionalTestSpecificOptions)
+    run(&quot;ftl-eager&quot;, *(FTL_OPTIONS + EAGER_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runFTLEagerNoCJITValidate
-    run(&quot;ftl-eager-no-cjit&quot;, &quot;--validateGraph=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS))
</del><ins>+def runFTLEagerNoCJITValidate(*optionalTestSpecificOptions)
+    run(&quot;ftl-eager-no-cjit&quot;, &quot;--validateGraph=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runFTLEagerNoCJITOSRValidation
-    run(&quot;ftl-eager-no-cjit-osr-validation&quot;, &quot;--validateFTLOSRExitLiveness=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS))
</del><ins>+def runFTLEagerNoCJITOSRValidation(*optionalTestSpecificOptions)
+    run(&quot;ftl-eager-no-cjit-osr-validation&quot;, &quot;--validateFTLOSRExitLiveness=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runNoCJITNoASO
-    run(&quot;no-cjit-no-aso&quot;, &quot;--useArchitectureSpecificOptimizations=false&quot;, *NO_CJIT_OPTIONS)
</del><ins>+def runNoCJITNoASO(*optionalTestSpecificOptions)
+    run(&quot;no-cjit-no-aso&quot;, &quot;--useArchitectureSpecificOptimizations=false&quot;, *(NO_CJIT_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runNoCJITNoAccessInlining
-    run(&quot;no-cjit-no-access-inlining&quot;, &quot;--useAccessInlining=false&quot;, *NO_CJIT_OPTIONS)
</del><ins>+def runNoCJITNoAccessInlining(*optionalTestSpecificOptions)
+    run(&quot;no-cjit-no-access-inlining&quot;, &quot;--useAccessInlining=false&quot;, *(NO_CJIT_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runFTLNoCJITNoAccessInlining
-    run(&quot;ftl-no-cjit-no-access-inlining&quot;, &quot;--useAccessInlining=false&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</del><ins>+def runFTLNoCJITNoAccessInlining(*optionalTestSpecificOptions)
+    run(&quot;ftl-no-cjit-no-access-inlining&quot;, &quot;--useAccessInlining=false&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runFTLNoCJITSmallPool
-    run(&quot;ftl-no-cjit-small-pool&quot;, &quot;--jitMemoryReservationSize=50000&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</del><ins>+def runFTLNoCJITSmallPool(*optionalTestSpecificOptions)
+    run(&quot;ftl-no-cjit-small-pool&quot;, &quot;--jitMemoryReservationSize=50000&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runMiscNoCJITTest(*options)
-    run(&quot;misc-no-cjit&quot;, *(NO_CJIT_OPTIONS + options))
</del><ins>+def runNoCJIT(*optionalTestSpecificOptions)
+    run(&quot;no-cjit&quot;, *(NO_CJIT_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runMiscFTLNoCJITTest(*options)
-    run(&quot;misc-ftl-no-cjit&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + options))
</del><ins>+def runDFGMaximalFlushPhase(*optionalTestSpecificOptions)
+    run(&quot;dfg-maximal-flush-validate-no-cjit&quot;, &quot;--forceCodeBlockToJettisonDueToOldAge=true&quot;, &quot;--validateGraph=true&quot;, &quot;--useMaximalFlushInsertionPhase=true&quot;, *(NO_CJIT_OPTIONS + optionalTestSpecificOptions))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runDFGMaximalFlushPhase
-    run(&quot;dfg-maximal-flush-validate-no-cjit&quot;, &quot;--forceCodeBlockToJettisonDueToOldAge=true&quot;, &quot;--validateGraph=true&quot;, &quot;--useMaximalFlushInsertionPhase=true&quot;, *NO_CJIT_OPTIONS)
</del><ins>+def runShadowChicken(*optionalTestSpecificOptions)
+    run(&quot;shadow-chicken&quot;, &quot;--useDFGJIT=false&quot;, &quot;--alwaysUseShadowChicken=true&quot;, *optionalTestSpecificOptions)
</ins><span class="cx"> end
</span><span class="cx"> 
</span><del>-def runShadowChicken
-    run(&quot;shadow-chicken&quot;, &quot;--useDFGJIT=false&quot;, &quot;--alwaysUseShadowChicken=true&quot;)
-end
-
</del><span class="cx"> def defaultRun
</span><span class="cx">     if $quickMode
</span><span class="cx">         defaultQuickRun
</span></span></pre>
</div>
</div>

</body>
</html>