• 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
..
gcmole Loading commit data...
gyp Loading commit data...
oom_dump Loading commit data...
v8.xcodeproj Loading commit data...
visual_studio Loading commit data...
codemap.js Loading commit data...
consarray.js Loading commit data...
csvparser.js Loading commit data...
disasm.py Loading commit data...
freebsd-tick-processor Loading commit data...
gc-nvp-trace-processor.py Loading commit data...
generate-ten-powers.scm Loading commit data...
grokdump.py Loading commit data...
js2c.py Loading commit data...
jsmin.py Loading commit data...
linux-tick-processor Loading commit data...
ll_prof.py Loading commit data...
logreader.js Loading commit data...
mac-nm Loading commit data...
mac-tick-processor Loading commit data...
presubmit.py Loading commit data...
process-heap-prof.py Loading commit data...
profile.js Loading commit data...
profile_view.js Loading commit data...
run-valgrind.py Loading commit data...
splaytree.js Loading commit data...
stats-viewer.py Loading commit data...
test.py Loading commit data...
tickprocessor-driver.js Loading commit data...
tickprocessor.js Loading commit data...
utils.py Loading commit data...
windows-tick-processor.bat Loading commit data...