| //------------------------------------------------------------------------------------------------------- |
| // Copyright (C) Microsoft. All rights reserved. |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. |
| //------------------------------------------------------------------------------------------------------- |
| |
| var sources = [ |
| "/(?:)/", |
| "", |
| "(?:)", |
| |
| "/a\\tb/", |
| "a\tb", |
| "a\\tb", |
| |
| "/a\\nb/", |
| "a\nb", |
| "a\\nb", |
| |
| "/a\\x0ab/", |
| "a\x0ab", |
| "a\\x0ab", |
| |
| "/a\\u000ab/", |
| "a\u000ab", |
| "a\\u000ab" |
| ]; |
| var sourceIndex = 0; |
| |
| var flags = ["g", "i", "m", "gi", "ig", "gm", "mg", "im", "mi", "gim", "gmi", "igm", "img", "mgi", "mig"]; |
| var flagIndex = 0; |
| |
| var n = Math.max(sources.length, flags.length); |
| for(var i = 0; i < n; ++i) { |
| var s = sources[sourceIndex++ % sources.length]; |
| var f = flags[flagIndex++ % flags.length]; |
| var r; |
| if(s.charAt(0) === "/") |
| r = eval(s + f); |
| else |
| r = new RegExp(s, f); |
| runTest(r); |
| } |
| |
| function runTest(r) { |
| echo(r.source); |
| echo(r.toString()); |
| } |
| |
| //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| |
| function echo() { |
| var doEcho; |
| if(this.WScript) |
| doEcho = function (s) { this.WScript.Echo(s); }; |
| else if(this.document) |
| doEcho = function (s) { |
| var div = this.document.createElement("div"); |
| div.innerText = s; |
| this.document.body.appendChild(div); |
| }; |
| else |
| doEcho = function (s) { this.print(s); }; |
| echo = function () { |
| var s = ""; |
| for(var i = 0; i < arguments.length; ++i) |
| s += arguments[i]; |
| doEcho(s); |
| }; |
| echo.apply(this, arguments); |
| } |