Bug 18619

Summary: Support continue, break, and return in try .. finally blocks
Product: WebKit Reporter: Oliver Hunt <oliver>
Component: JavaScriptCoreAssignee: Oliver Hunt <oliver>
Status: RESOLVED FIXED    
Severity: Normal CC: ggaren, mjs, zwarich
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.5   
Bug Depends on:    
Bug Blocks: 18624    
Attachments:
Description Flags
Rewrite finalisers with the wonder and joy of jsr/sret mjs: review+

Oliver Hunt
Reported 2008-04-19 02:50:00 PDT
Task tracking bug
Attachments
Rewrite finalisers with the wonder and joy of jsr/sret (19.10 KB, patch)
2008-04-19 03:18 PDT, Oliver Hunt
mjs: review+
Oliver Hunt
Comment 1 2008-04-19 03:18:56 PDT
Created attachment 20688 [details] Rewrite finalisers with the wonder and joy of jsr/sret
Maciej Stachowiak
Comment 2 2008-04-19 15:10:12 PDT
Comment on attachment 20688 [details] Rewrite finalisers with the wonder and joy of jsr/sret The code seems ok on the substance, so I'll say r=me. But here are some style suggestions: 1) The return address register is variously named it's returnRegister, returnAddrRegister, returnAddress, and in some confusing cases, returnAddressnReg. I think it should be retAddrDst (or returnAddrDst) for jsr, and retAddrSrc (or returnAddrSrc) for sret, just to make clear these instructions respectively read and write the return address. 2) Is it really right to call a finally block a "finaliser"? In the context of dynamic languages, a "finaliser" is typically a routine that runs when a garbage-collected object is destroyed. 3) In emitComplexJumpScopes, I would advise you to consider breaking some of the commented blocks into well-named helper functions.
Oliver Hunt
Comment 3 2008-04-19 15:37:40 PDT
Committed r32269
Note You need to log in before you can comment on or make changes to this bug.