Changeset 182058 in webkit


Ignore:
Timestamp:
Mar 27, 2015 7:28:34 AM (9 years ago)
Author:
msaboff@apple.com
Message:

Objects with numeric properties intermittently get a phantom 'length' property
https://bugs.webkit.org/show_bug.cgi?id=142792

Reviewed by Csaba Osztrogonác.

Source/JavaScriptCore:

Fixed a > (greater than) that should be a >> (right shift) in the code that disassembles
test and branch instructions. This function is used for linking tbz/tbnz branches between
two seperately JIT'ed sections of code. Sometime we'd create a bogus tbz instruction in
the failure case checks in the GetById array length stub created for "obj.length" access.
If the failure case code address was at a negative offset from the stub, we'd look for bit 1
being set when we should have been looking for bit 0.

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::disassembleTestAndBranchImmediate):

LayoutTests:

New regression test.

  • js/regress-142792-expected.txt: Added.
  • js/regress-142792.html: Added.
  • js/script-tests/regress-142792.js: Added.

(isArrayLike):
(filter):

Location:
trunk
Files:
3 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r182051 r182058  
     12015-03-27  Michael Saboff  <msaboff@apple.com>
     2
     3        Objects with numeric properties intermittently get a phantom 'length' property
     4        https://bugs.webkit.org/show_bug.cgi?id=142792
     5
     6        Reviewed by Csaba Osztrogonác.
     7
     8        New regression test.
     9
     10        * js/regress-142792-expected.txt: Added.
     11        * js/regress-142792.html: Added.
     12        * js/script-tests/regress-142792.js: Added.
     13        (isArrayLike):
     14        (filter):
     15
    1162015-03-26  Zalan Bujtas  <zalan@apple.com>
    217
  • trunk/Source/JavaScriptCore/ChangeLog

    r182057 r182058  
     12015-03-27  Michael Saboff  <msaboff@apple.com>
     2
     3        Objects with numeric properties intermittently get a phantom 'length' property
     4        https://bugs.webkit.org/show_bug.cgi?id=142792
     5
     6        Reviewed by Csaba Osztrogonác.
     7
     8        Fixed a > (greater than) that should be a >> (right shift) in the code that disassembles
     9        test and branch instructions.  This function is used for linking tbz/tbnz branches between
     10        two seperately JIT'ed sections of code.  Sometime we'd create a bogus tbz instruction in
     11        the failure case checks in the GetById array length stub created for "obj.length" access.
     12        If the failure case code address was at a negative offset from the stub, we'd look for bit 1
     13        being set when we should have been looking for bit 0.
     14
     15        * assembler/ARM64Assembler.h:
     16        (JSC::ARM64Assembler::disassembleTestAndBranchImmediate):
     17
    1182015-03-27  Yusuke Suzuki  <utatane.tea@gmail.com>
    219
  • trunk/Source/JavaScriptCore/assembler/ARM64Assembler.h

    r175514 r182058  
    32383238        op = (insn >> 24) & 0x1;
    32393239        imm14 = (insn << 13) >> 18;
    3240         bitNumber = static_cast<unsigned>((((insn >> 26) & 0x20)) | ((insn > 19) & 0x1f));
     3240        bitNumber = static_cast<unsigned>((((insn >> 26) & 0x20)) | ((insn >> 19) & 0x1f));
    32413241        rt = static_cast<RegisterID>(insn & 0x1f);
    32423242        return (insn & 0x7e000000) == 0x36000000;
Note: See TracChangeset for help on using the changeset viewer.