From 566246d749dc1bbd6c27f9b5eb8533a113c4eb5e Mon Sep 17 00:00:00 2001 From: "igor%mir2.org" Date: Tue, 21 Apr 2009 10:27:31 +0000 Subject: [PATCH] bug 426520, r=brendan a1.9.0.10=dveditz git-svn-id: svn://10.0.0.236/trunk@256997 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/js/src/jsxml.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mozilla/js/src/jsxml.c b/mozilla/js/src/jsxml.c index 07e7964ac02..552d6b0d8e1 100644 --- a/mozilla/js/src/jsxml.c +++ b/mozilla/js/src/jsxml.c @@ -7841,15 +7841,18 @@ js_GetDefaultXMLNamespace(JSContext *cx, jsval *vp) } obj = NULL; - for (tmp = fp->scopeChain; tmp; tmp = OBJ_GET_PARENT(cx, obj)) { - obj = tmp; - if (!OBJ_GET_PROPERTY(cx, obj, JS_DEFAULT_XML_NAMESPACE_ID, &v)) + for (tmp = fp->scopeChain; tmp; tmp = OBJ_GET_PARENT(cx, tmp)) { + JSClass *clasp = OBJ_GET_CLASS(cx, tmp); + if (clasp == &js_BlockClass || clasp == &js_WithClass) + continue; + if (!OBJ_GET_PROPERTY(cx, tmp, JS_DEFAULT_XML_NAMESPACE_ID, &v)) return JS_FALSE; if (!JSVAL_IS_PRIMITIVE(v)) { fp->xmlNamespace = JSVAL_TO_OBJECT(v); *vp = v; return JS_TRUE; } + obj = tmp; } nsobj = js_ConstructObject(cx, &js_NamespaceClass.base, NULL, obj, 0, NULL);