Index: test/webkit/gmail-re-re.js |
diff --git a/test/webkit/concat-while-having-a-bad-time.js b/test/webkit/gmail-re-re.js |
similarity index 57% |
copy from test/webkit/concat-while-having-a-bad-time.js |
copy to test/webkit/gmail-re-re.js |
index dfda1e08a0b36194b787a44ee12a9693acd8aeaf..75ba4ba66b01fa3ce6b544a6b15730e1aa5eaff8 100644 |
--- a/test/webkit/concat-while-having-a-bad-time.js |
+++ b/test/webkit/gmail-re-re.js |
@@ -21,11 +21,39 @@ |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-description( |
-"Tests the behavior of Array.prototype.concat while the array is having a bad time due to one of the elements we are concatenating." |
+description( |
+"Bug 7445, bug 7253: Handle Unicode escapes in regexps." |
); |
-Object.defineProperty(Array.prototype, 0, { writable: false }); |
-shouldBe("[42].concat()", "[42]"); |
+var I3=/^\s*(fwd|re|aw|antw|antwort|wg|sv|ang|odp|betreff|betr|transf|reenv\.|reenv|in|res|resp|resp\.|enc|\u8f6c\u53d1|\u56DE\u590D|\u041F\u0435\u0440\u0435\u0441\u043B|\u041E\u0442\u0432\u0435\u0442):\s*(.*)$/i; |
+// Other RegExs from Gmail source |
+var Ci=/\s+/g; |
+var BC=/^ /; |
+var BG=/ $/; |
+// Strips leading Re or similar (from Gmail source) |
+function cy(a) { |
+ //var b = I3.exec(a); |
+ var b = I3.exec(a); |
+ |
+ if (b) { |
+ a = b[2]; |
+ } |
+ |
+ return Gn(a); |
+} |
+ |
+// This function replaces consecutive whitespace with a single space |
+// then removes a leading and trailing space if they exist. (From Gmail) |
+function Gn(a) { |
+ return a.replace(Ci, " ").replace(BC, "").replace(BG, ""); |
+} |
+ |
+shouldBe('cy("Re: Hello")', '"Hello"'); |
+shouldBe('cy("Ответ: Hello")', '"Hello"'); |
+ |
+// --------------------------------------------------------------- |
+ |
+var regex = /^([^#<\u2264]+)([#<\u2264])(.*)$/; |
+shouldBe('regex.exec("24#Midnight").toString()', '"24#Midnight,24,#,Midnight"'); |