1425bb815Sopenharmony_ci// Copyright JS Foundation and other contributors, http://js.foundation 2425bb815Sopenharmony_ci// 3425bb815Sopenharmony_ci// Licensed under the Apache License, Version 2.0 (the "License"); 4425bb815Sopenharmony_ci// you may not use this file except in compliance with the License. 5425bb815Sopenharmony_ci// You may obtain a copy of the License at 6425bb815Sopenharmony_ci// 7425bb815Sopenharmony_ci// http://www.apache.org/licenses/LICENSE-2.0 8425bb815Sopenharmony_ci// 9425bb815Sopenharmony_ci// Unless required by applicable law or agreed to in writing, software 10425bb815Sopenharmony_ci// distributed under the License is distributed on an "AS IS" BASIS 11425bb815Sopenharmony_ci// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12425bb815Sopenharmony_ci// See the License for the specific language governing permissions and 13425bb815Sopenharmony_ci// limitations under the License. 14425bb815Sopenharmony_ci 15425bb815Sopenharmony_civar r; 16425bb815Sopenharmony_ci 17425bb815Sopenharmony_cir = new RegExp ("[abc]*").exec("aaabbcccabcacbacabacbacab"); 18425bb815Sopenharmony_ciassert (r == "aaabbcccabcacbacabacbacab"); 19425bb815Sopenharmony_ci 20425bb815Sopenharmony_cir = new RegExp ("[abc]*").exec("aaabbcccabdcacb"); 21425bb815Sopenharmony_ciassert (r == "aaabbcccab"); 22425bb815Sopenharmony_ci 23425bb815Sopenharmony_cir = new RegExp ("[abc]*").exec("defghjklmnopqrstuvwxyz"); 24425bb815Sopenharmony_ciassert (r == ""); 25425bb815Sopenharmony_ci 26425bb815Sopenharmony_cir = new RegExp ("[a-z]*").exec("abcdefghjklmnopqrstuvwxyz"); 27425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 28425bb815Sopenharmony_ci 29425bb815Sopenharmony_cir = new RegExp ("[A-Z]*").exec("abcdefghjklmnopqrstuvwxyz"); 30425bb815Sopenharmony_ciassert (r == ""); 31425bb815Sopenharmony_ci 32425bb815Sopenharmony_cir = new RegExp ("[^a-z]*").exec("abcdefghjklmnopqrstuvwxyz"); 33425bb815Sopenharmony_ciassert (r == ""); 34425bb815Sopenharmony_ci 35425bb815Sopenharmony_cir = new RegExp ("[^A-Z]*").exec("abcdefghjklmnopqrstuvwxyz"); 36425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 37425bb815Sopenharmony_ci 38425bb815Sopenharmony_cir = new RegExp ("\\d*").exec("abcdefghjklmnopqrstuvwxyz"); 39425bb815Sopenharmony_ciassert (r == ""); 40425bb815Sopenharmony_ci 41425bb815Sopenharmony_cir = new RegExp ("\\D*").exec("abcdefghjklmnopqrstuvwxyz"); 42425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 43425bb815Sopenharmony_ci 44425bb815Sopenharmony_cir = new RegExp ("\\w*").exec("abcdefghjklmnopqrstuvwxyz"); 45425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 46425bb815Sopenharmony_ci 47425bb815Sopenharmony_cir = new RegExp ("\\W*").exec("abcdefghjklmnopqrstuvwxyz"); 48425bb815Sopenharmony_ciassert (r == ""); 49425bb815Sopenharmony_ci 50425bb815Sopenharmony_cir = new RegExp ("\\s*").exec("abcdefghjklmnopqrstuvwxyz"); 51425bb815Sopenharmony_ciassert (r == ""); 52425bb815Sopenharmony_ci 53425bb815Sopenharmony_cir = new RegExp ("\\S*").exec("abcdefghjklmnopqrstuvwxyz"); 54425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 55425bb815Sopenharmony_ci 56425bb815Sopenharmony_cir = new RegExp ("[\\d]*").exec("abcdefghjklmnopqrstuvwxyz"); 57425bb815Sopenharmony_ciassert (r == ""); 58425bb815Sopenharmony_ci 59425bb815Sopenharmony_cir = new RegExp ("[\\D]*").exec("abcdefghjklmnopqrstuvwxyz"); 60425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 61425bb815Sopenharmony_ci 62425bb815Sopenharmony_cir = new RegExp ("[\\w]*").exec("abcdefghjklmnopqrstuvwxyz"); 63425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 64425bb815Sopenharmony_ci 65425bb815Sopenharmony_cir = new RegExp ("[\\W]*").exec("abcdefghjklmnopqrstuvwxyz"); 66425bb815Sopenharmony_ciassert (r == ""); 67425bb815Sopenharmony_ci 68425bb815Sopenharmony_cir = new RegExp ("[\\s]*").exec("abcdefghjklmnopqrstuvwxyz"); 69425bb815Sopenharmony_ciassert (r == ""); 70425bb815Sopenharmony_ci 71425bb815Sopenharmony_cir = new RegExp ("[\\S]*").exec("abcdefghjklmnopqrstuvwxyz"); 72425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 73425bb815Sopenharmony_ci 74425bb815Sopenharmony_cir = new RegExp ("[^\\d]*").exec("abcdefghjklmnopqrstuvwxyz"); 75425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 76425bb815Sopenharmony_ci 77425bb815Sopenharmony_cir = new RegExp ("[^\\D]*").exec("abcdefghjklmnopqrstuvwxyz"); 78425bb815Sopenharmony_ciassert (r == ""); 79425bb815Sopenharmony_ci 80425bb815Sopenharmony_cir = new RegExp ("[^\\w]*").exec("abcdefghjklmnopqrstuvwxyz"); 81425bb815Sopenharmony_ciassert (r == ""); 82425bb815Sopenharmony_ci 83425bb815Sopenharmony_cir = new RegExp ("[^\\W]*").exec("abcdefghjklmnopqrstuvwxyz"); 84425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 85425bb815Sopenharmony_ci 86425bb815Sopenharmony_cir = new RegExp ("[^\\s]*").exec("abcdefghjklmnopqrstuvwxyz"); 87425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 88425bb815Sopenharmony_ci 89425bb815Sopenharmony_cir = new RegExp ("[^\\S]*").exec("abcdefghjklmnopqrstuvwxyz"); 90425bb815Sopenharmony_ciassert (r == ""); 91425bb815Sopenharmony_ci 92425bb815Sopenharmony_cir = new RegExp ("\\d*").exec("0123456789"); 93425bb815Sopenharmony_ciassert (r == "0123456789"); 94425bb815Sopenharmony_ci 95425bb815Sopenharmony_citry 96425bb815Sopenharmony_ci{ 97425bb815Sopenharmony_ci r = new RegExp("["); 98425bb815Sopenharmony_ci assert (false); 99425bb815Sopenharmony_ci} 100425bb815Sopenharmony_cicatch (e) 101425bb815Sopenharmony_ci{ 102425bb815Sopenharmony_ci assert (e instanceof SyntaxError); 103425bb815Sopenharmony_ci} 104425bb815Sopenharmony_ci 105425bb815Sopenharmony_citry 106425bb815Sopenharmony_ci{ 107425bb815Sopenharmony_ci r = new RegExp("[\\"); 108425bb815Sopenharmony_ci assert (false); 109425bb815Sopenharmony_ci} 110425bb815Sopenharmony_cicatch (e) 111425bb815Sopenharmony_ci{ 112425bb815Sopenharmony_ci assert (e instanceof SyntaxError); 113425bb815Sopenharmony_ci} 114425bb815Sopenharmony_ci 115425bb815Sopenharmony_cir = new RegExp ("^[\\u0061-\\u007a]+$").exec("abcdefghjklmnopqrstuvwxyz"); 116425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 117425bb815Sopenharmony_ci 118425bb815Sopenharmony_cir = new RegExp ("^[\\u0061-\\u007a]+").exec("abcdefghjklmnopqrstuvwxyz"); 119425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 120425bb815Sopenharmony_ci 121425bb815Sopenharmony_cir = new RegExp ("[\\u0061-\\u007a]+$").exec("abcdefghjklmnopqrstuvwxyz"); 122425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 123425bb815Sopenharmony_ci 124425bb815Sopenharmony_cir = new RegExp ("^[\\x61-\\x7a]+$").exec("abcdefghjklmnopqrstuvwxyz"); 125425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 126425bb815Sopenharmony_ci 127425bb815Sopenharmony_cir = new RegExp ("^[\\x61-\\x7a]+").exec("abcdefghjklmnopqrstuvwxyz"); 128425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 129425bb815Sopenharmony_ci 130425bb815Sopenharmony_cir = new RegExp ("[\\x61-\\x7a]+$").exec("abcdefghjklmnopqrstuvwxyz"); 131425bb815Sopenharmony_ciassert (r == "abcdefghjklmnopqrstuvwxyz"); 132425bb815Sopenharmony_ci 133425bb815Sopenharmony_cir = new RegExp("[\\u0800-\\uffff]", "g"); 134425bb815Sopenharmony_ciassert (r.test ("\uffff")); 135425bb815Sopenharmony_ciassert (!r.test ("\uffff")); 136425bb815Sopenharmony_ci 137425bb815Sopenharmony_cir = new RegExp("[\0]"); 138425bb815Sopenharmony_ciassert (r.test ("\0")); 139425bb815Sopenharmony_ciassert (!r.test ("0")); 140425bb815Sopenharmony_ci 141425bb815Sopenharmony_cir = new RegExp("[\0-\1]"); 142425bb815Sopenharmony_ciassert (r.test ("\1")); 143