diff options
Diffstat (limited to 'src/3rdparty/v8/test/mjsunit/string-match.js')
-rwxr-xr-x | src/3rdparty/v8/test/mjsunit/string-match.js | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/src/3rdparty/v8/test/mjsunit/string-match.js b/src/3rdparty/v8/test/mjsunit/string-match.js deleted file mode 100755 index 202396d..0000000 --- a/src/3rdparty/v8/test/mjsunit/string-match.js +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright 2009 the V8 project authors. All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -/** - * @fileoverview Test String.prototype.match - */ - - -function testMatch(name, input, regexp, result, captures, from, to) { - var matchResult = input.match(regexp); - assertEquals(result, matchResult, name + "-match"); - - var match = input.substring(from, to); - var preMatch = input.substring(0, from); - var postMatch = input.substring(to); - var lastParen = captures.length > 0 ? captures[captures.length - 1] : ""; - - if (regexp.global) { - // Returns array of matched strings. - var lastMatch = matchResult[matchResult.length - 1]; - assertEquals(match, lastMatch, name + "-match-string_g"); - } else { - // Returns array of match and captures. - assertEquals(match, matchResult[0], name + "-match-string"); - assertEquals(captures.length + 1, matchResult.length, name + "-cap-return"); - for (var i = 1; i < matchResult.length; i++) { - assertEquals(captures[i - 1], matchResult[i], name + "-cap-return-" + i); - } - } - - assertEquals(match, RegExp["$&"], name + "-$&"); - assertEquals(match, RegExp.lastMatch, name + "-lastMatch"); - - assertEquals(undefined, RegExp.$0, name + "-nocapture-10"); - for (var i = 1; i <= 9; i++) { - if (i <= captures.length) { - assertEquals(captures[i - 1], RegExp["$" + i], name + "-capture-" + i); - } else { - assertEquals("", RegExp["$" + i], name + "-nocapture-" + i); - } - } - assertEquals(undefined, RegExp.$10, name + "-nocapture-10"); - - assertEquals(input, RegExp.input, name + "-input"); - assertEquals(input, RegExp.$input, name + "-$input"); - assertEquals(input, RegExp.$_, name + "-$_"); - - assertEquals(preMatch, RegExp["$`"], name + "-$`"); - assertEquals(preMatch, RegExp.leftContext, name + "-leftContex"); - - assertEquals(postMatch, RegExp["$'"], name + "-$'"); - assertEquals(postMatch, RegExp.rightContext, name + "-rightContex"); - - assertEquals(lastParen, RegExp["$+"], name + "-$+"); - assertEquals(lastParen, RegExp.lastParen, name + "-lastParen"); - -} - - -var stringSample = "A man, a plan, a canal: Panama"; -var stringSample2 = "Argle bargle glop glyf!"; -var stringSample3 = "abcdefghijxxxxxxxxxx"; - - -// Non-capturing, non-global regexp. - -var re_nog = /\w+/; - -testMatch("Nonglobal", stringSample, re_nog, - ["A"], - [], 0, 1); - - -re_nog.lastIndex = 2; - -testMatch("Nonglobal-ignore-lastIndex", stringSample, re_nog, - ["A"], - [], 0, 1); - - -// Capturing non-global regexp. - -var re_multicap = /(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)/; -testMatch("Capture-Nonglobal", stringSample3, re_multicap, - ["abcdefghij", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j"], - ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"], 0, 10); - - -// Global regexp (also check that capture from before are cleared) - -var re = /\w+/g; -testMatch("Global", stringSample2, re, - ["Argle", "bargle", "glop", "glyf"], [], 18, 22); - -re.lastIndex = 10; - -testMatch("Global-ignore-lastIndex", stringSample2, re, - ["Argle", "bargle", "glop", "glyf"], [], 18, 22); - - -// Capturing global regexp - -var re_cap = /\w(\w*)/g; - -testMatch("Capture-Global", stringSample, re_cap, - ["A", "man", "a", "plan", "a", "canal", "Panama"], - ["anama"], 24, 30); - - -// Atom, non-global - -var re_atom = /an/; - -testMatch("Atom", stringSample, re_atom, - ["an"], - [], 3, 5); - - -// Atom, global - -var re_atomg = /an/g; - -testMatch("Global-Atom", stringSample, re_atomg, - ["an", "an", "an", "an"], - [], 25, 27); |