Bug 44040

Summary: Split with regex including an alternative | incorrectly returns splitting tokens
Product: WebKit Reporter: Guillaume Bodi <bodi.giyomu>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED INVALID    
Severity: Normal    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Mac (Intel)   
OS: OS X 10.6   

Description Guillaume Bodi 2010-08-15 17:41:45 PDT
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'"]
Comment 1 Guillaume Bodi 2010-08-15 17:43:59 PDT
Correction to the results sample (missing single quote after test1):

Actual result:
["'test1' ", "and", " 'test2' ", "or", " 'test3'"]

Expected result:

["'test1' ", " 'test2' ", " 'test3'"]
Comment 2 Guillaume Bodi 2010-08-15 19:16:10 PDT
Correct behavior as per the ECMAScriptv5 specs section 15.5.4.14

Sorry for the noise.