Bug 1331058 - Fix analysis check in IonBuilder::initEnvironmentChain. r=shu
authorJan de Mooij <jdemooij@mozilla.com>
Sat, 14 Jan 2017 00:12:43 +0100
changeset 374447 0431a0ab907d53646d359ad10507efe7f89dd487
parent 374446 6b5b5d24d97595be2b7a2209877c9296be7bd750
child 374448 b6e44e6e6dc5e3bac77d4c9ec1356a2d6f65473b
push id6996
push userjlorenzo@mozilla.com
push dateMon, 06 Mar 2017 20:48:21 +0000
treeherdermozilla-beta@d89512dab048 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersshu
bugs1331058
milestone53.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 1331058 - Fix analysis check in IonBuilder::initEnvironmentChain. r=shu
js/src/jit/IonBuilder.cpp
--- a/js/src/jit/IonBuilder.cpp
+++ b/js/src/jit/IonBuilder.cpp
@@ -1136,19 +1136,21 @@ IonBuilder::initEnvironmentChain(MDefini
             MCallee* calleeIns = MCallee::New(alloc());
             current->add(calleeIns);
             callee = calleeIns;
         }
         env = MFunctionEnvironment::New(alloc(), callee);
         current->add(env);
 
         // This reproduce what is done in CallObject::createForFunction. Skip
-        // this for analyses, as the script might not have a baseline script
-        // with template objects yet.
-        if (fun->needsSomeEnvironmentObject() && !info().isAnalysis()) {
+        // this for the arguments analysis, as the script might not have a
+        // baseline script with template objects yet.
+        if (fun->needsSomeEnvironmentObject() &&
+            info().analysisMode() != Analysis_ArgumentsUsage)
+        {
             if (fun->needsNamedLambdaEnvironment())
                 env = createNamedLambdaObject(callee, env);
 
             // TODO: Parameter expression-induced extra var environment not
             // yet handled.
             if (fun->needsExtraBodyVarEnvironment())
                 return abort(AbortReason::Disable, "Extra var environment unsupported");