• wingo@igalia.com's avatar
    Remove separate maps for function instances · 3f09e0a3
    wingo@igalia.com authored
    ES3 specified that functions created via Function() would have
    enumerable prototypes, unlike function literals.  For this reason, V8
    has always had two prototypes for functions: "function_map" for
    literals, and "function_instance_map" for "function instances": those
    functions created by Function().
    
    However, since 2009 or so, both maps have been the same!  Both have had
    writable, non-enumerable prototypes.  Moreover, ES5 changed to specify
    that function instances would have non-enumerable prototypes.
    
    This patch removes the separate maps for function instances in sloppy
    and strict mode.
    
    R=mstarzinger@chromium.org
    TEST=mjsunit/function-prototype
    BUG=
    
    Review URL: https://codereview.chromium.org/14829005
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    3f09e0a3
v8.h 183 KB