From ab041effa328d2a8c85f83eb8ef782d7a846301c Mon Sep 17 00:00:00 2001 From: "jwalden%mit.edu" Date: Fri, 7 Mar 2008 23:28:55 +0000 Subject: [PATCH] Bug 352044 - Issues with Unicode escape sequences in JavaScript source code; Unicode escapes not part of identifiers were being treated as their equivalent CVs, and non-identifier Unicode escapes within identifiers were being treated as their CVs (simultaneously starting a new token). acid3++ r=mrbkap, a=damons git-svn-id: svn://10.0.0.236/trunk@247338 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/js/src/jsscan.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mozilla/js/src/jsscan.c b/mozilla/js/src/jsscan.c index b1b693bbcf4..93eb56b13aa 100644 --- a/mozilla/js/src/jsscan.c +++ b/mozilla/js/src/jsscan.c @@ -1211,16 +1211,19 @@ retry: hadUnicodeEscape = JS_FALSE; if (JS_ISIDSTART(c) || (c == '\\' && - (c = GetUnicodeEscape(ts), - hadUnicodeEscape = JS_ISIDSTART(c)))) { + (qc = GetUnicodeEscape(ts), + hadUnicodeEscape = JS_ISIDSTART(qc)))) { + if (hadUnicodeEscape) + c = qc; INIT_TOKENBUF(); for (;;) { ADD_TO_TOKENBUF(c); c = GetChar(ts); if (c == '\\') { - c = GetUnicodeEscape(ts); - if (!JS_ISIDENT(c)) + qc = GetUnicodeEscape(ts); + if (!JS_ISIDENT(qc)) break; + c = qc; hadUnicodeEscape = JS_TRUE; } else { if (!JS_ISIDENT(c))