Bug 141623

Summary: DFG SSA should use GetLocal for arguments, and the GetArgument node type should be removed
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, benjamin, ggaren, mark.lam, mhahnenb, mmirman, msaboff, nrotem, oliver, ossy, saam, sam
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 141332    
Attachments:
Description Flags
work in progress
none
the patch oliver: review+

Description Filip Pizlo 2015-02-15 14:33:23 PST
The GetArgument node type is bizarre: it acts like a GetLocal that also does checks.  We should just use a GetLocal instead and do the checks elsewhere.
Comment 1 Filip Pizlo 2015-02-15 16:07:19 PST
Created attachment 246626 [details]
work in progress
Comment 2 Filip Pizlo 2015-02-15 17:40:17 PST
Created attachment 246627 [details]
the patch
Comment 3 Filip Pizlo 2015-02-16 11:30:29 PST
Landed in http://trac.webkit.org/changeset/180160
Comment 4 Csaba Osztrogonác 2015-02-16 14:03:44 PST
(In reply to comment #3)
> Landed in http://trac.webkit.org/changeset/180160

It broke 32 bit API tests, see Apple 32 bit JSC testers for details:

JS ERROR 
JS ERROR 
undefined: JS ERROR TypeError: null is not an object
undefined: JS ERROR TypeError: No default value
undefined: JS ERROR TypeError: No default value
undefined: JS ERROR TypeError: No default value
[native code]: JS ERROR 1
undefined:1: JS ERROR SyntaxError: Unexpected token '='
undefined:1: JS ERROR SyntaxError: Unexpected token '='
undefined:1: JS ERROR SyntaxError: Unexpected identifier 'Array'
undefined:1: JS ERROR SyntaxError: Unexpected identifier 'Array'
undefined:2: JS ERROR SyntaxError: Unexpected identifier 'Array'
file:///foo/bar.js:1: JS ERROR SyntaxError: Unexpected identifier 'Array'
test script:1:21: JS ERROR an exception
test script:1:21: JS ERROR an exception
test script:1:21: JS ERROR an exception
test script:1:21: JS ERROR an exception
test script:1:21: JS ERROR an exception
test script:1:21: JS ERROR an exception
test script:1:21: JS ERROR an exception
testAPI completed with rc=11 (254)
Comment 5 Filip Pizlo 2015-02-16 14:35:07 PST
(In reply to comment #4)
> (In reply to comment #3)
> > Landed in http://trac.webkit.org/changeset/180160
> 
> It broke 32 bit API tests, see Apple 32 bit JSC testers for details:
> 
> JS ERROR 
> JS ERROR 
> undefined: JS ERROR TypeError: null is not an object
> undefined: JS ERROR TypeError: No default value
> undefined: JS ERROR TypeError: No default value
> undefined: JS ERROR TypeError: No default value
> [native code]: JS ERROR 1
> undefined:1: JS ERROR SyntaxError: Unexpected token '='
> undefined:1: JS ERROR SyntaxError: Unexpected token '='
> undefined:1: JS ERROR SyntaxError: Unexpected identifier 'Array'
> undefined:1: JS ERROR SyntaxError: Unexpected identifier 'Array'
> undefined:2: JS ERROR SyntaxError: Unexpected identifier 'Array'
> file:///foo/bar.js:1: JS ERROR SyntaxError: Unexpected identifier 'Array'
> test script:1:21: JS ERROR an exception
> test script:1:21: JS ERROR an exception
> test script:1:21: JS ERROR an exception
> test script:1:21: JS ERROR an exception
> test script:1:21: JS ERROR an exception
> test script:1:21: JS ERROR an exception
> test script:1:21: JS ERROR an exception
> testAPI completed with rc=11 (254)

Did it just break Apple 32-bit or all 32-bit?  I ask because I've seen the JSC Xcode project mess up dependency resolutions pretty regularly in recent revisions. It might just need a clean build. 

If that doesn't fix it then rollout is best.
Comment 6 Csaba Osztrogonác 2015-02-16 23:33:40 PST
strange, build works again after an unrelated change - https://build.webkit.org/builders/Apple%20Yosemite%2032-bit%20JSC%20%28BuildAndTest%29/builds/2093