• 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
ic.cc 89 KB