OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. All rights reserved. | 1 // Copyright (c) 2014, the Dart project authors. All rights reserved. |
2 // Copyright 2013 the V8 project authors. All rights reserved. | 2 // Copyright 2013 the V8 project authors. All rights reserved. |
3 // Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. | 3 // Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
4 // | 4 // |
5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
6 // modification, are permitted provided that the following conditions | 6 // modification, are permitted provided that the following conditions |
7 // are met: | 7 // are met: |
8 // 1. Redistributions of source code must retain the above copyright | 8 // 1. Redistributions of source code must retain the above copyright |
9 // notice, this list of conditions and the following disclaimer. | 9 // notice, this list of conditions and the following disclaimer. |
10 // 2. Redistributions in binary form must reproduce the above copyright | 10 // 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 26 matching lines...) Expand all Loading... |
37 | 37 |
38 // A character-class in a range is invalid, according to ECMA-262, but we allo
w it. | 38 // A character-class in a range is invalid, according to ECMA-262, but we allo
w it. |
39 shouldBe(new RegExp(r"[\d-x]+").firstMatch("1-3xy"), ["1-3x"]); | 39 shouldBe(new RegExp(r"[\d-x]+").firstMatch("1-3xy"), ["1-3x"]); |
40 shouldBe(new RegExp(r"[x-\d]+").firstMatch("1-3xy"), ["1-3x"]); | 40 shouldBe(new RegExp(r"[x-\d]+").firstMatch("1-3xy"), ["1-3x"]); |
41 shouldBe(new RegExp(r"[\\d-\d]+").firstMatch("1-3xy"), ["1-3"]); | 41 shouldBe(new RegExp(r"[\\d-\d]+").firstMatch("1-3xy"), ["1-3"]); |
42 | 42 |
43 // Whilst we break with ECMA-262's definition of CharacterRange, we do comply
with | 43 // Whilst we break with ECMA-262's definition of CharacterRange, we do comply
with |
44 // the grammar, and as such in the following regex a-z cannot be matched as a
range. | 44 // the grammar, and as such in the following regex a-z cannot be matched as a
range. |
45 shouldBe(new RegExp(r"[\d-a-z]+").firstMatch("az1-3y"), ["az1-3"]); | 45 shouldBe(new RegExp(r"[\d-a-z]+").firstMatch("az1-3y"), ["az1-3"]); |
46 | 46 |
47 // An escaped hypen should not be confused for an invalid range. | 47 // An escaped hyphen should not be confused for an invalid range. |
48 shouldBe(new RegExp(r"[\d\-x]+").firstMatch("1-3xy"), ["1-3x"]); | 48 shouldBe(new RegExp(r"[\d\-x]+").firstMatch("1-3xy"), ["1-3x"]); |
49 shouldBe(new RegExp(r"[x\-\d]+").firstMatch("1-3xy"), ["1-3x"]); | 49 shouldBe(new RegExp(r"[x\-\d]+").firstMatch("1-3xy"), ["1-3x"]); |
50 shouldBe(new RegExp(r"[\d\-\d]+").firstMatch("1-3xy"), ["1-3"]); | 50 shouldBe(new RegExp(r"[\d\-\d]+").firstMatch("1-3xy"), ["1-3"]); |
51 | 51 |
52 // A hyphen after a character-class is not invalid. | 52 // A hyphen after a character-class is not invalid. |
53 shouldBe(new RegExp(r"[\d-]+").firstMatch("1-3xy"), ["1-3"]); | 53 shouldBe(new RegExp(r"[\d-]+").firstMatch("1-3xy"), ["1-3"]); |
54 } | 54 } |
OLD | NEW |