| OLD | NEW | 
| (Empty) |  | 
 |   1 // Copyright (c) 2014, the Dart project authors. All rights reserved. | 
 |   2 // Copyright 2008 the V8 project authors. All rights reserved. | 
 |   3 // Redistribution and use in source and binary forms, with or without | 
 |   4 // modification, are permitted provided that the following conditions are | 
 |   5 // met: | 
 |   6 // | 
 |   7 //     * Redistributions of source code must retain the above copyright | 
 |   8 //       notice, this list of conditions and the following disclaimer. | 
 |   9 //     * Redistributions in binary form must reproduce the above | 
 |  10 //       copyright notice, this list of conditions and the following | 
 |  11 //       disclaimer in the documentation and/or other materials provided | 
 |  12 //       with the distribution. | 
 |  13 //     * Neither the name of Google Inc. nor the names of its | 
 |  14 //       contributors may be used to endorse or promote products derived | 
 |  15 //       from this software without specific prior written permission. | 
 |  16 // | 
 |  17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 
 |  18 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 
 |  19 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 
 |  20 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 
 |  21 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 
 |  22 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 
 |  23 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 
 |  24 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 
 |  25 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
 |  26 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 
 |  27 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
 |  28  | 
 |  29 import 'v8_regexp_utils.dart'; | 
 |  30 import 'package:expect/expect.dart'; | 
 |  31  | 
 |  32 void main() { | 
 |  33   dynamic CheckMatch(re, str, matches) { | 
 |  34     assertEquals(matches.length > 0, re.hasMatch(str)); | 
 |  35     var result = re.allMatches(str).toList(); | 
 |  36     if (matches.length > 0) { | 
 |  37       assertEquals(matches.length, result.length); | 
 |  38       var lastExpected; | 
 |  39       var lastFrom; | 
 |  40       var lastLength; | 
 |  41       for (var idx = 0; idx < matches.length; idx++) { | 
 |  42         var from = matches[idx][0]; | 
 |  43         var length = matches[idx][1]; | 
 |  44         var expected = str.substring(from, from + length); | 
 |  45         var name = "$str[$from..${from+length}]"; | 
 |  46         assertEquals(expected, result[idx].group(0), name); | 
 |  47       } | 
 |  48     } else { | 
 |  49       assertTrue(result.isEmpty); | 
 |  50     } | 
 |  51   } | 
 |  52  | 
 |  53   CheckMatch(new RegExp(r"abc"), "xxxabcxxxabcxxx", [[3, 3], [9, 3]]); | 
 |  54   CheckMatch(new RegExp(r"abc"), "abcabcabc", [[0, 3], [3, 3], [6, 3]]); | 
 |  55   CheckMatch(new RegExp(r"aba"), "ababababa", [[0, 3], [4, 3]]); | 
 |  56   CheckMatch(new RegExp(r"foo"), "ofooofoooofofooofo", [[1, 3], [5, 3], [12, 3]]
    ); | 
 |  57   CheckMatch(new RegExp(r"foobarbaz"), "xx", []); | 
 |  58   CheckMatch(new RegExp(r"abc"), "abababa", []); | 
 |  59  | 
 |  60   assertEquals("xxxdefxxxdefxxx", "xxxabcxxxabcxxx".replaceAll(new RegExp(r"abc"
    ), "def")); | 
 |  61   assertEquals("o-o-oofo-ofo", "ofooofoooofofooofo".replaceAll(new RegExp(r"foo"
    ), "-")); | 
 |  62   assertEquals("deded", "deded".replaceAll(new RegExp(r"x"), "-")); | 
 |  63   assertEquals("-a-b-c-d-e-f-", "abcdef".replaceAll(new RegExp(""), "-")); | 
 |  64  | 
 |  65   CheckMatch(new RegExp(r"a(.)"), "xyzzyabxyzzyacxyzzy", [[5, 2], [12, 2]]); | 
 |  66  | 
 |  67   CheckMatch(new RegExp(r"a|(?:)"), "aba", [[0, 1], [1, 0], [2, 1], [3, 0]]); | 
 |  68   CheckMatch(new RegExp(r"a|(?:)"), "baba", [[0, 0], [1, 1], [2, 0], [3, 1], [4,
     0]]); | 
 |  69   CheckMatch(new RegExp(r"a|(?:)"), "bab", [[0, 0], [1, 1], [2, 0], [3, 0]]); | 
 |  70 } | 
| OLD | NEW |