| /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ |
| /* This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| |
| /* |
| 15.10.4.1 new RegExp(pattern, flags) |
| |
| If F contains any character other than "g", "i", or" m", or if it |
| contains the same one more than once, then throw a SyntaxError |
| exception. |
| */ |
| |
| //----------------------------------------------------------------------------- |
| var BUGNUMBER = 476940; |
| var summary = 'Section 15.10.4.1 - RegExp with invalid flags'; |
| var actual = ''; |
| var expect = ''; |
| |
| |
| //----------------------------------------------------------------------------- |
| test(); |
| //----------------------------------------------------------------------------- |
| |
| function test() |
| { |
| enterFunc ('test'); |
| printBugNumber(BUGNUMBER); |
| printStatus (summary); |
| |
| var invalidflags = ['ii', 'gg', 'mm', 'a']; |
| |
| for (var i = 0; i < invalidflags.length; i++) |
| { |
| var flag = invalidflags[i]; |
| expect = 'SyntaxError: invalid regular expression flag ' + flag.charAt(0); |
| actual = ''; |
| try |
| { |
| new RegExp('bar', flag); |
| } |
| catch(ex) |
| { |
| actual = ex + ''; |
| } |
| reportCompare(expect, actual, summary + |
| ': new RegExp("bar", "' + flag + '")'); |
| |
| actual = ''; |
| try |
| { |
| eval("/bar/" + flag); |
| } |
| catch(ex) |
| { |
| actual = ex + ''; |
| } |
| reportCompare(expect, actual, summary + ': /bar/' + flag + ')'); |
| } |
| |
| exitFunc ('test'); |
| } |