• rossberg@chromium.org's avatar
    Implement set trap for proxies, and revamp class hierarchy in preparation: · 670f947a
    rossberg@chromium.org authored
    - Introduce a class JSReceiver, that is a common superclass of JSObject and
      JSProxy. Use JSReceiver where appropriate (probably lots of places that we
      still have to migrate, but we will find those later with proxy test suite).
    
    - Move appropriate methods to JSReceiver class (SetProperty,
      GetPropertyAttribute, Get/SetPrototype, Lookup, and so on).
    
    - Introduce new JSFunctionProxy subclass of JSProxy. Currently only a stub.
    
    - Overhaul enum InstanceType:
      * Introduce FIRST/LAST_SPEC_OBJECT_TYPE that ranges over all types that
        represent JS objects, and use that consistently to check language types.
      * Rename FIRST/LAST_JS_OBJECT_TYPE and FIRST/LAST_FUNCTION_CLASS_TYPE
        to FIRST/LAST_[NON]CALLABLE_SPEC_OBJECT_TYPE for clarity.
      * Eliminate the overlap over JS_REGEXP_TYPE.
      * Also replace FIRST_JS_OBJECT with FIRST_JS_RECEIVER, but only use it where
        we exclusively talk about the internal representation type.
      * Insert JS_PROXY and JS_FUNCTION_PROXY in the appropriate places.
    
    - Fix all checks concerning classification, especially for functions, to
      use the CALLABLE_SPEC_OBJECT range (that includes funciton proxies).
    
    - Handle proxies in SetProperty (that was the easiest part :) ).
    
    - A few simple test cases.
    
    R=kmillikin@chromium.org
    
    Review URL: http://codereview.chromium.org/6992072
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    670f947a
Name
Last commit
Last update
benchmarks Loading commit data...
build Loading commit data...
include Loading commit data...
preparser Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
tools Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
ChangeLog Loading commit data...
LICENSE Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
SConstruct Loading commit data...