Bug 940088 - Fix assumption that Ion stays enabled across warmup in ForkJoin. (r=nmatsakis)
authorShu-yu Guo <shu@rfrn.org>
Thu, 05 Dec 2013 15:51:55 -0800
changeset 173791 c2fa44046af3196a47a1aab269a9d2559b563f70
parent 173790 50eb1f7c8585219dc2185bf777c672f4f48990d1
child 173792 3d670ed9debfb4b771dbba1df6cfe2a33dceee58
push id3224
push userlsblakk@mozilla.com
push dateTue, 04 Feb 2014 01:06:49 +0000
treeherdermozilla-beta@60c04d0987f1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersnmatsakis
bugs940088
milestone28.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 940088 - Fix assumption that Ion stays enabled across warmup in ForkJoin. (r=nmatsakis)
js/src/vm/ForkJoin.cpp
--- a/js/src/vm/ForkJoin.cpp
+++ b/js/src/vm/ForkJoin.cpp
@@ -150,19 +150,19 @@ js::ParallelTestsShouldPass(JSContext *c
 // All configurations
 //
 // Some code that is shared between degenerate and parallel configurations.
 
 static bool
 ExecuteSequentially(JSContext *cx, HandleValue funVal, bool *complete)
 {
     uint32_t numSlices = ForkJoinSlices(cx);
-    FastInvokeGuard fig(cx, funVal);
     bool allComplete = true;
     for (uint32_t i = 0; i < numSlices; i++) {
+        FastInvokeGuard fig(cx, funVal);
         InvokeArgs &args = fig.args();
         if (!args.init(3))
             return false;
         args.setCallee(funVal);
         args.setThis(UndefinedValue());
         args[0].setInt32(i);
         args[1].setInt32(numSlices);
         args[2].setBoolean(!!cx->runtime()->parallelWarmup);