Bug 44040
| Summary: | Split with regex including an alternative | incorrectly returns splitting tokens | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Guillaume Bodi <bodi.giyomu> |
| Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED INVALID | ||
| Severity: | Normal | ||
| Priority: | P2 | ||
| Version: | 528+ (Nightly build) | ||
| Hardware: | Mac (Intel) | ||
| OS: | OS X 10.6 | ||
Guillaume Bodi
Splitting a string with a regex including a choice point (such as (a|b) ) will cause the splitting tokens to be part of the resulting array.
Test case:
var string = "'test1' and 'test2' or 'test3'";
alert(string.split(/(and|or)/));
Actual result:
["'test1 ", "and", " 'test2' ", "or", " 'test3'"]
Expected result:
["'test1 ", " 'test2' ", " 'test3'"]
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Guillaume Bodi
Correction to the results sample (missing single quote after test1):
Actual result:
["'test1' ", "and", " 'test2' ", "or", " 'test3'"]
Expected result:
["'test1' ", " 'test2' ", " 'test3'"]
Guillaume Bodi
Correct behavior as per the ECMAScriptv5 specs section 15.5.4.14
Sorry for the noise.