OLD | NEW |
1 // Copyright 2008 the V8 project authors. All rights reserved. | 1 // Copyright 2008 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 assertEquals('012', RegExp['$3']); | 112 assertEquals('012', RegExp['$3']); |
113 for (var i = 4; i < 10; ++i) { | 113 for (var i = 4; i < 10; ++i) { |
114 assertEquals('', RegExp['$' + i]); | 114 assertEquals('', RegExp['$' + i]); |
115 } | 115 } |
116 | 116 |
117 // String.prototype.replace must interleave matching and replacing when a | 117 // String.prototype.replace must interleave matching and replacing when a |
118 // global regexp is matched and replaced with the result of a function, in | 118 // global regexp is matched and replaced with the result of a function, in |
119 // case the function uses the static properties of the regexp constructor. | 119 // case the function uses the static properties of the regexp constructor. |
120 re = /(.)/g; | 120 re = /(.)/g; |
121 function f() { return RegExp.$1; }; | 121 function f() { return RegExp.$1; }; |
122 assertEquals('abcd', 'abcd'.replace(re, f)); | 122 assertEquals('dddd', 'abcd'.replace(re, f)); |
123 | 123 |
124 // lastParen where the last parenthesis didn't match. | 124 // lastParen where the last parenthesis didn't match. |
125 assertEquals(["foo",undefined], /foo(?:a(x))?/.exec("foobx"), | 125 assertEquals(["foo",undefined], /foo(?:a(x))?/.exec("foobx"), |
126 "lastParen setup"); | 126 "lastParen setup"); |
127 assertEquals("", RegExp.lastParen, "lastParen"); | 127 assertEquals("", RegExp.lastParen, "lastParen"); |
128 | 128 |
129 // The same test for $1 to $9. | 129 // The same test for $1 to $9. |
130 for (var i = 1; i <= 9; i++) { | 130 for (var i = 1; i <= 9; i++) { |
131 var haystack = "foo"; | 131 var haystack = "foo"; |
132 var re_text = "^foo"; | 132 var re_text = "^foo"; |
(...skipping 19 matching lines...) Expand all Loading... |
152 // Ensure that we save the correct string as the last subject when | 152 // Ensure that we save the correct string as the last subject when |
153 // we do a match on a sliced string (the top one not the underlying). | 153 // we do a match on a sliced string (the top one not the underlying). |
154 var foo = "lsdfj sldkfj sdklfj læsdfjl sdkfjlsdk fjsdl fjsdljskdj flsj flsdkj fl
skd regexp: /foobar/\nldkfj sdlkfj sdkl"; | 154 var foo = "lsdfj sldkfj sdklfj læsdfjl sdkfjlsdk fjsdl fjsdljskdj flsj flsdkj fl
skd regexp: /foobar/\nldkfj sdlkfj sdkl"; |
155 assertTrue(/^([a-z]+): (.*)/.test(foo.substring(foo.indexOf("regexp:"))), "regex
p: setup"); | 155 assertTrue(/^([a-z]+): (.*)/.test(foo.substring(foo.indexOf("regexp:"))), "regex
p: setup"); |
156 assertEquals("regexp", RegExp.$1, "RegExp.$1"); | 156 assertEquals("regexp", RegExp.$1, "RegExp.$1"); |
157 | 157 |
158 | 158 |
159 // Check that calling with no argument is the same as calling with undefined. | 159 // Check that calling with no argument is the same as calling with undefined. |
160 assertTrue(/^undefined$/.test()); | 160 assertTrue(/^undefined$/.test()); |
161 assertEquals(["undefined"], /^undefined$/.exec()); | 161 assertEquals(["undefined"], /^undefined$/.exec()); |
OLD | NEW |