Only had a quick look but looks good to me as well.
http://codereview.chromium.org/6594037/diff/1/src/builtins.h File src/builtins.h (right): http://codereview.chromium.org/6594037/diff/1/src/builtins.h#newcode154 src/builtins.h:154: V(KeyedStoreIC_Initialize_Strict, KEYED_STORE_IC, UNINITIALIZED, \ This is the reason why I don't like indentation like this. Either we should indent them all so they align or we should drop the alignment altogether. http://codereview.chromium.org/6594037/diff/1/src/ic.cc File src/ic.cc (right): http://codereview.chromium.org/6594037/diff/1/src/ic.cc#newcode1485 src/ic.cc:1485: // Strict mode doesn't allow setting non-existent global property. Update comment to reflect the read-only part of this code. http://codereview.chromium.org/6594037/diff/1/src/ic.cc#newcode1488 src/ic.cc:1488: return TypeError("strict_rdonly_property", object, name); Please don't abbreviate read to rd. http://codereview.chromium.org/6594037/diff/1/src/ic.cc#newcode1868 src/ic.cc:1868: // On 2011/02/28 11:18:30, Lasse Reichstein wrote:
I don't know. Do you have a way to reproduce the problem?
I would be interested in knowing what fails here as well. My guess here would be lazy deoptimization. If SetProperty performs a call to something that either force deletes a property or enters the debugger, then we will destroy the code object (overwriting return points with a call to deoptimization). Therefore the target will be invalid at this point. So, overall, the assert at this point will not work. We should never, ever use target() or set_target() after we have invoked something that can call arbitrary code (such as GetProperty, SetProperty). I don't think we do, but if we do that will be bad in the presence of lazy deoptimization. http://codereview.chromium.org/6594037/ -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
