This bug will just implement the facility and convert one test to use the facility, and later I'll work on converting all of the fast/js/dfg-* tests.
Here's what failure looks like. Note that this test would have passed a bunch of calls as well, but we don't show passes now, because the number of passes is variable and so it would screw up the text diff. [pizlo@bigmac OpenSource] DYLD_FRAMEWORK_PATH=WebKitBuild/Debug/ WebKitBuild/Debug/DumpRenderTree LayoutTests/fast/js/dfg-arguments-osr-exit-multiple-blocks.html Content-Type: text/plain DumpMalloc: 0 Tests aliased uses of 'arguments' that require reification of the Arguments object on OSR exit, in the case that there is some interesting control flow. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. FAIL bar(42) should be 74. Was 32. Passed some tests silently. TEST COMPLETE #EOF
And here's what passing looks like now: [pizlo@bigmac OpenSource] DYLD_FRAMEWORK_PATH=WebKitBuild/Debug/ WebKitBuild/Debug/DumpRenderTree LayoutTests/fast/js/dfg-arguments-osr-exit-multiple-blocks.html Content-Type: text/plain DumpMalloc: 0 Tests aliased uses of 'arguments' that require reification of the Arguments object on OSR exit, in the case that there is some interesting control flow. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". Passed some tests silently. TEST COMPLETE #EOF
Created attachment 203075 [details] Patch
Comment on attachment 203075 [details] Patch rs=me for the rest
Landed in http://trac.webkit.org/changeset/150825