• rossberg@chromium.org's avatar
    * src/generator.js: Add methods and intialization for generator meta-objects. · 8e8bbc0e
    rossberg@chromium.org authored
    * src/contexts.h:
    * src/bootstrapper.cc (InitializeExperimentalGlobal): Make generator
      meta-objects, and store maps for constructing generator functions
      and their prototypes.
    
    * src/factory.h:
    * src/factory.cc (MapForNewFunction): New helper.
      (NewFunctionFromSharedFunctionInfo): Use the new helper.
    
    * src/heap.cc (AllocateFunctionPrototype, AllocateInitialMap): For
       generators, allocate appropriate prototypes and maps.
    
    * src/code-stubs.h:
    * src/arm/code-stubs-arm.h:
    * src/arm/full-codegen-arm.h:
    * src/ia32/code-stubs-ia32.h:
    * src/ia32/full-codegen-ia32.h:
    * src/x64/code-stubs-x64.h:
    * src/x64/full-codegen-x64.h: Allow fast closure creation for generators,
    using the appropriate map.
    
    * test/mjsunit/harmony/builtins.js: Add a special case for
      GeneratorFunctionPrototype.prototype.__proto__.
    
    BUG=
    TEST=mjsunit/harmony/generators-runtime
    
    Review URL: https://codereview.chromium.org/13192004
    
    Patch from Andy Wingo <wingo@igalia.com>.
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    8e8bbc0e
full-codegen-ia32.cc 154 KB