2 * File Name: RegExp/exec-002.js
3 * ECMA Section: 15.7.5.3
4 * Description: Based on ECMA 2 Draft 7 February 1999
6 * Test cases provided by rogerl@netscape.com
8 * Author: christine@netscape.com
9 * Date: 19 February 1999
11 var SECTION = "RegExp/exec-002";
12 var VERSION = "ECMA_2";
13 var TITLE = "RegExp.prototype.exec(string)";
18 * for each test case, verify:
19 * - type of object returned
20 * - length of the returned array
21 * - value of lastIndex
24 * - value of the array indices
98 ["adcaxc", "axc", "x"] );
126 'xx\"makudonarudo\"yy',
128 ["\"makudonarudo\"", "o"] );
138 function AddRegExpCases(
139 regexp, pattern, index, matches_array ) {
141 // prevent a runtime error
143 if ( regexp.exec(pattern) == null || matches_array == null ) {
145 regexp + ".exec(" + pattern +")",
147 regexp.exec(pattern) );
152 regexp + ".exec(" + pattern +").length",
153 matches_array.length,
154 regexp.exec(pattern).length );
157 regexp + ".exec(" + pattern +").index",
159 regexp.exec(pattern).index );
162 regexp + ".exec(" + pattern +").input",
164 regexp.exec(pattern).input );
167 regexp + ".exec(" + pattern +").toString()",
168 matches_array.toString(),
169 regexp.exec(pattern).toString() );
171 var limit = matches_array.length > regexp.exec(pattern).length
172 ? matches_array.length
173 : regexp.exec(pattern).length;
175 for ( var matches = 0; matches < limit; matches++ ) {
177 regexp + ".exec(" + pattern +")[" + matches +"]",
178 matches_array[matches],
179 regexp.exec(pattern)[matches] );