It is a new test introduced in http://trac.webkit.org/changeset/121215 and fails on 32 bit platforms. (Qt and GTK) --- /ramdisk/qt-linux-32-release-webkit2/build/layout-test-results/fast/js/dfg-store-unexpected-value-into-argument-and-osr-exit-expected.txt +++ /ramdisk/qt-linux-32-release-webkit2/build/layout-test-results/fast/js/dfg-store-unexpected-value-into-argument-and-osr-exit-actual.txt @@ -153,56 +153,56 @@ PASS foo(3, {f:f, g:g}, p) is 85 PASS foo(3, {f:f, g:g}, p) is 1 PASS foo(3, {f:f, g:g}, p) is 85 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 -PASS foo(3, {f:f, g:g}, p) is 0.5 -PASS foo(3, {f:f, g:g}, p) is 85.5 +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43. +FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43. PASS successfullyParsed is true TEST COMPLETE
Oh no! Fix on the way...
Oh wow, good thing I wrote that test. Looks like the 32-bit DFG was assuming totally bad things about the types of local variables. Patch forthcoming.
Created attachment 149475 [details] the patch This ought to do it.
All tests pass on 32 bit Qt with this patch. Thanks for the fix.
Comment on attachment 149475 [details] the patch Clearing flags on attachment: 149475 Committed r121243: <http://trac.webkit.org/changeset/121243>
All reviewed patches have been landed. Closing bug.