properties-001.js revision d0825bca7fe65beaee391d30da42e937db621564
18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * File Name: RegExp/properties-001.js 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ECMA Section: 15.7.6.js 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Description: Based on ECMA 2 Draft 7 February 1999 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Author: christine@netscape.com 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Date: 19 February 1999 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var SECTION = "RegExp/properties-001.js"; 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var VERSION = "ECMA_2"; 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var TITLE = "Properties of RegExp Instances"; 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var BUGNUMBER ="http://scopus/bugsplat/show_bug.cgi?id=346000"; 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project startTest(); 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddRegExpCases( new RegExp, "", false, false, false, 0 ); 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddRegExpCases( /.*/, ".*", false, false, false, 0 ); 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddRegExpCases( /[\d]{5}/g, "[\\d]{5}", true, false, false, 0 ); 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddRegExpCases( /[\S]?$/i, "[\\S]?$", false, true, false, 0 ); 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddRegExpCases( /^([a-z]*)[^\w\s\f\n\r]+/m, "^([a-z]*)[^\\w\\s\\f\\n\\r]+", false, false, true, 0 ); 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddRegExpCases( /[\D]{1,5}[\ -][\d]/gi, "[\\D]{1,5}[\\ -][\\d]", true, true, false, 0 ); 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddRegExpCases( /[a-zA-Z0-9]*/gm, "[a-zA-Z0-9]*", true, false, true, 0 ); 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddRegExpCases( /x|y|z/gim, "x|y|z", true, true, true, 0 ); 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddRegExpCases( /\u0051/im, "\\u0051", false, true, true, 0 ); 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddRegExpCases( /\x45/gm, "\\x45", true, false, true, 0 ); 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddRegExpCases( /\097/gi, "\\097", true, true, false, 0 ); 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project test(); 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction AddRegExpCases( re, s, g, i, m, l ) { 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( re + ".test == RegExp.prototype.test", 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project true, 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project re.test == RegExp.prototype.test ); 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( re + ".toString == RegExp.prototype.toString", 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project true, 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project re.toString == RegExp.prototype.toString ); 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( re + ".contructor == RegExp.prototype.constructor", 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project true, 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project re.constructor == RegExp.prototype.constructor ); 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( re + ".compile == RegExp.prototype.compile", 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project true, 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project re.compile == RegExp.prototype.compile ); 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( re + ".exec == RegExp.prototype.exec", 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project true, 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project re.exec == RegExp.prototype.exec ); 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // properties 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( re + ".source", 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project s, 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project re.source ); 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 59d0825bca7fe65beaee391d30da42e937db621564Steve Block/* 60d0825bca7fe65beaee391d30da42e937db621564Steve Block * http://bugzilla.mozilla.org/show_bug.cgi?id=225550 changed 61d0825bca7fe65beaee391d30da42e937db621564Steve Block * the behavior of toString() and toSource() on empty regexps. 62d0825bca7fe65beaee391d30da42e937db621564Steve Block * So branch if |s| is the empty string - 63d0825bca7fe65beaee391d30da42e937db621564Steve Block */ 64d0825bca7fe65beaee391d30da42e937db621564Steve Block var S = s? s : '(?:)'; 65d0825bca7fe65beaee391d30da42e937db621564Steve Block 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( re + ".toString()", 67d0825bca7fe65beaee391d30da42e937db621564Steve Block "/" + S +"/" + (g?"g":"") + (i?"i":"") +(m?"m":""), 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project re.toString() ); 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( re + ".global", 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project g, 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project re.global ); 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( re + ".ignoreCase", 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project i, 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project re.ignoreCase ); 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( re + ".multiline", 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m, 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project re.multiline); 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( re + ".lastIndex", 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project l, 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project re.lastIndex ); 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 86