Reviewers: rossberg,

Description:
Correctly advance the parser when scanning unicode regexp flag.


[email protected]
BUG=136084
TEST=regress-136084.js


Please review this at https://chromiumcodereview.appspot.com/10703106/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/scanner.cc
  A + test/mjsunit/regress/regress-136048.js


Index: src/scanner.cc
diff --git a/src/scanner.cc b/src/scanner.cc
index f24af2ed2614ca4c756b7ebb06bc54e755454976..bd2db5818203f8e2ce3e93a56a3917f1e642b279 100755
--- a/src/scanner.cc
+++ b/src/scanner.cc
@@ -1077,6 +1077,7 @@ bool Scanner::ScanRegExpFlags() {
       if (!ScanLiteralUnicodeEscape()) {
         break;
       }
+      Advance();
     }
   }
   literal.Complete();
Index: test/mjsunit/regress/regress-136048.js
diff --git a/test/mjsunit/regress/regress-113924.js b/test/mjsunit/regress/regress-136048.js
similarity index 91%
copy from test/mjsunit/regress/regress-113924.js
copy to test/mjsunit/regress/regress-136048.js
index 3ecdec48f219b9ea545702ebf3a396debe7a93f8..c9972e96fc062b4618f8bf40ee83c15f185ff17c 100644
--- a/test/mjsunit/regress/regress-113924.js
+++ b/test/mjsunit/regress/regress-136048.js
@@ -25,7 +25,10 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-var count=12000;
-while(count--) {
-  eval("var a = new Object(10); a[2] += 7;");
+try {
+  /foo/\u0069
+} catch (e) {
+  assertEquals(
+ "SyntaxError: Invalid flags supplied to RegExp constructor '\\u0069'",
+      e.toString());
 }


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to