• rossberg@chromium.org's avatar
    MIPS: Implement correct checking for inherited readonliness on assignment. · 9de42615
    rossberg@chromium.org authored
    Port r11694 (29aa05e9)
    
    Original commit message:
    Implement correct checking for inherited readonliness on assignment.
    
    Removes 6 out of 8 of our remaining unintentional failures on test262.
    
    Also fixes treatment of inherited setters added after the fact.
    
    Specifically:
    
    - In the runtime, when looking for setter callbacks in the prototype chain,
    also look for read-only properties. If one is found, reject (exception in
    strict mode). If a proxy is found, invoke proper trap.
    Note: this folds in the CanPut function from the spec and avoids an extra
    lookup over the prototype chain.
    
    - In generated code for stores, insert a test for the maps from the prototype
    chain, but only up to the object where the property already exists (which
    may be the object itself).
    In Hydrogen, if the found property is read-only or not cacheable (e.g. a
    proxy), bail out; in a stub, generate an unconditional miss (to get an
    exception in strict mode).
    
    - Add test cases and adapt existing test expectations.
    
    BUG=
    TEST=
    
    Review URL: https://chromiumcodereview.appspot.com/10539004
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    9de42615
Name
Last commit
Last update
..
assembler-mips-inl.h Loading commit data...
assembler-mips.cc Loading commit data...
assembler-mips.h Loading commit data...
builtins-mips.cc Loading commit data...
code-stubs-mips.cc Loading commit data...
code-stubs-mips.h Loading commit data...
codegen-mips.cc Loading commit data...
codegen-mips.h Loading commit data...
constants-mips.cc Loading commit data...
constants-mips.h Loading commit data...
cpu-mips.cc Loading commit data...
debug-mips.cc Loading commit data...
deoptimizer-mips.cc Loading commit data...
disasm-mips.cc Loading commit data...
frames-mips.cc Loading commit data...
frames-mips.h Loading commit data...
full-codegen-mips.cc Loading commit data...
ic-mips.cc Loading commit data...
lithium-codegen-mips.cc Loading commit data...
lithium-codegen-mips.h Loading commit data...
lithium-gap-resolver-mips.cc Loading commit data...
lithium-gap-resolver-mips.h Loading commit data...
lithium-mips.cc Loading commit data...
lithium-mips.h Loading commit data...
macro-assembler-mips.cc Loading commit data...
macro-assembler-mips.h Loading commit data...
regexp-macro-assembler-mips.cc Loading commit data...
regexp-macro-assembler-mips.h Loading commit data...
simulator-mips.cc Loading commit data...
simulator-mips.h Loading commit data...
stub-cache-mips.cc Loading commit data...