Bug 888768 (part 3) - Remove unnecessary *-inl.h #includes, as found by include-what-you-use. r=till.
authorNicholas Nethercote <nnethercote@mozilla.com>
Thu, 11 Jul 2013 18:31:01 -0700
changeset 138410 e54e7b5bf27d7971ed7ebcde8f110f3310c941de
parent 138409 78b3873cd79e22f463778d73ba7e085816a1b100
child 138423 6375a61aae7b6be87cd357fb6747a31ccb60fee8
push id30963
push usernnethercote@mozilla.com
push dateSat, 13 Jul 2013 02:02:59 +0000
treeherdermozilla-inbound@e54e7b5bf27d [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstill
bugs888768
milestone25.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 888768 (part 3) - Remove unnecessary *-inl.h #includes, as found by include-what-you-use. r=till.
js/src/builtin/Profilers.cpp
js/src/frontend/BytecodeCompiler.cpp
js/src/frontend/ParseMaps.cpp
js/src/gc/Nursery.cpp
js/src/gc/StoreBuffer.cpp
js/src/ion/AsmJSSignalHandlers.cpp
js/src/ion/Bailouts.cpp
js/src/ion/BaselineBailouts.cpp
js/src/ion/BaselineCompiler.cpp
js/src/ion/BaselineFrameInfo.cpp
js/src/ion/BaselineIC.cpp
js/src/ion/BaselineInspector.cpp
js/src/ion/CodeGenerator.cpp
js/src/ion/Ion.cpp
js/src/ion/IonBuilder.cpp
js/src/ion/IonCaches.cpp
js/src/ion/ParallelFunctions.cpp
js/src/ion/VMFunctions.cpp
js/src/ion/arm/Bailouts-arm.cpp
js/src/ion/x64/Bailouts-x64.cpp
js/src/ion/x64/CodeGenerator-x64.cpp
js/src/ion/x86/Bailouts-x86.cpp
js/src/jsapi.cpp
js/src/jsatom.cpp
js/src/jsbool.cpp
js/src/jsclone.cpp
js/src/jsfun.cpp
js/src/jsinfer.cpp
js/src/jsobj.cpp
js/src/jsopcode.cpp
js/src/jsproxy.cpp
js/src/jsscript.cpp
js/src/jsstr.cpp
js/src/jswrapper.cpp
js/src/perf/jsperf.cpp
js/src/vm/GlobalObject.cpp
js/src/vm/Interpreter.cpp
js/src/vm/PropertyKey.cpp
js/src/vm/RegExpStatics.cpp
js/src/vm/SelfHosting.cpp
js/src/vm/Stack.cpp
js/src/vm/String.cpp
--- a/js/src/builtin/Profilers.cpp
+++ b/js/src/builtin/Profilers.cpp
@@ -16,20 +16,16 @@
 
 #ifdef __APPLE__
 #include "devtools/sharkctl.h"
 #include "devtools/Instruments.h"
 #endif
 
 #include "jscntxtinlines.h"
 
-#ifdef JSGC_GENERATIONAL
-#include "vm/Shape-inl.h"
-#endif
-
 using namespace js;
 
 using mozilla::ArrayLength;
 
 /* Thread-unsafe error management */
 
 static char gLastError[2000];
 
--- a/js/src/frontend/BytecodeCompiler.cpp
+++ b/js/src/frontend/BytecodeCompiler.cpp
@@ -13,17 +13,16 @@
 #include "frontend/Parser.h"
 #include "ion/AsmJS.h"
 #include "vm/GlobalObject.h"
 
 #include "jsobjinlines.h"
 #include "jsscriptinlines.h"
 
 #include "frontend/ParseMaps-inl.h"
-#include "vm/ScopeObject-inl.h"
 
 using namespace js;
 using namespace js::frontend;
 using mozilla::Maybe;
 
 static bool
 CheckLength(JSContext *cx, size_t length)
 {
--- a/js/src/frontend/ParseMaps.cpp
+++ b/js/src/frontend/ParseMaps.cpp
@@ -3,19 +3,16 @@
  * 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 "jscntxt.h"
 #include "frontend/FullParseHandler.h"
 #include "frontend/SyntaxParseHandler.h"
 
-#include "frontend/ParseMaps-inl.h"
-#include "vm/String-inl.h"
-
 using namespace js;
 using namespace js::frontend;
 
 void
 ParseMapPool::checkInvariants()
 {
     /*
      * Having all values be of the same size permits us to easily reuse the
--- a/js/src/gc/Nursery.cpp
+++ b/js/src/gc/Nursery.cpp
@@ -12,17 +12,16 @@
 #include "jsutil.h"
 
 #include "gc/GCInternals.h"
 #include "gc/Memory.h"
 #include "vm/ArrayObject.h"
 #include "vm/Debugger.h"
 #include "vm/TypedArrayObject.h"
 
-#include "gc/Barrier-inl.h"
 #include "gc/Nursery-inl.h"
 #include "vm/ObjectImpl-inl.h"
 
 using namespace js;
 using namespace gc;
 using namespace mozilla;
 
 bool
--- a/js/src/gc/StoreBuffer.cpp
+++ b/js/src/gc/StoreBuffer.cpp
@@ -7,17 +7,16 @@
 #ifdef JSGC_GENERATIONAL
 
 #include "gc/StoreBuffer.h"
 
 #include "mozilla/Assertions.h"
 
 #include "vm/ForkJoin.h"
 
-#include "gc/Barrier-inl.h"
 #include "vm/ObjectImpl-inl.h"
 
 using namespace js;
 using namespace js::gc;
 
 /*** SlotEdge ***/
 
 JS_ALWAYS_INLINE HeapSlot *
--- a/js/src/ion/AsmJSSignalHandlers.cpp
+++ b/js/src/ion/AsmJSSignalHandlers.cpp
@@ -5,17 +5,16 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "jscntxt.h"
 
 #include "ion/AsmJS.h"
 #include "ion/AsmJSModule.h"
 #include "assembler/assembler/MacroAssembler.h"
 
-#include "gc/Barrier-inl.h"
 #include "vm/ObjectImpl-inl.h"
 
 using namespace js;
 using namespace js::ion;
 using namespace mozilla;
 
 #if defined(XP_WIN)
 # define XMM_sig(p,i) ((p)->Xmm##i)
--- a/js/src/ion/Bailouts.cpp
+++ b/js/src/ion/Bailouts.cpp
@@ -12,17 +12,16 @@
 #include "ion/Bailouts.h"
 #include "ion/SnapshotReader.h"
 #include "ion/Ion.h"
 #include "ion/IonCompartment.h"
 #include "ion/IonSpewer.h"
 #include "vm/Interpreter.h"
 #include "ion/BaselineJIT.h"
 
-#include "ion/IonFrames-inl.h"
 #include "vm/Stack-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 // These constructor are exactly the same except for the type of the iterator
 // which is given to the SnapshotIterator constructor. Doing so avoid the
 // creation of virtual functions for the IonIterator but may introduce some
--- a/js/src/ion/BaselineBailouts.cpp
+++ b/js/src/ion/BaselineBailouts.cpp
@@ -6,18 +6,16 @@
 
 #include "ion/BaselineCompiler.h"
 #include "ion/BaselineIC.h"
 #include "ion/BaselineJIT.h"
 #include "ion/CompileInfo.h"
 #include "ion/IonSpewer.h"
 #include "ion/IonFrames-inl.h"
 
-#include "vm/Stack-inl.h"
-
 #include "jsfuninlines.h"
 
 using namespace js;
 using namespace js::ion;
 
 // BaselineStackBuilder may reallocate its buffer if the current one is too
 // small. To avoid dangling pointers, BufferPointer represents a pointer into
 // this buffer as a pointer to the header and a fixed offset.
--- a/js/src/ion/BaselineCompiler.cpp
+++ b/js/src/ion/BaselineCompiler.cpp
@@ -7,17 +7,16 @@
 #include "ion/BaselineJIT.h"
 #include "ion/BaselineIC.h"
 #include "ion/BaselineHelpers.h"
 #include "ion/BaselineCompiler.h"
 #include "ion/FixedList.h"
 #include "ion/IonLinker.h"
 #include "ion/IonSpewer.h"
 #include "ion/VMFunctions.h"
-#include "ion/IonFrames-inl.h"
 
 #include "vm/Interpreter-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 BaselineCompiler::BaselineCompiler(JSContext *cx, HandleScript script)
   : BaselineCompilerSpecific(cx, script)
--- a/js/src/ion/BaselineFrameInfo.cpp
+++ b/js/src/ion/BaselineFrameInfo.cpp
@@ -5,18 +5,16 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "ion/BaselineFrameInfo.h"
 #include "ion/IonSpewer.h"
 #include "ion/shared/BaselineCompiler-shared.h"
 
 #include "jsanalyze.h"
 
-#include "vm/Shape-inl.h"
-
 using namespace js;
 using namespace js::ion;
 
 bool
 FrameInfo::init() {
     // One slot is always needed for this/arguments type checks.
     size_t nstack = Max(script->nslots - script->nfixed, 1);
     if (!stack.init(nstack))
--- a/js/src/ion/BaselineIC.cpp
+++ b/js/src/ion/BaselineIC.cpp
@@ -9,18 +9,16 @@
 #include "builtin/Eval.h"
 #include "ion/BaselineCompiler.h"
 #include "ion/BaselineHelpers.h"
 #include "ion/BaselineIC.h"
 #include "ion/IonLinker.h"
 #include "ion/IonSpewer.h"
 #include "ion/VMFunctions.h"
 
-#include "builtin/Iterator-inl.h"
-#include "ion/IonFrames-inl.h"
 #include "vm/Interpreter-inl.h"
 
 namespace js {
 namespace ion {
 
 #ifdef DEBUG
 void
 FallbackICSpew(JSContext *cx, ICFallbackStub *stub, const char *fmt, ...)
--- a/js/src/ion/BaselineInspector.cpp
+++ b/js/src/ion/BaselineInspector.cpp
@@ -2,18 +2,16 @@
  * 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 "ion/BaselineIC.h"
 #include "ion/BaselineInspector.h"
 
-#include "vm/Shape-inl.h"
-
 using namespace js;
 using namespace js::ion;
 
 bool
 SetElemICInspector::sawOOBDenseWrite() const
 {
     if (!icEntry_)
         return false;
--- a/js/src/ion/CodeGenerator.cpp
+++ b/js/src/ion/CodeGenerator.cpp
@@ -21,17 +21,16 @@
 #include "ion/ParallelFunctions.h"
 #include "ion/ExecutionModeInlines.h"
 #include "builtin/Eval.h"
 #include "gc/Nursery.h"
 #include "vm/ForkJoin.h"
 #include "ion/ParallelSafetyAnalysis.h"
 
 #include "vm/Interpreter-inl.h"
-#include "vm/StringObject-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::DebugOnly;
 using mozilla::Maybe;
 
 namespace js {
--- a/js/src/ion/Ion.cpp
+++ b/js/src/ion/Ion.cpp
@@ -42,19 +42,17 @@
 # include "ion/arm/Lowering-arm.h"
 #endif
 #include "gc/Marking.h"
 
 #include "jscompartmentinlines.h"
 #include "jsgcinlines.h"
 #include "jsinferinlines.h"
 
-#include "gc/Barrier-inl.h"
 #include "vm/Stack-inl.h"
-#include "ion/IonFrames-inl.h"
 #include "ion/CompilerRoot.h"
 #include "ion/ExecutionModeInlines.h"
 #include "ion/AsmJS.h"
 #include "ion/AsmJSModule.h"
 
 #if JS_TRACE_LOGGING
 #include "TraceLogging.h"
 #endif
--- a/js/src/ion/IonBuilder.cpp
+++ b/js/src/ion/IonBuilder.cpp
@@ -14,21 +14,22 @@
 #include "ion/BaselineInspector.h"
 #include "ion/Ion.h"
 #include "ion/IonAnalysis.h"
 #include "ion/IonAnalysis.h"
 #include "ion/IonSpewer.h"
 #include "ion/Lowering.h"
 #include "ion/MIRGraph.h"
 
+#include "jsinferinlines.h"
+#include "jsobjinlines.h"
 #include "jsscriptinlines.h"
 
 #include "ion/CompileInfo-inl.h"
 #include "ion/ExecutionModeInlines.h"
-#include "vm/ScopeObject-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::DebugOnly;
 
 IonBuilder::IonBuilder(JSContext *cx, TempAllocator *temp, MIRGraph *graph,
                        BaselineInspector *inspector, CompileInfo *info, BaselineFrame *baselineFrame,
--- a/js/src/ion/IonCaches.cpp
+++ b/js/src/ion/IonCaches.cpp
@@ -11,18 +11,16 @@
 #include "ion/Ion.h"
 #include "ion/IonCaches.h"
 #include "ion/IonLinker.h"
 #include "ion/IonSpewer.h"
 #include "ion/VMFunctions.h"
 
 #include "vm/Shape.h"
 
-#include "ion/IonFrames-inl.h"
-
 #include "vm/Interpreter-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::DebugOnly;
 
 void
--- a/js/src/ion/ParallelFunctions.cpp
+++ b/js/src/ion/ParallelFunctions.cpp
@@ -2,19 +2,22 @@
  * 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 "ion/ParallelFunctions.h"
 
 #include "ion/IonSpewer.h"
+#include "vm/ArrayObject.h"
 #include "vm/Interpreter.h"
 
-#include "vm/Interpreter-inl.h"
+#include "jsfuninlines.h"
+#include "jsgcinlines.h"
+#include "jsobjinlines.h"
 
 using namespace js;
 using namespace ion;
 
 using parallel::Spew;
 using parallel::SpewOps;
 using parallel::SpewBailouts;
 using parallel::SpewBailoutIR;
--- a/js/src/ion/VMFunctions.cpp
+++ b/js/src/ion/VMFunctions.cpp
@@ -16,20 +16,17 @@
 #include "vm/StringObject-inl.h"
 
 #include "builtin/ParallelArray.h"
 
 #include "frontend/BytecodeCompiler.h"
 
 #include "jsboolinlines.h"
 
-#include "ion/IonFrames-inl.h" // for GetTopIonJSScript
-
 #include "vm/Interpreter-inl.h"
-#include "vm/StringObject-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 namespace js {
 namespace ion {
 
 // Don't explicitly initialize, it's not guaranteed that this initializer will
--- a/js/src/ion/arm/Bailouts-arm.cpp
+++ b/js/src/ion/arm/Bailouts-arm.cpp
@@ -3,17 +3,16 @@
  * 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 "jscntxt.h"
 #include "jscompartment.h"
 #include "ion/Bailouts.h"
 #include "ion/IonCompartment.h"
-#include "ion/IonFrames-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 #if 0
 // no clue what these asserts should be.
 JS_STATIC_ASSERT(sizeof(BailoutStack) ==
                  sizeof(uintptr_t) +
--- a/js/src/ion/x64/Bailouts-x64.cpp
+++ b/js/src/ion/x64/Bailouts-x64.cpp
@@ -3,17 +3,16 @@
  * 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 "jscntxt.h"
 #include "jscompartment.h"
 #include "ion/Bailouts.h"
 #include "ion/IonCompartment.h"
-#include "ion/IonFrames-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 #if defined(_WIN32)
 # pragma pack(push, 1)
 #endif
 
--- a/js/src/ion/x64/CodeGenerator-x64.cpp
+++ b/js/src/ion/x64/CodeGenerator-x64.cpp
@@ -9,17 +9,16 @@
 #include "ion/x64/CodeGenerator-x64.h"
 #include "ion/MIR.h"
 #include "ion/MIRGraph.h"
 #include "vm/Shape.h"
 
 #include "jsscriptinlines.h"
 
 #include "ion/shared/CodeGenerator-shared-inl.h"
-#include "vm/Shape-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 CodeGeneratorX64::CodeGeneratorX64(MIRGenerator *gen, LIRGraph *graph, MacroAssembler *masm)
   : CodeGeneratorX86Shared(gen, graph, masm)
 {
 }
--- a/js/src/ion/x86/Bailouts-x86.cpp
+++ b/js/src/ion/x86/Bailouts-x86.cpp
@@ -3,17 +3,16 @@
  * 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 "jscntxt.h"
 #include "jscompartment.h"
 #include "ion/Bailouts.h"
 #include "ion/IonCompartment.h"
-#include "ion/IonFrames-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 #if defined(_WIN32)
 # pragma pack(push, 1)
 #endif
 
--- a/js/src/jsapi.cpp
+++ b/js/src/jsapi.cpp
@@ -77,17 +77,16 @@
 #include "yarr/BumpPointerAllocator.h"
 
 #include "jsatominlines.h"
 #include "jsinferinlines.h"
 #include "jsscriptinlines.h"
 
 #include "vm/Interpreter-inl.h"
 #include "vm/ObjectImpl-inl.h"
-#include "vm/RegExpObject-inl.h"
 #include "vm/RegExpStatics-inl.h"
 #include "vm/Shape-inl.h"
 #include "vm/String-inl.h"
 
 #if ENABLE_YARR_JIT
 #include "assembler/jit/ExecutableAllocator.h"
 #endif
 
--- a/js/src/jsatom.cpp
+++ b/js/src/jsatom.cpp
@@ -19,19 +19,16 @@
 #include "jsstr.h"
 #include "jstypes.h"
 
 #include "gc/Marking.h"
 #include "vm/Xdr.h"
 
 #include "jscompartmentinlines.h"
 
-#ifdef JSGC_GENERATIONAL
-#include "vm/Shape-inl.h"
-#endif
 #include "vm/String-inl.h"
 
 using namespace js;
 using namespace js::gc;
 
 using mozilla::ArrayEnd;
 using mozilla::ArrayLength;
 using mozilla::RangedPtr;
--- a/js/src/jsbool.cpp
+++ b/js/src/jsbool.cpp
@@ -18,17 +18,16 @@
 
 #include "vm/GlobalObject.h"
 #include "vm/ProxyObject.h"
 #include "vm/StringBuffer.h"
 
 #include "jsboolinlines.h"
 
 #include "vm/BooleanObject-inl.h"
-#include "vm/GlobalObject-inl.h"
 
 using namespace js;
 using namespace js::types;
 
 Class BooleanObject::class_ = {
     "Boolean",
     JSCLASS_HAS_RESERVED_SLOTS(1) | JSCLASS_HAS_CACHED_PROTO(JSProto_Boolean),
     JS_PropertyStub,         /* addProperty */
--- a/js/src/jsclone.cpp
+++ b/js/src/jsclone.cpp
@@ -31,18 +31,18 @@
 #include "jsclone.h"
 
 #include "mozilla/FloatingPoint.h"
 
 #include "jsdate.h"
 
 #include "vm/TypedArrayObject.h"
 
-#include "vm/BooleanObject-inl.h"
-#include "vm/RegExpObject-inl.h"
+#include "jscntxtinlines.h"
+#include "jsobjinlines.h"
 
 using namespace js;
 
 using mozilla::IsNaN;
 using mozilla::LittleEndian;
 using mozilla::NativeEndian;
 
 enum StructuredDataType {
--- a/js/src/jsfun.cpp
+++ b/js/src/jsfun.cpp
@@ -37,17 +37,16 @@
 #include "jsscriptinlines.h"
 
 #include "vm/Interpreter-inl.h"
 #include "vm/Stack-inl.h"
 
 #ifdef JS_ION
 #include "ion/Ion.h"
 #include "ion/IonFrameIterator.h"
-#include "ion/IonFrameIterator-inl.h"
 #endif
 
 using namespace js;
 using namespace js::gc;
 using namespace js::types;
 using namespace js::frontend;
 
 using mozilla::ArrayLength;
--- a/js/src/jsinfer.cpp
+++ b/js/src/jsinfer.cpp
@@ -32,18 +32,16 @@
 #include "jsanalyzeinlines.h"
 #include "jsatominlines.h"
 #include "jsgcinlines.h"
 #include "jsinferinlines.h"
 #include "jsopcodeinlines.h"
 #include "jsobjinlines.h"
 #include "jsscriptinlines.h"
 
-#include "vm/Stack-inl.h"
-
 #ifdef __SUNPRO_CC
 #include <alloca.h>
 #endif
 
 using namespace js;
 using namespace js::gc;
 using namespace js::types;
 using namespace js::analyze;
--- a/js/src/jsobj.cpp
+++ b/js/src/jsobj.cpp
@@ -40,19 +40,18 @@
 #include "vm/RegExpStatics.h"
 #include "vm/RegExpStaticsObject.h"
 #include "vm/Shape.h"
 
 #include "jsatominlines.h"
 #include "jsboolinlines.h"
 #include "jscntxtinlines.h"
 #include "jscompartmentinlines.h"
-#include "builtin/Iterator-inl.h"
+
 #include "vm/ArrayObject-inl.h"
-#include "vm/ArgumentsObject-inl.h"
 #include "vm/BooleanObject-inl.h"
 #include "vm/NumberObject-inl.h"
 #include "vm/Runtime-inl.h"
 #include "vm/Shape-inl.h"
 #include "vm/StringObject-inl.h"
 
 using namespace js;
 using namespace js::gc;
--- a/js/src/jsopcode.cpp
+++ b/js/src/jsopcode.cpp
@@ -29,27 +29,27 @@
 #include "jsobj.h"
 #include "jsscript.h"
 #include "jsstr.h"
 
 #include "frontend/BytecodeCompiler.h"
 #include "frontend/SourceNotes.h"
 #include "js/CharacterEncoding.h"
 #include "vm/Shape.h"
+#include "vm/ScopeObject.h"
 #include "vm/StringBuffer.h"
 
 #include "jscntxtinlines.h"
 #include "jscompartmentinlines.h"
+#include "jsinferinlines.h"
 #include "jsopcodeinlines.h"
+#include "jsscriptinlines.h"
 
 #include "jsautooplen.h"
 
-#include "vm/RegExpObject-inl.h"
-#include "vm/ScopeObject-inl.h"
-
 using namespace js;
 using namespace js::gc;
 
 using js::frontend::IsIdentifier;
 using mozilla::ArrayLength;
 
 /*
  * Index limit must stay within 32 bits.
--- a/js/src/jsproxy.cpp
+++ b/js/src/jsproxy.cpp
@@ -15,18 +15,16 @@
 #include "jsprvtd.h"
 
 #include "gc/Marking.h"
 
 #include "jsatominlines.h"
 #include "jsinferinlines.h"
 #include "jsobjinlines.h"
 
-#include "vm/RegExpObject-inl.h"
-
 using namespace js;
 using namespace js::gc;
 using mozilla::ArrayLength;
 
 void
 js::AutoEnterPolicy::reportError(JSContext *cx, jsid id)
 {
     if (JSID_IS_VOID(id)) {
--- a/js/src/jsscript.cpp
+++ b/js/src/jsscript.cpp
@@ -29,22 +29,22 @@
 #include "frontend/BytecodeEmitter.h"
 #include "ion/IonCode.h"
 #include "ion/BaselineJIT.h"
 #include "vm/Debugger.h"
 #include "vm/Interpreter.h"
 #include "vm/Shape.h"
 #include "vm/Xdr.h"
 
+#include "jsfuninlines.h"
 #include "jsinferinlines.h"
 #include "jsscriptinlines.h"
 
-#include "vm/Interpreter-inl.h"
-#include "vm/RegExpObject-inl.h"
 #include "vm/ScopeObject-inl.h"
+#include "vm/Stack-inl.h"
 
 using namespace js;
 using namespace js::gc;
 using namespace js::frontend;
 
 using mozilla::PodCopy;
 using mozilla::PodZero;
 
--- a/js/src/jsstr.cpp
+++ b/js/src/jsstr.cpp
@@ -48,17 +48,16 @@
 #include "vm/Shape.h"
 #include "vm/StringBuffer.h"
 
 #include "jsinferinlines.h"
 #include "jsstrinlines.h"
 #include "jsautooplen.h"        // generated headers last
 
 #include "vm/Interpreter-inl.h"
-#include "vm/RegExpObject-inl.h"
 #include "vm/StringObject-inl.h"
 #include "vm/String-inl.h"
 
 using namespace js;
 using namespace js::gc;
 using namespace js::types;
 using namespace js::unicode;
 
--- a/js/src/jswrapper.cpp
+++ b/js/src/jswrapper.cpp
@@ -12,18 +12,16 @@
 #include "jsexn.h"
 #include "jsgc.h"
 #include "jsiter.h"
 
 #include "vm/ErrorObject.h"
 
 #include "jsobjinlines.h"
 
-#include "builtin/Iterator-inl.h"
-
 using namespace js;
 using namespace js::gc;
 
 int js::sWrapperFamily;
 
 void *
 Wrapper::getWrapperFamily()
 {
--- a/js/src/perf/jsperf.cpp
+++ b/js/src/perf/jsperf.cpp
@@ -3,18 +3,16 @@
  * 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 "perf/jsperf.h"
 
 #include "jscntxt.h" /* for error messages */
 #include "jsobj.h" /* for unwrapping without a context */
 
-#include "vm/ObjectImpl-inl.h"
-
 using JS::PerfMeasurement;
 
 // You cannot forward-declare a static object in C++, so instead
 // we have to forward-declare the helper functions that refer to it.
 static PerfMeasurement* GetPM(JSContext* cx, JS::HandleObject obj, const char* fname);
 static PerfMeasurement* GetPMFromThis(JSContext* cx, jsval* vp);
 
 // Property access
--- a/js/src/vm/GlobalObject.cpp
+++ b/js/src/vm/GlobalObject.cpp
@@ -14,23 +14,23 @@
 #include "json.h"
 #include "jsweakmap.h"
 
 #include "builtin/Eval.h"
 #include "builtin/Intl.h"
 #include "builtin/MapObject.h"
 #include "builtin/Object.h"
 #include "builtin/RegExp.h"
+#include "vm/RegExpStatics.h"
 
 #include "jscompartmentinlines.h"
 #include "jsfuninlines.h"
 #include "jsobjinlines.h"
 
 #include "vm/GlobalObject-inl.h"
-#include "vm/RegExpStatics-inl.h"
 
 using namespace js;
 
 JSObject *
 js_InitObjectClass(JSContext *cx, HandleObject obj)
 {
     JS_ASSERT(obj->isNative());
 
--- a/js/src/vm/Interpreter.cpp
+++ b/js/src/vm/Interpreter.cpp
@@ -36,17 +36,16 @@
 #include "vm/Debugger.h"
 #include "vm/Shape.h"
 
 #include "jsatominlines.h"
 #include "jsboolinlines.h"
 #include "jsinferinlines.h"
 #include "jsscriptinlines.h"
 
-#include "builtin/Iterator-inl.h"
 #include "ion/IonFrames-inl.h"
 #include "vm/Interpreter-inl.h"
 #include "vm/Probes-inl.h"
 #include "vm/Stack-inl.h"
 
 #include "jsautooplen.h"
 
 #if JS_TRACE_LOGGING
--- a/js/src/vm/PropertyKey.cpp
+++ b/js/src/vm/PropertyKey.cpp
@@ -3,22 +3,23 @@
  * 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/. */
 
 /* PropertyKey implementation details. */
 
 #include "js/PropertyKey.h"
 
+#include "jsatom.h"
+#include "jscntxt.h"
+
 #include "js/RootingAPI.h"
 #include "js/Value.h"
 #include "vm/String.h"
 
-#include "vm/String-inl.h"
-
 using namespace js;
 
 bool
 JS::detail::ToPropertyKeySlow(JSContext *cx, HandleValue v, PropertyKey *key)
 {
     MOZ_ASSERT_IF(v.isInt32(), v.toInt32() < 0);
 
     RootedAtom atom(cx);
--- a/js/src/vm/RegExpStatics.cpp
+++ b/js/src/vm/RegExpStatics.cpp
@@ -5,18 +5,16 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "vm/RegExpStatics.h"
 
 #include "vm/RegExpStaticsObject.h"
 
 #include "jsobjinlines.h"
 
-#include "vm/RegExpObject-inl.h"
-
 using namespace js;
 
 /*
  * RegExpStatics allocates memory -- in order to keep the statics stored
  * per-global and not leak, we create a js::Class to wrap the C++ instance and
  * provide an appropriate finalizer. We store an instance of that js::Class in
  * a global reserved slot.
  */
--- a/js/src/vm/SelfHosting.cpp
+++ b/js/src/vm/SelfHosting.cpp
@@ -15,17 +15,16 @@
 
 #include "vm/ForkJoin.h"
 #include "vm/Interpreter.h"
 
 #include "jsfuninlines.h"
 
 #include "vm/BooleanObject-inl.h"
 #include "vm/NumberObject-inl.h"
-#include "vm/RegExpObject-inl.h"
 #include "vm/StringObject-inl.h"
 
 #include "selfhosted.out.h"
 
 using namespace js;
 using namespace js::selfhosted;
 
 namespace js {
--- a/js/src/vm/Stack.cpp
+++ b/js/src/vm/Stack.cpp
@@ -12,17 +12,16 @@
 
 #include "gc/Marking.h"
 #ifdef JS_ION
 #include "ion/BaselineFrame.h"
 #include "ion/IonCompartment.h"
 #endif
 
 #include "vm/Interpreter-inl.h"
-#include "vm/ScopeObject-inl.h"
 #include "vm/Stack-inl.h"
 #include "vm/Probes-inl.h"
 
 using namespace js;
 
 using mozilla::PodCopy;
 
 /*****************************************************************************/
--- a/js/src/vm/String.cpp
+++ b/js/src/vm/String.cpp
@@ -9,20 +9,16 @@
 #include "mozilla/MemoryReporting.h"
 #include "mozilla/PodOperations.h"
 #include "mozilla/RangedPtr.h"
 
 #include "gc/Marking.h"
 
 #include "jscompartmentinlines.h"
 
-#ifdef JSGC_GENERATIONAL
-#include "vm/Shape-inl.h"
-#endif
-
 using namespace js;
 
 using mozilla::PodCopy;
 using mozilla::RangedPtr;
 
 bool
 JSString::isShort() const
 {