Changeset 53062 in webkit
- Timestamp:
- Jan 10, 2010 8:55:26 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r53061 r53062 1 2010-01-10 Kent Hansen <kent.hansen@nokia.com> 2 3 Reviewed by Darin Adler. 4 5 RegExp.prototype.toString returns "//" for empty regular expressions 6 https://bugs.webkit.org/show_bug.cgi?id=33319 7 8 "//" starts a single-line comment, hence "/(?:)/" should be used, according to ECMA. 9 10 * runtime/RegExpPrototype.cpp: 11 (JSC::regExpProtoFuncToString): 12 13 * tests/mozilla/ecma_2/RegExp/properties-001.js: 14 (AddRegExpCases): 15 * tests/mozilla/js1_2/regexp/toString.js: 16 Update relevant Mozilla tests (Mozilla has had this behavior since November 2003). 17 1 18 2010-01-10 Darin Adler <darin@apple.com> 2 19 -
trunk/JavaScriptCore/runtime/RegExpPrototype.cpp
r52984 r53062 115 115 if (asRegExpObject(thisValue)->get(exec, exec->propertyNames().multiline).toBoolean(exec)) 116 116 postfix[index] = 'm'; 117 118 return jsNontrivialString(exec, makeString("/", asRegExpObject(thisValue)->get(exec, exec->propertyNames().source).toString(exec), postfix)); 117 UString source = asRegExpObject(thisValue)->get(exec, exec->propertyNames().source).toString(exec); 118 // If source is empty, use "/(?:)/" to avoid colliding with comment syntax 119 return jsNontrivialString(exec, makeString("/", source.size() ? source : UString("(?:)"), postfix)); 119 120 } 120 121 -
trunk/JavaScriptCore/tests/mozilla/ecma_2/RegExp/properties-001.js
r17862 r53062 57 57 re.source ); 58 58 59 /* 60 * http://bugzilla.mozilla.org/show_bug.cgi?id=225550 changed 61 * the behavior of toString() and toSource() on empty regexps. 62 * So branch if |s| is the empty string - 63 */ 64 var S = s? s : '(?:)'; 65 59 66 AddTestCase( re + ".toString()", 60 "/" + s+"/" + (g?"g":"") + (i?"i":"") +(m?"m":""),67 "/" + S +"/" + (g?"g":"") + (i?"i":"") +(m?"m":""), 61 68 re.toString() ); 62 69 -
trunk/JavaScriptCore/tests/mozilla/js1_2/regexp/toString.js
r53061 r53062 42 42 var re = new RegExp(); 43 43 testcases[count++] = new TestCase ( SECTION, "var re = new RegExp(); re.toString()", 44 '/ /', re.toString());44 '/(?:)/', re.toString()); 45 45 46 46 // re = /.+/; re.toString(); -
trunk/LayoutTests/ChangeLog
r53060 r53062 1 2010-01-10 Kent Hansen <kent.hansen@nokia.com> 2 3 Reviewed by Darin Adler. 4 5 RegExp.prototype.toString returns "//" for empty regular expressions 6 https://bugs.webkit.org/show_bug.cgi?id=33319 7 8 Add new test cases and adapt existing ones. 9 10 * fast/js/kde/RegExp-expected.txt: 11 * fast/js/kde/script-tests/RegExp.js: 12 * fast/js/regexp-compile-expected.txt: 13 * fast/js/script-tests/regexp-compile.js: 14 * fast/regex/non-pattern-characters-expected.txt: 15 1 16 2010-01-10 Robert Hogan <robert@roberthogan.net> 2 17 -
trunk/LayoutTests/fast/js/kde/RegExp-expected.txt
r52984 r53062 93 93 FAIL Object.prototype.toString.apply(RegExp.prototype) should be [object RegExp]. Was [object RegExpPrototype]. 94 94 PASS typeof RegExp.prototype.toString() is 'string' 95 PASS new RegExp().toString() is '/(?:)/' 96 PASS (new RegExp('(?:)')).source is '(?:)' 97 PASS /(?:)/.toString() is '/(?:)/' 98 PASS /(?:)/.source is '(?:)' 95 99 Done. 96 100 PASS successfullyParsed is true -
trunk/LayoutTests/fast/js/kde/script-tests/RegExp.js
r52984 r53062 149 149 shouldBe("typeof RegExp.prototype.toString()", "'string'"); 150 150 151 // Empty regular expressions have string representation /(?:)/ 152 shouldBe("new RegExp().toString()", "'/(?:)/'"); 153 shouldBe("(new RegExp('(?:)')).source", "'(?:)'"); 154 shouldBe("/(?:)/.toString()", "'/(?:)/'"); 155 shouldBe("/(?:)/.source", "'(?:)'"); 156 151 157 debug("Done."); 152 158 successfullyParsed = true -
trunk/LayoutTests/fast/js/regexp-compile-expected.txt
r52984 r53062 20 20 PASS re.toString() is '/undefined/' 21 21 PASS re.toString() is '/null/' 22 PASS re.toString() is '/ /'22 PASS re.toString() is '/(?:)/' 23 23 PASS re.toString() is '/z/' 24 24 PASS re.lastIndex is 0 -
trunk/LayoutTests/fast/js/script-tests/regexp-compile.js
r52984 r53062 39 39 40 40 re.compile(); 41 shouldBe("re.toString()", "'/ /'"); // /(?:)/ in Firefox41 shouldBe("re.toString()", "'/(?:)/'"); 42 42 43 43 re.compile("z", undefined); -
trunk/LayoutTests/fast/regex/non-pattern-characters-expected.txt
r52984 r53062 157 157 PASS regexp.lastIndex is 2 158 158 159 Testing regexp: / /gm159 Testing regexp: /(?:)/gm 160 160 PASS regexp.test('') is true 161 161 PASS regexp.lastIndex is 0
Note: See TracChangeset
for help on using the changeset viewer.