Home | History | Annotate | Download | only in RegExp
      1 /**
      2  *  File Name:          RegExp/properties-001.js
      3  *  ECMA Section:       15.7.6.js
      4  *  Description:        Based on ECMA 2 Draft 7 February 1999
      5  *
      6  *  Author:             christine (at) netscape.com
      7  *  Date:               19 February 1999
      8  */
      9     var SECTION = "RegExp/properties-001.js";
     10     var VERSION = "ECMA_2";
     11     var TITLE   = "Properties of RegExp Instances";
     12     var BUGNUMBER ="http://scopus/bugsplat/show_bug.cgi?id=346000";
     13 
     14     startTest();
     15 
     16     AddRegExpCases( new RegExp, "",   false, false, false, 0 );
     17     AddRegExpCases( /.*/,       ".*", false, false, false, 0 );
     18     AddRegExpCases( /[\d]{5}/g, "[\\d]{5}", true, false, false, 0 );
     19     AddRegExpCases( /[\S]?$/i,  "[\\S]?$", false, true, false, 0 );
     20     AddRegExpCases( /^([a-z]*)[^\w\s\f\n\r]+/m,  "^([a-z]*)[^\\w\\s\\f\\n\\r]+", false, false, true, 0 );
     21     AddRegExpCases( /[\D]{1,5}[\ -][\d]/gi,      "[\\D]{1,5}[\\ -][\\d]", true, true, false, 0 );
     22     AddRegExpCases( /[a-zA-Z0-9]*/gm, "[a-zA-Z0-9]*", true, false, true, 0 );
     23     AddRegExpCases( /x|y|z/gim, "x|y|z", true, true, true, 0 );
     24 
     25     AddRegExpCases( /\u0051/im, "\\u0051", false, true, true, 0 );
     26     AddRegExpCases( /\x45/gm, "\\x45", true, false, true, 0 );
     27     AddRegExpCases( /\097/gi, "\\097", true, true, false, 0 );
     28 
     29     test();
     30 
     31 function AddRegExpCases( re, s, g, i, m, l ) {
     32 
     33     AddTestCase( re + ".test == RegExp.prototype.test",
     34                  true,
     35                  re.test == RegExp.prototype.test );
     36 
     37     AddTestCase( re + ".toString == RegExp.prototype.toString",
     38                  true,
     39                  re.toString == RegExp.prototype.toString );
     40 
     41     AddTestCase( re + ".contructor == RegExp.prototype.constructor",
     42                  true,
     43                  re.constructor == RegExp.prototype.constructor );
     44 
     45     AddTestCase( re + ".compile == RegExp.prototype.compile",
     46                  true,
     47                  re.compile == RegExp.prototype.compile );
     48 
     49     AddTestCase( re + ".exec == RegExp.prototype.exec",
     50                  true,
     51                  re.exec == RegExp.prototype.exec );
     52 
     53     // properties
     54 
     55     AddTestCase( re + ".source",
     56                  s,
     57                  re.source );
     58 
     59 /*
     60  * http://bugzilla.mozilla.org/show_bug.cgi?id=225550 changed
     61  * the behavior of toString() and toSource() on empty regexps.
     62  * So branch if |s| is the empty string -
     63  */
     64     var S = s? s : '(?:)';
     65 
     66     AddTestCase( re + ".toString()",
     67                  "/" + S +"/" + (g?"g":"") + (i?"i":"") +(m?"m":""),
     68                  re.toString() );
     69 
     70     AddTestCase( re + ".global",
     71                  g,
     72                  re.global );
     73 
     74     AddTestCase( re + ".ignoreCase",
     75                  i,
     76                  re.ignoreCase );
     77 
     78     AddTestCase( re + ".multiline",
     79                  m,
     80                  re.multiline);
     81 
     82     AddTestCase( re + ".lastIndex",
     83                  l,
     84                  re.lastIndex  );
     85 }
     86