Backout 6249e4edb023 (Bug 1191099) for build bustage on a CLOSED TREE.
authorTerrence Cole <terrence@mozilla.com>
Wed, 05 Aug 2015 12:09:19 -0700
changeset 256352 e426fa97ea77213ccb09a7caccdeef68a9d516d3
parent 256351 c3c11f8a33aa0d39279be51e0ce2e555651f3031
child 256353 a7aa35707f3125b1a0ce1c8c284fb411c4b5c255
push id63313
push usertcole@mozilla.com
push dateWed, 05 Aug 2015 19:09:34 +0000
treeherdermozilla-inbound@e426fa97ea77 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1191099
milestone42.0a1
backs out6249e4edb023c89661910a5838f7442b72411a10
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
Backout 6249e4edb023 (Bug 1191099) for build bustage on a CLOSED TREE.
js/src/NamespaceImports.h
js/src/frontend/Parser.h
js/src/jsapi.h
--- a/js/src/NamespaceImports.h
+++ b/js/src/NamespaceImports.h
@@ -8,17 +8,16 @@
 // make unqualified references to them.
 
 #ifndef NamespaceImports_h
 #define NamespaceImports_h
 
 // These includes are needed these for some typedefs (e.g. HandleValue) and
 // functions (e.g. NullValue())...
 #include "js/CallNonGenericMethod.h"
-#include "js/TraceableVector.h"
 #include "js/TypeDecls.h"
 #include "js/Value.h"
 
 // ... but we do forward declarations of the structs and classes not pulled in
 // by the headers included above.
 namespace JS {
 
 class Latin1Chars;
@@ -29,16 +28,17 @@ class TwoByteCharsZ;
 class UTF8Chars;
 class UTF8CharsZ;
 
 template <typename T>
 class AutoVectorRooter;
 typedef AutoVectorRooter<Value> AutoValueVector;
 typedef AutoVectorRooter<jsid> AutoIdVector;
 typedef AutoVectorRooter<JSObject*> AutoObjectVector;
+typedef AutoVectorRooter<JSFunction*> AutoFunctionVector;
 typedef AutoVectorRooter<JSScript*> AutoVector;
 
 class AutoIdArray;
 
 template <typename T> class AutoVectorRooter;
 template<typename K, typename V> class AutoHashMapRooter;
 template<typename T> class AutoHashSetRooter;
 template<typename T> class RootedGeneric;
@@ -76,23 +76,19 @@ using JS::TwoByteChars;
 using JS::TwoByteCharsZ;
 using JS::UTF8Chars;
 using JS::UTF8CharsZ;
 
 using JS::AutoVectorRooter;
 typedef AutoVectorRooter<Value> AutoValueVector;
 typedef AutoVectorRooter<jsid> AutoIdVector;
 typedef AutoVectorRooter<JSObject*> AutoObjectVector;
+typedef AutoVectorRooter<JSFunction*> AutoFunctionVector;
 typedef AutoVectorRooter<JSScript*> AutoScriptVector;
 
-using ValueVector = TraceableVector<JS::Value>;
-using IdVector = TraceableVector<jsid>;
-using ObjectVector = TraceableVector<JSObject*>;
-using ScriptVector = TraceableVector<JSScript*>;
-
 using JS::AutoIdArray;
 
 using JS::AutoHashMapRooter;
 using JS::AutoHashSetRooter;
 using JS::RootedGeneric;
 
 using JS::CallArgs;
 using JS::CallNonGenericMethod;
--- a/js/src/frontend/Parser.h
+++ b/js/src/frontend/Parser.h
@@ -227,17 +227,17 @@ struct ParseContext : public GenericPars
   public:
     OwnedAtomDefnMapPtr lexdeps;    /* unresolved lexical name dependencies */
 
     FuncStmtSet*    funcStmts;     /* Set of (non-top-level) function statements
                                        that will alias any top-level bindings with
                                        the same name. */
 
     // All inner functions in this context. Only filled in when parsing syntax.
-    Rooted<TraceableVector<JSFunction*>> innerFunctions;
+    AutoFunctionVector innerFunctions;
 
     // In a function context, points to a Directive struct that can be updated
     // to reflect new directives encountered in the Directive Prologue that
     // require reparsing the function. In global/module/generator-tail contexts,
     // we don't need to reparse when encountering a DirectivePrologue so this
     // pointer may be nullptr.
     Directives* newDirectives;
 
@@ -268,17 +268,17 @@ struct ParseContext : public GenericPars
         decls_(prs->context, prs->alloc),
         args_(prs->context),
         vars_(prs->context),
         bodyLevelLexicals_(prs->context),
         parserPC(&prs->pc),
         oldpc(prs->pc),
         lexdeps(prs->context),
         funcStmts(nullptr),
-        innerFunctions(prs->context, TraceableVector<JSFunction*>(prs->context)),
+        innerFunctions(prs->context),
         newDirectives(newDirectives),
         inDeclDestructuring(false)
     {
         prs->pc = this;
     }
 
     ~ParseContext();
 
--- a/js/src/jsapi.h
+++ b/js/src/jsapi.h
@@ -23,17 +23,16 @@
 #include "jspubtd.h"
 
 #include "js/CallArgs.h"
 #include "js/Class.h"
 #include "js/HashTable.h"
 #include "js/Id.h"
 #include "js/Principals.h"
 #include "js/RootingAPI.h"
-#include "js/TraceableVector.h"
 #include "js/TracingAPI.h"
 #include "js/Utility.h"
 #include "js/Value.h"
 #include "js/Vector.h"
 
 /************************************************************************/
 
 namespace JS {
@@ -210,23 +209,19 @@ class MOZ_STACK_CLASS AutoVectorRooter :
     }
 
     MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER
 };
 
 typedef AutoVectorRooter<Value> AutoValueVector;
 typedef AutoVectorRooter<jsid> AutoIdVector;
 typedef AutoVectorRooter<JSObject*> AutoObjectVector;
+typedef AutoVectorRooter<JSFunction*> AutoFunctionVector;
 typedef AutoVectorRooter<JSScript*> AutoScriptVector;
 
-using ValueVector = js::TraceableVector<JS::Value>;
-using IdVector = js::TraceableVector<jsid>;
-using ObjectVector = js::TraceableVector<JSObject*>;
-using ScriptVector = js::TraceableVector<JSScript*>;
-
 template<class Key, class Value>
 class AutoHashMapRooter : protected AutoGCRooter
 {
   private:
     typedef js::HashMap<Key, Value> HashMapImpl;
 
   public:
     explicit AutoHashMapRooter(JSContext* cx, ptrdiff_t tag