Back out 66882ea6f8c7 (bug 788293) and 32f09cb3c7b6 (bug 834090) for bustage

CLOSED TREE
This commit is contained in:
Phil Ringnalda
2013-01-31 22:29:30 -08:00
parent 8a6a6457bd
commit 6c1eebfede
96 changed files with 13074 additions and 295 deletions

View File

@@ -24,6 +24,7 @@
#include "jsnum.h"
#include "jsstr.h"
#include "jsversion.h"
#include "jsxml.h"
#include "frontend/Parser.h"
#include "gc/Marking.h"
@@ -56,6 +57,7 @@ const char * js::TypeStrings[] = {
js_number_str,
js_boolean_str,
js_null_str,
js_xml_str,
};
#define DEFINE_PROTO_STRING(name,code,init) const char js_##name##_str[] = #name;
@@ -450,6 +452,32 @@ js::InternNonIntElementId(JSContext *cx, JSObject *obj, const Value &idval,
typename MaybeRooted<jsid, allowGC>::MutableHandleType idp,
typename MaybeRooted<Value, allowGC>::MutableHandleType vp)
{
#if JS_HAS_XML_SUPPORT
if (idval.isObject()) {
JSObject *idobj = &idval.toObject();
if (obj && obj->isXML()) {
idp.set(OBJECT_TO_JSID(idobj));
vp.set(idval);
return true;
}
if (!allowGC)
return false;
if (js_GetLocalNameFromFunctionQName(idobj, idp.address(), cx)) {
vp.set(IdToValue(idp));
return true;
}
if (!obj && idobj->isXMLId()) {
idp.set(OBJECT_TO_JSID(idobj));
vp.set(idval);
return JS_TRUE;
}
}
#endif
JSAtom *atom = ToAtom<allowGC>(cx, idval);
if (!atom)
return false;