Backed out 4 changesets (bug 997285) for mochitest-2,3 and dt3 bustages on a CLOSED TREE r=bz
authorWes Kocher <wkocher@mozilla.com>
Mon, 05 May 2014 14:14:11 -0700
changeset 188963 46d57b8f48ce38f4127cd573cb8a0b1c2b8369dd
parent 188962 c46fb6bada285407691acbabad936ab878107ad7
child 188964 695049af76549c433f0798327a1f17139d163b96
push id3741
push userasasaki@mozilla.com
push dateMon, 21 Jul 2014 20:25:18 +0000
treeherdermozilla-esr52@4d6f46f5af68 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbz
bugs997285
milestone32.0a1
backs out1bc5b733beac26774da9297eb13b3216a319f141
ec145c86be716e932d213551d110a3e5fabb8c7d
c0b8aef8b57012a7b0c1dbff47f411d6d8620c8b
477094180dffa73631d6fc0a9c332ab513b5a3d8
Backed out 4 changesets (bug 997285) for mochitest-2,3 and dt3 bustages on a CLOSED TREE r=bz Backed out changeset 1bc5b733beac (bug 997285) Backed out changeset ec145c86be71 (bug 997285) Backed out changeset c0b8aef8b570 (bug 997285) Backed out changeset 477094180dff (bug 997285)
dom/bindings/Codegen.py
dom/bindings/parser/WebIDL.py
dom/webidl/DOMException.webidl
js/src/jsapi.cpp
js/src/jsapi.h
--- a/dom/bindings/Codegen.py
+++ b/dom/bindings/Codegen.py
@@ -2323,18 +2323,16 @@ class CGCreateInterfaceObjectsMethod(CGA
         CGAbstractMethod.__init__(self, descriptor, 'CreateInterfaceObjects', 'void', args)
         self.properties = properties
 
     def definition_body(self):
         if len(self.descriptor.prototypeChain) == 1:
             parentProtoType = "Rooted"
             if self.descriptor.interface.getExtendedAttribute("ArrayClass"):
                 getParentProto = "aCx, JS_GetArrayPrototype(aCx, aGlobal)"
-            elif self.descriptor.interface.getExtendedAttribute("ExceptionClass"):
-                getParentProto = "aCx, JS_GetErrorPrototype(aCx)"
             else:
                 getParentProto = "aCx, JS_GetObjectPrototype(aCx, aGlobal)"
         else:
             parentProtoName = self.descriptor.prototypeChain[-2]
             parentDesc = self.descriptor.getDescriptor(parentProtoName)
             if parentDesc.workers:
                 parentProtoName += '_workers'
             getParentProto = ("%s::GetProtoObject(aCx, aGlobal)" %
--- a/dom/bindings/parser/WebIDL.py
+++ b/dom/bindings/parser/WebIDL.py
@@ -963,24 +963,16 @@ class IDLInterface(IDLObjectWithScope):
             elif (identifier == "ArrayClass"):
                 if not attr.noArguments():
                     raise WebIDLError("[ArrayClass] must take no arguments",
                                       [attr.location])
                 if self.parent:
                     raise WebIDLError("[ArrayClass] must not be specified on "
                                       "an interface with inherited interfaces",
                                       [attr.location, self.location])
-            elif (identifier == "ExceptionClass"):
-                if not attr.noArguments():
-                    raise WebIDLError("[ExceptionClass] must take no arguments",
-                                      [attr.location])
-                if self.parent:
-                    raise WebIDLError("[ExceptionClass] must not be specified on "
-                                      "an interface with inherited interfaces",
-                                      [attr.location, self.location])
             elif identifier == "Global":
                 if not attr.noArguments():
                     raise WebIDLError("[Global] must take no arguments",
                                       [attr.location])
                 self._isOnGlobalProtoChain = True
             elif (identifier == "NeedNewResolve" or
                   identifier == "OverrideBuiltins" or
                   identifier == "ChromeOnly"):
--- a/dom/webidl/DOMException.webidl
+++ b/dom/webidl/DOMException.webidl
@@ -13,28 +13,21 @@
 
 // This is the WebIDL version of nsIException.  This is mostly legacy stuff.
 
 interface StackFrame;
 
 [NoInterfaceObject]
 interface ExceptionMembers
 {
-  // A custom message set by the thrower.  LenientThis so it can be
-  // gotten on the prototype, which Error.prototype.toString will do
-  // if someone tries to stringify DOMException.prototype.
-  [LenientThis]
+  // A custom message set by the thrower.
   readonly attribute DOMString               message;
   // The nsresult associated with this exception.
   readonly attribute unsigned long           result;
-  // The name of the error code (ie, a string repr of |result|).
-  // LenientThis so it can be gotten on the prototype, which
-  // Error.prototype.toString will do if someone tries to stringify
-  // DOMException.prototype.
-  [LenientThis]
+  // The name of the error code (ie, a string repr of |result|)
   readonly attribute DOMString               name;
 
   // Filename location.  This is the location that caused the
   // error, which may or may not be a source file location.
   // For example, standard language errors would generally have
   // the same location as their top stack entry.  File
   // parsers may put the location of the file they were parsing,
   // etc.
@@ -51,29 +44,29 @@ interface ExceptionMembers
   // this was only ever usefully available to chrome JS.
   [ChromeOnly]
   readonly attribute StackFrame?             location;
   // An inner exception that triggered this, if available.
   readonly attribute nsISupports?            inner;
 
   // Arbitary data for the implementation.
   readonly attribute nsISupports?            data;
+
+  // A generic formatter - make it suitable to print, etc.
+  stringifier;
 };
 
 [NoInterfaceObject]
 interface Exception {
-  // A generic formatter - make it suitable to print, etc.
-  stringifier;
 };
 
 Exception implements ExceptionMembers;
 
 // XXXkhuey this is an 'exception', not an interface, but we don't have any
 // parser or codegen mechanisms for dealing with exceptions.
-[ExceptionClass]
 interface DOMException {
   const unsigned short INDEX_SIZE_ERR = 1;
   const unsigned short DOMSTRING_SIZE_ERR = 2; // historical
   const unsigned short HIERARCHY_REQUEST_ERR = 3;
   const unsigned short WRONG_DOCUMENT_ERR = 4;
   const unsigned short INVALID_CHARACTER_ERR = 5;
   const unsigned short NO_DATA_ALLOWED_ERR = 6; // historical
   const unsigned short NO_MODIFICATION_ALLOWED_ERR = 7;
--- a/js/src/jsapi.cpp
+++ b/js/src/jsapi.cpp
@@ -1380,24 +1380,16 @@ JS_GetArrayPrototype(JSContext *cx, Hand
 {
     CHECK_REQUEST(cx);
     assertSameCompartment(cx, forObj);
     Rooted<GlobalObject*> global(cx, &forObj->global());
     return GlobalObject::getOrCreateArrayPrototype(cx, global);
 }
 
 JS_PUBLIC_API(JSObject *)
-JS_GetErrorPrototype(JSContext *cx)
-{
-    CHECK_REQUEST(cx);
-    Rooted<GlobalObject*> global(cx, cx->global());
-    return GlobalObject::getOrCreateCustomErrorPrototype(cx, global, JSEXN_ERR);
-}
-
-JS_PUBLIC_API(JSObject *)
 JS_GetGlobalForObject(JSContext *cx, JSObject *obj)
 {
     AssertHeapIsIdle(cx);
     assertSameCompartment(cx, obj);
     return &obj->global();
 }
 
 extern JS_PUBLIC_API(bool)
--- a/js/src/jsapi.h
+++ b/js/src/jsapi.h
@@ -1821,23 +1821,16 @@ JS_GetObjectPrototype(JSContext *cx, JS:
 
 /*
  * Returns the original value of |Array.prototype| from the global object in
  * which |forObj| was created.
  */
 extern JS_PUBLIC_API(JSObject *)
 JS_GetArrayPrototype(JSContext *cx, JS::HandleObject forObj);
 
-/*
- * Returns the original value of |Error.prototype| from the global
- * object of the current compartment of cx.
- */
-extern JS_PUBLIC_API(JSObject *)
-JS_GetErrorPrototype(JSContext *cx);
-
 extern JS_PUBLIC_API(JSObject *)
 JS_GetGlobalForObject(JSContext *cx, JSObject *obj);
 
 extern JS_PUBLIC_API(bool)
 JS_IsGlobalObject(JSObject *obj);
 
 /*
  * May return nullptr, if |c| never had a global (e.g. the atoms compartment),