Backed out changeset f3b9f68f9c90 (bug 1182711) for non-unified bustage.
authorRyan VanderMeulen <ryanvm@gmail.com>
Mon, 27 Jul 2015 21:35:08 -0400
changeset 238746 24092ee0061aa002769fe3fbbcfe9995eb38f4a4
parent 238745 1ba4654d04a97ec88d4d3b757fb92afdae7de40a
child 238747 9b60e57724dbd939ae2267f2b70467e608609de8
push id756
push userryanvm@gmail.com
push dateTue, 28 Jul 2015 01:36:38 +0000
treeherdermozilla-b2g37_v2_2@9b60e57724db [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1182711
milestone37.0
backs outf3b9f68f9c9074bf49d6092ceca16cec317930d1
Backed out changeset f3b9f68f9c90 (bug 1182711) for non-unified bustage.
js/src/jit/BytecodeAnalysis.cpp
js/src/jit/CompileInfo.h
--- a/js/src/jit/BytecodeAnalysis.cpp
+++ b/js/src/jit/BytecodeAnalysis.cpp
@@ -40,21 +40,16 @@ struct CatchFinallyRange
 };
 
 bool
 BytecodeAnalysis::init(TempAllocator& alloc, GSNCache& gsn)
 {
     if (!infos_.growByUninitialized(script_->length()))
         return false;
 
-    // We need a scope chain if the function is heavyweight.
-    usesScopeChain_ = (script_->functionDelazifying() &&
-                       script_->functionDelazifying()->isHeavyweight());
-    MOZ_ASSERT_IF(script_->hasAnyAliasedBindings(), usesScopeChain_);
-
     jsbytecode* end = script_->codeEnd();
 
     // Clear all BytecodeInfo.
     mozilla::PodZero(infos_.begin(), infos_.length());
     infos_[0].init(/*stackDepth=*/0);
 
     Vector<CatchFinallyRange, 0, JitAllocPolicy> catchFinallyRanges(alloc);
 
--- a/js/src/jit/CompileInfo.h
+++ b/js/src/jit/CompileInfo.h
@@ -454,19 +454,16 @@ class CompileInfo
     bool isObservableFrameSlot(uint32_t slot) const {
         if (!funMaybeLazy())
             return false;
 
         // The |this| value must always be observable.
         if (slot == thisSlot())
             return true;
 
-        if (funMaybeLazy()->isHeavyweight() && slot == scopeChainSlot())
-            return true;
-
         // If the function may need an arguments object, then make sure to
         // preserve the scope chain, because it may be needed to construct the
         // arguments object during bailout. If we've already created an
         // arguments object (or got one via OSR), preserve that as well.
         if (hasArguments() && (slot == scopeChainSlot() || slot == argsObjSlot()))
             return true;
 
         return false;