Bug 1203297 - Fix even more unified bustage; r=efaust
authorTerrence Cole <terrence@mozilla.com>
Wed, 09 Sep 2015 14:26:07 -0700
changeset 296965 70278bb52f215f6429600bca8e124f5da43d6da8
parent 296964 b33de7c40755ddac916c71dfc6eedbc117287d72
child 296966 37ceff90f96417c9ec6f54d106c3c6a7423a5f5d
push id962
push userjlund@mozilla.com
push dateFri, 04 Dec 2015 23:28:54 +0000
treeherdermozilla-release@23a2d286e80f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersefaust
bugs1203297
milestone43.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 1203297 - Fix even more unified bustage; r=efaust
js/src/builtin/ModuleObject.cpp
js/src/frontend/ParseNode.cpp
js/src/jit/BaselineDebugModeOSR.cpp
js/src/jit/BaselineIC.cpp
js/src/jit/CodeGenerator.cpp
js/src/jit/InstructionReordering.cpp
js/src/jit/Ion.cpp
js/src/jit/MoveResolver.h
js/src/jit/x64/BaselineIC-x64.cpp
js/src/vm/SavedStacks.cpp
--- a/js/src/builtin/ModuleObject.cpp
+++ b/js/src/builtin/ModuleObject.cpp
@@ -1,21 +1,24 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  * vim: set ts=8 sts=4 et sw=4 tw=99:
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "builtin/ModuleObject.h"
 
+#include "frontend/ParseNode.h"
+#include "frontend/SharedContext.h"
 #include "gc/Tracer.h"
 
 #include "jsobjinlines.h"
 
 using namespace js;
