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