18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * File Name: RegExp/octal-001.js 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ECMA Section: 15.7.1 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Description: Based on ECMA 2 Draft 7 February 1999 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Simple test cases for matching OctalEscapeSequences. 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/octal-001.js"; 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var VERSION = "ECMA_2"; 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var TITLE = "RegExp patterns that contain OctalEscapeSequences"; 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var BUGNUMBER="http://scopus/bugsplat/show_bug.cgi?id=346196"; 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project startTest(); 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// backreference 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddRegExpCases( 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project /(.)\1/, 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project "/(.)\\1/", 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project "HI!!", 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project "HI!", 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2, 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ["!!", "!"] ); 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project test(); 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectfunction AddRegExpCases( 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project regexp, str_regexp, pattern, str_pattern, index, matches_array ) { 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // prevent a runtime error 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if ( regexp.exec(pattern) == null || matches_array == null ) { 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project regexp + ".exec(" + str_pattern +")", 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project matches_array, 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project regexp.exec(pattern) ); 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return; 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project str_regexp + ".exec(" + str_pattern +").length", 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project matches_array.length, 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project regexp.exec(pattern).length ); 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project str_regexp + ".exec(" + str_pattern +").index", 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project index, 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project regexp.exec(pattern).index ); 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project str_regexp + ".exec(" + str_pattern +").input", 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project pattern, 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project regexp.exec(pattern).input ); 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project str_regexp + ".exec(" + str_pattern +").toString()", 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project matches_array.toString(), 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project regexp.exec(pattern).toString() ); 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var limit = matches_array.length > regexp.exec(pattern).length 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ? matches_array.length 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project : regexp.exec(pattern).length; 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project for ( var matches = 0; matches < limit; matches++ ) { 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AddTestCase( 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project str_regexp + ".exec(" + str_pattern +")[" + matches +"]", 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project matches_array[matches], 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project regexp.exec(pattern)[matches] ); 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 73