Reviewers: Mads Ager,

Description:
Handle array construction on native code.

The construction of arrays when using the the Array function either as a
constructor or a normal function is now handled fully in generated code in  
most
cases. Only when Array is called with one argument which is either negative  
or
abowe JSObject::kInitialMaxFastElementArray (which is currently 1000) or if  
the
allocated object cannot fit in the room left in new space is the runtime  
system
entered.

Two new native code built-in functions are added one for normal invocation  
and
one for the construct call. The existing C++ builtin is renamed, but kept.  
When
the normal invocation cannot be handled in generated code the C++ builtin is
called. When the construct invocation cannot be handled in native code the
generic construct stub is called (which will end up in the C++ builtin  
through a
construct trampoline).

One thing that might be changed is preserving esi (constructor function)  
during
the handling of a construct call. We know precisily what function we where
calling anyway and can just reload it. This could remove the parameter
construct_call to ArrayNativeCode and remove the handling of this from that
function.

The X64 and ARM implementations are not part of this changelist.

Please review this at http://codereview.chromium.org/193125

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
   M     src/arm/builtins-arm.cc
   M     src/bootstrapper.cc
   M     src/builtins.h
   M     src/builtins.cc
   M     src/ia32/builtins-ia32.cc
   M     src/v8-counters.h
   M     src/x64/builtins-x64.cc
   A     test/mjsunit/array-construtor.js



--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to