Back out revision c35458a437cc (
bug 976305) for breaking DataStore tests. r=orange
--- a/dom/bindings/Codegen.py
+++ b/dom/bindings/Codegen.py
@@ -5934,17 +5934,20 @@ class CGAbstractStaticBindingMethod(CGAb
"""
def __init__(self, descriptor, name):
args = [Argument('JSContext*', 'cx'), Argument('unsigned', 'argc'),
Argument('JS::Value*', 'vp')]
CGAbstractStaticMethod.__init__(self, descriptor, name, "bool", args)
def definition_body(self):
unwrap = CGGeneric("""JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-JS::Rooted<JSObject*> obj(cx, &args.callee());""")
+JS::Rooted<JSObject*> obj(cx, args.computeThis(cx).toObjectOrNull());
+if (!obj) {
+ return false;
+}""")
return CGList([ CGIndenter(unwrap),
self.generate_code() ], "\n\n").define()
def generate_code(self):
assert(False) # Override me
def MakeNativeName(name):
return name[0].upper() + name[1:]