From 9792b7f6d0579afb4e2e0add5c027c55ca47ff88 Mon Sep 17 00:00:00 2001 From: "bzbarsky%mit.edu" Date: Wed, 1 Jun 2005 15:20:29 +0000 Subject: [PATCH] Fix toString on the XPCNativeWrapper prototype to return something sane instead of crashing. Bug 295430, r+sr=jst, a=shaver git-svn-id: svn://10.0.0.236/trunk@173914 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/js/src/xpconnect/src/XPCNativeWrapper.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mozilla/js/src/xpconnect/src/XPCNativeWrapper.cpp b/mozilla/js/src/xpconnect/src/XPCNativeWrapper.cpp index d490696490c..005cf819835 100644 --- a/mozilla/js/src/xpconnect/src/XPCNativeWrapper.cpp +++ b/mozilla/js/src/xpconnect/src/XPCNativeWrapper.cpp @@ -1020,6 +1020,18 @@ XPC_NW_toString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, XPCWrappedNative *wrappedNative = XPCNativeWrapper::GetWrappedNative(cx, obj); + if (!wrappedNative) { + // toString() called on XPCNativeWrapper.prototype + NS_NAMED_LITERAL_STRING(protoString, "[object XPCNativeWrapper]"); + JSString *str = + ::JS_NewUCStringCopyN(cx, NS_REINTERPRET_CAST(const jschar*, + protoString.get()), + protoString.Length()); + NS_ENSURE_TRUE(str, JS_FALSE); + *rval = STRING_TO_JSVAL(str); + return JS_TRUE; + } + JSObject *wn_obj = wrappedNative->GetFlatJSObject(); jsval toStringVal;