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 = RegExp ("a","gim"); 16425bb815Sopenharmony_civar r2 = RegExp (r,"gim"); 17425bb815Sopenharmony_civar r3 = RegExp (r); 18425bb815Sopenharmony_ci 19425bb815Sopenharmony_ciassert(r2.source === 'a'); 20425bb815Sopenharmony_ciassert(r2.global === true); 21425bb815Sopenharmony_ciassert(r2.ignoreCase === true); 22425bb815Sopenharmony_ciassert(r2.multiline === true); 23425bb815Sopenharmony_ci 24425bb815Sopenharmony_ciassert(r3.source === 'a'); 25425bb815Sopenharmony_ciassert(r3.global === true); 26425bb815Sopenharmony_ciassert(r3.ignoreCase === true); 27425bb815Sopenharmony_ciassert(r3.multiline === true); 28425bb815Sopenharmony_ci 29425bb815Sopenharmony_civar obj = { get source() { throw 5 }, [Symbol.match] : true } 30425bb815Sopenharmony_ci 31425bb815Sopenharmony_citry { 32425bb815Sopenharmony_ci new RegExp (obj); 33425bb815Sopenharmony_ci assert(false) 34425bb815Sopenharmony_ci} catch (e) { 35425bb815Sopenharmony_ci assert(e === 5); 36425bb815Sopenharmony_ci} 37425bb815Sopenharmony_ci 38425bb815Sopenharmony_cir = new RegExp ("a","gimuy"); 39425bb815Sopenharmony_ciassert (r.global === true); 40425bb815Sopenharmony_ciassert (r.ignoreCase === true); 41425bb815Sopenharmony_ciassert (r.multiline === true); 42425bb815Sopenharmony_ciassert (r.unicode === true); 43425bb815Sopenharmony_ciassert (r.sticky === true); 44425bb815Sopenharmony_ci 45425bb815Sopenharmony_citry { 46425bb815Sopenharmony_ci new RegExp ("a", "uu"); 47425bb815Sopenharmony_ci assert (false); 48425bb815Sopenharmony_ci} catch (e) { 49425bb815Sopenharmony_ci assert (e instanceof SyntaxError); 50425bb815Sopenharmony_ci} 51425bb815Sopenharmony_ci 52425bb815Sopenharmony_citry { 53425bb815Sopenharmony_ci new RegExp ("a", "yy"); 54425bb815Sopenharmony_ci assert (false); 55425bb815Sopenharmony_ci} catch (e) { 56425bb815Sopenharmony_ci assert (e instanceof SyntaxError); 57425bb815Sopenharmony_ci} 58