/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/**
* File Name: RegExp/multiline-001.js
* ECMA Section:
* Description: Based on ECMA 2 Draft 7 February 1999
*
* Date: 19 February 1999
*/
var SECTION =
"RegExp/multiline-001";
var TITLE =
"RegExp: multiline flag";
var BUGNUMBER=
"343901";
printBugNumber(BUGNUMBER);
var woodpeckers =
"ivory-billed\ndowny\nhairy\nacorn\nyellow-bellied sapsucker\n" +
"northern flicker\npileated\n";
AddRegExpCases( /.*[y]$/m, woodpeckers, woodpeckers.indexOf(
"downy"), [
"downy"] );
AddRegExpCases( /.*[d]$/m, woodpeckers, woodpeckers.indexOf(
"ivory-billed"), [
"ivory-billed"] );
test();
function AddRegExpCases
( regexp, pattern, index, matches_array ) {
// prevent a runtime error
if ( regexp.exec(pattern) ==
null || matches_array ==
null ) {
AddTestCase(
regexp +
".exec(" + pattern +
")",
matches_array,
regexp.exec(pattern) );
return;
}
AddTestCase(
regexp.toString() +
".exec(" + pattern +
").length",
matches_array.length,
regexp.exec(pattern).length );
AddTestCase(
regexp.toString() +
".exec(" + pattern +
").index",
index,
regexp.exec(pattern).index );
AddTestCase(
regexp +
".exec(" + pattern +
").input",
pattern,
regexp.exec(pattern).input );
for (
var matches = 0; matches < matches_array.length; matches++ ) {
AddTestCase(
regexp +
".exec(" + pattern +
")[" + matches +
"]",
matches_array[matches],
regexp.exec(pattern)[matches] );
}
}