| Index: test/mjsunit/regress/regress-219.js
|
| diff --git a/test/mjsunit/regress/regress-219.js b/test/mjsunit/regress/regress-219.js
|
| index 4bfabdcf4390bfe1bf152200f4ccb17d733c6d8a..b751f0f60f1e88eecb0e91b81bc943308603c898 100644
|
| --- a/test/mjsunit/regress/regress-219.js
|
| +++ b/test/mjsunit/regress/regress-219.js
|
| @@ -30,6 +30,10 @@
|
| // We should now allow duplicates of flags.
|
| // (See http://code.google.com/p/v8/issues/detail?id=219)
|
|
|
| +// This has been reversed by issue 1628, since other browsers have also
|
| +// tightened their syntax.
|
| +// (See http://code.google.com/p/v8/issues/detail?id=1628)
|
| +
|
| // Base tests: we recognize the basic flags
|
|
|
| function assertFlags(re, global, multiline, ignoreCase) {
|
| @@ -53,124 +57,92 @@ assertFlags(re, true, true, true)
|
|
|
| // Double i's
|
|
|
| -re = /a/ii;
|
| -assertFlags(re, false, false, true)
|
| -
|
| -re = /a/gii;
|
| -assertFlags(re, true, false, true)
|
| +assertThrows("/a/ii");
|
|
|
| -re = /a/igi;
|
| -assertFlags(re, true, false, true)
|
| +assertThrows("/a/gii");
|
|
|
| -re = /a/iig;
|
| -assertFlags(re, true, false, true)
|
| +assertThrows("/a/igi");
|
|
|
| -re = /a/gimi;
|
| -assertFlags(re, true, true, true)
|
| +assertThrows("/a/iig");
|
|
|
| -re = /a/giim;
|
| -assertFlags(re, true, true, true)
|
| +assertThrows("/a/gimi");
|
|
|
| -re = /a/igim;
|
| -assertFlags(re, true, true, true)
|
| +assertThrows("/a/giim");
|
|
|
| +assertThrows("/a/igim");
|
|
|
| -re = RegExp("a", "ii");
|
| -assertFlags(re, false, false, true)
|
| +assertThrows(function(){ return RegExp("a", "ii"); })
|
|
|
| -re = RegExp("a", "gii");
|
| -assertFlags(re, true, false, true)
|
| +assertThrows(function(){ return RegExp("a", "gii"); })
|
|
|
| -re = RegExp("a", "igi");
|
| -assertFlags(re, true, false, true)
|
| +assertThrows(function(){ return RegExp("a", "igi"); })
|
|
|
| -re = RegExp("a", "iig");
|
| -assertFlags(re, true, false, true)
|
| +assertThrows(function(){ return RegExp("a", "iig"); })
|
|
|
| -re = RegExp("a", "gimi");
|
| -assertFlags(re, true, true, true)
|
| +assertThrows(function(){ return RegExp("a", "gimi"); })
|
|
|
| -re = RegExp("a", "giim");
|
| -assertFlags(re, true, true, true)
|
| +assertThrows(function(){ return RegExp("a", "giim"); })
|
|
|
| -re = RegExp("a", "igim");
|
| -assertFlags(re, true, true, true)
|
| +assertThrows(function(){ return RegExp("a", "igim"); })
|
|
|
| // Tripple i's
|
|
|
| -re = /a/iii;
|
| -assertFlags(re, false, false, true)
|
| +assertThrows("/a/iii");
|
|
|
| -re = /a/giii;
|
| -assertFlags(re, true, false, true)
|
| +assertThrows("/a/giii");
|
|
|
| -re = /a/igii;
|
| -assertFlags(re, true, false, true)
|
| +assertThrows("/a/igii");
|
|
|
| -re = /a/iigi;
|
| -assertFlags(re, true, false, true)
|
| +assertThrows("/a/iigi");
|
|
|
| -re = /a/iiig;
|
| -assertFlags(re, true, false, true)
|
| -
|
| -re = /a/miiig;
|
| -assertFlags(re, true, true, true)
|
| +assertThrows("/a/iiig");
|
|
|
| +assertThrows("/a/miiig");
|
|
|
| -re = RegExp("a", "iii");
|
| -assertFlags(re, false, false, true)
|
| +assertThrows(function(){ return RegExp("a", "iii"); })
|
|
|
| -re = RegExp("a", "giii");
|
| -assertFlags(re, true, false, true)
|
| +assertThrows(function(){ return RegExp("a", "giii"); })
|
|
|
| -re = RegExp("a", "igii");
|
| -assertFlags(re, true, false, true)
|
| +assertThrows(function(){ return RegExp("a", "igii"); })
|
|
|
| -re = RegExp("a", "iigi");
|
| -assertFlags(re, true, false, true)
|
| +assertThrows(function(){ return RegExp("a", "iigi"); })
|
|
|
| -re = RegExp("a", "iiig");
|
| -assertFlags(re, true, false, true)
|
| +assertThrows(function(){ return RegExp("a", "iiig"); })
|
|
|
| -re = RegExp("a", "miiig");
|
| -assertFlags(re, true, true, true)
|
| +assertThrows(function(){ return RegExp("a", "miiig"); })
|
|
|
| -// Illegal flags - flags late in string.
|
| +// Illegal flags - valid flags late in string.
|
|
|
| -re = /a/arglebargleglopglyf;
|
| -assertFlags(re, true, false, false)
|
| +assertThrows("/a/arglebargleglopglyf");
|
|
|
| -re = /a/arglebargleglopglif;
|
| -assertFlags(re, true, false, true)
|
| +assertThrows("/a/arglebargleglopglif");
|
|
|
| -re = /a/arglebargleglopglym;
|
| -assertFlags(re, true, true, false)
|
| +assertThrows("/a/arglebargleglopglym");
|
|
|
| -re = /a/arglebargleglopglim;
|
| -assertFlags(re, true, true, true)
|
| +assertThrows("/a/arglebargleglopglim");
|
|
|
| // Case of flags still matters.
|
|
|
| -re = /a/gmi;
|
| +var re = /a/gmi;
|
| assertFlags(re, true, true, true)
|
|
|
| -re = /a/Gmi;
|
| -assertFlags(re, false, true, true)
|
| +assertThrows("/a/Gmi");
|
|
|
| -re = /a/gMi;
|
| -assertFlags(re, true, false, true)
|
| +assertThrows("/a/gMi");
|
|
|
| -re = /a/gmI;
|
| -assertFlags(re, true, true, false)
|
| +assertThrows("/a/gmI");
|
|
|
| -re = /a/GMi;
|
| -assertFlags(re, false, false, true)
|
| +assertThrows("/a/GMi");
|
|
|
| -re = /a/GmI;
|
| -assertFlags(re, false, true, false)
|
| +assertThrows("/a/GmI");
|
|
|
| -re = /a/gMI;
|
| -assertFlags(re, true, false, false)
|
| +assertThrows("/a/gMI");
|
|
|
| -re = /a/GMI;
|
| -assertFlags(re, false, false, false)
|
| +assertThrows("/a/GMI");
|
| +
|
| +// Unicode escape sequences are not interpreted.
|
| +
|
| +assertThrows("/a/\\u0067");
|
| +assertThrows("/a/\\u0069");
|
| +assertThrows("/a/\\u006d");
|
| +assertThrows("/a/\\u006D");
|
|
|