2008-12-28 Cameron Zwarich <cwzwarich@uwaterloo.ca>
authorcwzwarich@webkit.org <cwzwarich@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 28 Dec 2008 08:52:06 +0000 (08:52 +0000)
committercwzwarich@webkit.org <cwzwarich@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 28 Dec 2008 08:52:06 +0000 (08:52 +0000)
commit0917e8322ad5b490f6febeaa98908ac94bd20bba
treef7851062f71f9cfa2d64449e3c8047fb330c37d6
parent1efede1660d87df2012f523dcb8da3aa1e4e80ce
2008-12-28  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Reviewed by Oliver Hunt.

        Bug 22840: REGRESSION (r38349): Gmail doesn't load with profiling enabled
        <https://bugs.webkit.org/show_bug.cgi?id=22840>
        <rdar://problem/6468077>

        JavaScriptCore:

        * bytecompiler/BytecodeGenerator.cpp:
        (JSC::BytecodeGenerator::emitNewArray): Add an assertion that the range
        of registers passed to op_new_array is sequential.
        (JSC::BytecodeGenerator::emitCall): Correct the relocation of registers
        when emitting profiler hooks so that registers aren't leaked. Also, add
        an assertion that the 'this' register is always ref'd (because it is),
        remove the needless protection of the 'this' register when relocating,
        and add an assertion that the range of registers passed to op_call for
        function call arguments is sequential.
        (JSC::BytecodeGenerator::emitConstruct): Correct the relocation of
        registers when emitting profiler hooks so that registers aren't leaked.
        Also, add an assertion that the range of registers passed to op_construct
        for function call arguments is sequential.

        LayoutTests:

        * fast/profiler/call-register-leak-expected.txt: Added.
        * fast/profiler/call-register-leak.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39488 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptCore/ChangeLog
JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
LayoutTests/ChangeLog
LayoutTests/fast/profiler/call-register-leak-expected.txt [new file with mode: 0644]
LayoutTests/fast/profiler/call-register-leak.html [new file with mode: 0644]