+using namespace js::frontend;
 
 typedef JS::Rooted<ImportEntryObject*> RootedImportEntry;
 typedef JS::Rooted<ExportEntryObject*> RootedExportEntry;
 
 template<typename T, Value ValueGetter(T* obj)>
 static bool
 ModuleValueGetterImpl(JSContext* cx, const CallArgs& args)
 {
--- a/js/src/frontend/ParseNode.cpp
+++ b/js/src/frontend/ParseNode.cpp
@@ -8,16 +8,17 @@
 
 #include "frontend/Parser.h"
 
 #include "jscntxtinlines.h"
 
 using namespace js;
 using namespace js::frontend;
 
+using mozilla::ArrayLength;
 using mozilla::IsFinite;
 
 #ifdef DEBUG
 void
 ParseNode::checkListConsistency()
 {
     MOZ_ASSERT(isArity(PN_LIST));
     ParseNode** tail;
--- a/js/src/jit/BaselineDebugModeOSR.cpp
+++ b/js/src/jit/BaselineDebugModeOSR.cpp
@@ -3,16 +3,17 @@
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "jit/BaselineDebugModeOSR.h"
 
 #include "mozilla/DebugOnly.h"
 
+#include "jit/BaselineIC.h"
 #include "jit/JitcodeMap.h"
 #include "jit/Linker.h"
 #include "jit/PerfSpewer.h"
 
 #include "jit/JitFrames-inl.h"
 #include "jit/MacroAssembler-inl.h"
 #include "vm/Stack-inl.h"
 
--- a/js/src/jit/BaselineIC.cpp
+++ b/js/src/jit/BaselineIC.cpp
@@ -11099,29 +11099,43 @@ ICGetElem_NativePrototypeCallNative<T>::
                                               ICGetElem_NativePrototypeCallNative<T>& other)
 {
     return ICStub::New<ICGetElem_NativePrototypeCallNative<T>>(cx, space, other.jitCode(),
                 firstMonitorStub, other.receiverGuard(), other.key().unsafeGet(), other.accessType(),
                 other.needsAtomize(), other.getter(), other.pcOffset_, other.holder(),
                 other.holderShape());
 }
 
+template ICGetElem_NativePrototypeCallNative<JS::Symbol*>*
+ICGetElem_NativePrototypeCallNative<JS::Symbol*>::Clone(JSContext*, ICStubSpace*, ICStub*,
+                                          ICGetElem_NativePrototypeCallNative<JS::Symbol*>&);
+template ICGetElem_NativePrototypeCallNative<js::PropertyName*>*
+ICGetElem_NativePrototypeCallNative<js::PropertyName*>::Clone(JSContext*, ICStubSpace*, ICStub*,
+                                          ICGetElem_NativePrototypeCallNative<js::PropertyName*>&);
+
 template <class T>
 /* static */ ICGetElem_NativePrototypeCallScripted<T>*
 ICGetElem_NativePrototypeCallScripted<T>::Clone(JSContext* cx,
                                                 ICStubSpace* space,
                                                 ICStub* firstMonitorStub,
                                                 ICGetElem_NativePrototypeCallScripted<T>& other)
 {
     return ICStub::New<ICGetElem_NativePrototypeCallScripted<T>>(cx, space, other.jitCode(),
                 firstMonitorStub, other.receiverGuard(), other.key().unsafeGet(), other.accessType(),
                 other.needsAtomize(), other.getter(), other.pcOffset_, other.holder(),
                 other.holderShape());
 }
 
+template ICGetElem_NativePrototypeCallScripted<JS::Symbol*>*
+ICGetElem_NativePrototypeCallScripted<JS::Symbol*>::Clone(JSContext*, ICStubSpace*, ICStub*,
+                                        ICGetElem_NativePrototypeCallScripted<JS::Symbol*>&);
+template ICGetElem_NativePrototypeCallScripted<js::PropertyName*>*
+ICGetElem_NativePrototypeCallScripted<js::PropertyName*>::Clone(JSContext*, ICStubSpace*, ICStub*,
+                                        ICGetElem_NativePrototypeCallScripted<js::PropertyName*>&);
+
 ICGetElem_Dense::ICGetElem_Dense(JitCode* stubCode, ICStub* firstMonitorStub, Shape* shape)
     : ICMonitoredStub(GetElem_Dense, stubCode, firstMonitorStub),
       shape_(shape)
 { }
 
 /* static */ ICGetElem_Dense*
 ICGetElem_Dense::Clone(JSContext* cx, ICStubSpace* space, ICStub* firstMonitorStub,
                        ICGetElem_Dense& other)
--- a/js/src/jit/CodeGenerator.cpp
+++ b/js/src/jit/CodeGenerator.cpp
@@ -29,16 +29,17 @@
 #include "jit/IonOptimizationLevels.h"
 #include "jit/JitcodeMap.h"
 #include "jit/JitSpewer.h"
 #include "jit/Linker.h"
 #include "jit/Lowering.h"
 #include "jit/MIRGenerator.h"
 #include "jit/MoveEmitter.h"
 #include "jit/RangeAnalysis.h"
+#include "jit/SharedICHelpers.h"
 #include "vm/MatchPairs.h"
 #include "vm/RegExpStatics.h"
 #include "vm/TraceLogging.h"
 
 #include "jsboolinlines.h"
 
 #include "jit/AtomicOperations-inl.h"
 #include "jit/MacroAssembler-inl.h"
--- a/js/src/jit/InstructionReordering.cpp
+++ b/js/src/jit/InstructionReordering.cpp
@@ -1,15 +1,16 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  * vim: set ts=8 sts=4 et sw=4 tw=99:
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "jit/InstructionReordering.h"
+#include "jit/MIRGraph.h"
 
 using namespace js;
 using namespace js::jit;
 
 static void
 MoveBefore(MBasicBlock* block, MInstruction* at, MInstruction* ins)
 {
     if (at == ins)
--- a/js/src/jit/Ion.cpp
+++ b/js/src/jit/Ion.cpp
@@ -19,16 +19,17 @@
 #include "jit/BacktrackingAllocator.h"
 #include "jit/BaselineFrame.h"
 #include "jit/BaselineInspector.h"
 #include "jit/BaselineJIT.h"
 #include "jit/CodeGenerator.h"
 #include "jit/EagerSimdUnbox.h"
 #include "jit/EdgeCaseAnalysis.h"
 #include "jit/EffectiveAddressAnalysis.h"
+#include "jit/InstructionReordering.h"
 #include "jit/IonAnalysis.h"
 #include "jit/IonBuilder.h"
 #include "jit/IonOptimizationLevels.h"
 #include "jit/JitcodeMap.h"
 #include "jit/JitCommon.h"
 #include "jit/JitCompartment.h"
 #include "jit/JitSpewer.h"
 #include "jit/LICM.h"
--- a/js/src/jit/MoveResolver.h
+++ b/js/src/jit/MoveResolver.h
@@ -5,16 +5,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef jit_MoveResolver_h
 #define jit_MoveResolver_h
 
 #include "jit/InlineList.h"
 #include "jit/JitAllocPolicy.h"
 #include "jit/Registers.h"
+#include "jit/RegisterSets.h"
 
 namespace js {
 namespace jit {
 
 class MacroAssembler;
 
 // This is similar to Operand, but carries more information. We're also not
 // guaranteed that Operand looks like this on all ISAs.
--- a/js/src/jit/x64/BaselineIC-x64.cpp
+++ b/js/src/jit/x64/BaselineIC-x64.cpp
@@ -1,16 +1,17 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  * vim: set ts=8 sts=4 et sw=4 tw=99:
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "jit/BaselineIC.h"
 #include "jit/SharedICHelpers.h"
+#include "jit/MacroAssembler-inl.h"
 
 using namespace js;
 using namespace js::jit;
 
 namespace js {
 namespace jit {
 
 // ICCompare_Int32
--- a/js/src/vm/SavedStacks.cpp
+++ b/js/src/vm/SavedStacks.cpp
@@ -20,16 +20,17 @@
 #include "jsmath.h"
 #include "jsnum.h"
 #include "jsscript.h"
 
 #include "gc/Marking.h"
 #include "gc/Rooting.h"
 #include "js/Vector.h"
 #include "vm/Debugger.h"
+#include "vm/SavedFrame.h"
 #include "vm/StringBuffer.h"
 #include "vm/Time.h"
 #include "vm/WrapperObject.h"
 
 #include "jscntxtinlines.h"
 
 #include "vm/NativeObject-inl.h"
 #include "vm/Stack-inl.h"
@@ -1396,17 +1397,17 @@ CompartmentChecker::check(SavedStacks* s
 namespace JS {
 namespace ubi {
 
 bool
 ConcreteStackFrame<SavedFrame>::isSystem() const
 {
     auto trustedPrincipals = get().runtimeFromAnyThread()->trustedPrincipals();
     return get().getPrincipals() == trustedPrincipals ||
-           get().getPrincipals() == &ReconstructedSavedFramePrincipals::IsSystem;
+           get().getPrincipals() == &js::ReconstructedSavedFramePrincipals::IsSystem;
 }
 
 bool
 ConcreteStackFrame<SavedFrame>::constructSavedFrameStack(JSContext* cx,
                                                          MutableHandleObject outSavedFrameStack)
     const
 {
     outSavedFrameStack.set(&get());
@@ -1446,23 +1447,23 @@ bool ConstructSavedFrameStackSlow(JSCont
                                   MutableHandleObject outSavedFrameStack)
 {
     SavedFrame::AutoLookupVector stackChain(cx);
     Rooted<JS::ubi::StackFrame> ubiFrame(cx, frame);
 
     while (ubiFrame.get()) {
         // Convert the source and functionDisplayName strings to atoms.
 
-        RootedAtom source(cx);
+        js::RootedAtom source(cx);
         AtomizingMatcher atomizer(cx, ubiFrame.get().sourceLength());
         source = ubiFrame.get().source().match(atomizer);
         if (!source)
             return false;
 
-        RootedAtom functionDisplayName(cx);
+        js::RootedAtom functionDisplayName(cx);
         auto nameLength = ubiFrame.get().functionDisplayNameLength();
         if (nameLength > 0) {
             AtomizingMatcher atomizer(cx, nameLength);
             functionDisplayName = ubiFrame.get().functionDisplayName().match(atomizer);
             if (!functionDisplayName)
                 return false;
         }
 
@@ -1474,17 +1475,17 @@ bool ConstructSavedFrameStackSlow(JSCont
         {
             ReportOutOfMemory(cx);
             return false;
         }
 
         ubiFrame = ubiFrame.get().parent();
     }
 
-    RootedSavedFrame parentFrame(cx);
+    js::RootedSavedFrame parentFrame(cx);
     for (size_t i = stackChain->length(); i != 0; i--) {
         SavedFrame::HandleLookup lookup = stackChain[i-1];
         lookup->parent = parentFrame;
         parentFrame = cx->compartment()->savedStacks().getOrCreateSavedFrame(cx, lookup);
         if (!parentFrame)
             return false;
     }