| 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 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 assertFalse(/x(...)\1/i.test("xaaaaa"), "backref-ASCII-short"); | 313 assertFalse(/x(...)\1/i.test("xaaaaa"), "backref-ASCII-short"); |
| 314 assertTrue(/x((?:))\1\1x/i.test("xx"), "backref-ASCII-empty"); | 314 assertTrue(/x((?:))\1\1x/i.test("xx"), "backref-ASCII-empty"); |
| 315 assertTrue(/x(?:...|(...))\1x/i.test("xabcx"), "backref-ASCII-uncaptured"); | 315 assertTrue(/x(?:...|(...))\1x/i.test("xabcx"), "backref-ASCII-uncaptured"); |
| 316 assertTrue(/x(?:...|(...))\1x/i.test("xabcABCx"), "backref-ASCII-backtrack"); | 316 assertTrue(/x(?:...|(...))\1x/i.test("xabcABCx"), "backref-ASCII-backtrack"); |
| 317 assertEquals("xaBcAbCABCx,aBc", | 317 assertEquals("xaBcAbCABCx,aBc", |
| 318 String(/x(...)\1\1x/i.exec("xaBcAbCABCx")), | 318 String(/x(...)\1\1x/i.exec("xaBcAbCABCx")), |
| 319 "backref-ASCII-twice"); | 319 "backref-ASCII-twice"); |
| 320 | 320 |
| 321 for (var i = 0; i < 128; i++) { | 321 for (var i = 0; i < 128; i++) { |
| 322 var testName = "backref-ASCII-char-" + i + "," + (i^0x20); | 322 var testName = "backref-ASCII-char-" + i + "," + (i^0x20); |
| 323 var test = /^(.)\1$/i.test(String.fromCharCode(i, i ^ 0x20)) | 323 var test = /^(.)\1$/i.test(String.fromCharCode(i, i ^ 0x20)); |
| 324 var c = String.fromCharCode(i); | 324 var c = String.fromCharCode(i); |
| 325 if (('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z')) { | 325 if (('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z')) { |
| 326 assertTrue(test, testName); | 326 assertTrue(test, testName); |
| 327 } else { | 327 } else { |
| 328 assertFalse(test, testName); | 328 assertFalse(test, testName); |
| 329 } | 329 } |
| 330 } | 330 } |
| 331 | 331 |
| 332 assertFalse(/f(o)$\1/.test('foo'), "backref detects at_end"); | 332 assertFalse(/f(o)$\1/.test('foo'), "backref detects at_end"); |
| 333 | 333 |
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 683 // Syntax extension relative to ES5, for matching JSC (and ES3). | 683 // Syntax extension relative to ES5, for matching JSC (and ES3). |
| 684 // Shouldn't throw. | 684 // Shouldn't throw. |
| 685 re = RegExp("(?=x)*"); | 685 re = RegExp("(?=x)*"); |
| 686 re = RegExp("(?!x)*"); | 686 re = RegExp("(?!x)*"); |
| 687 | 687 |
| 688 // Should throw. Shouldn't hit asserts in debug mode. | 688 // Should throw. Shouldn't hit asserts in debug mode. |
| 689 assertThrows("RegExp('(*)')"); | 689 assertThrows("RegExp('(*)')"); |
| 690 assertThrows("RegExp('(?:*)')"); | 690 assertThrows("RegExp('(?:*)')"); |
| 691 assertThrows("RegExp('(?=*)')"); | 691 assertThrows("RegExp('(?=*)')"); |
| 692 assertThrows("RegExp('(?!*)')"); | 692 assertThrows("RegExp('(?!*)')"); |
| OLD | NEW |