diff --git a/mozilla/js/src/jsopcode.c b/mozilla/js/src/jsopcode.c index 3efb6ed16f6..41b1eeb3fc5 100644 --- a/mozilla/js/src/jsopcode.c +++ b/mozilla/js/src/jsopcode.c @@ -3440,7 +3440,8 @@ Decompile(SprintStack *ss, jsbytecode *pc, intN nb) lval = ""; do_qname: sn = js_GetSrcNote(jp->script, pc); - rval = QuoteString(&ss->sprinter, ATOM_TO_STRING(atom), 0); + rval = QuoteString(&ss->sprinter, ATOM_TO_STRING(atom), + inXML ? DONT_ESCAPE : 0); if (!rval) return NULL; RETRACT(&ss->sprinter, rval); @@ -3930,6 +3931,7 @@ Decompile(SprintStack *ss, jsbytecode *pc, intN nb) break; BEGIN_LITOPX_CASE(JSOP_QNAMEPART, 0) + inXML = JS_TRUE; if (pc[JSOP_QNAMEPART_LENGTH] == JSOP_TOATTRNAME) { saveop = JSOP_TOATTRNAME; len += JSOP_TOATTRNAME_LENGTH; @@ -4041,14 +4043,16 @@ Decompile(SprintStack *ss, jsbytecode *pc, intN nb) BEGIN_LITOPX_CASE(JSOP_XMLCDATA, 0) todo = SprintPut(&ss->sprinter, "sprinter, ATOM_TO_STRING(atom), 0)) + if (!QuoteString(&ss->sprinter, ATOM_TO_STRING(atom), + DONT_ESCAPE)) return NULL; SprintPut(&ss->sprinter, "]]>", 3); END_LITOPX_CASE BEGIN_LITOPX_CASE(JSOP_XMLCOMMENT, 0) todo = SprintPut(&ss->sprinter, "", 3); END_LITOPX_CASE