RESOLVED FIXED 19027
SquirrelFish: Incorrect codegen for pre-increment
https://bugs.webkit.org/show_bug.cgi?id=19027
Summary SquirrelFish: Incorrect codegen for pre-increment
Oliver Hunt
Reported 2008-05-13 04:05:58 PDT
This hideous URL results in bogus behaviour: javascript:try {(valueThrower={valueOf:function(){throw "throw from valueOf"}}, function () { executedRHS = false; var result = 'PASS'; try { result = ++valueThrower; alert('FAIL: Did not throw exception') } catch (e) { if (result != 'PASS' && executedRHS) { alert('FAIL: "'+expr+'" threw exception, but modified assignment target and executed RHS'); } else if (result != 'PASS') { alert('FAIL: "'+expr+'" threw exception, but modified assignment target'); } else if (executedRHS) { alert('FAIL: "'+expr+'" threw exception, but executed right hand half of expression') } else { alert('PASS: handled correctly') } } })()}catch(e){alert("Shouldn't receive: "+e);}
Attachments
Oliver Hunt
Comment 1 2008-05-13 22:26:12 PDT
M JavaScriptCore/ChangeLog M JavaScriptCore/VM/CodeBlock.cpp M JavaScriptCore/VM/CodeGenerator.cpp M JavaScriptCore/VM/CodeGenerator.h M JavaScriptCore/VM/Machine.cpp M JavaScriptCore/VM/Opcode.h M JavaScriptCore/kjs/nodes.cpp M LayoutTests/ChangeLog M LayoutTests/fast/js/exception-sequencing-expected.txt M LayoutTests/fast/js/exception-sequencing.html Committed r33432
Note You need to log in before you can comment on or make changes to this bug.