Go to file
sgjesse@chromium.org 677c043fee 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.
Review URL: http://codereview.chromium.org/193125

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 11:17:57 +00:00
benchmarks Remove svn:executable flag from run.html and style.css and change the mime-type of style.css to text/css. 2009-07-15 10:37:10 +00:00
include Make 'hidden' the default visibility for gcc. Add build option, 2009-09-15 11:11:09 +00:00
samples Add a "read" extension to the shell programs. This global function 2009-04-17 21:04:34 +00:00
src Handle array construction on native code. 2009-09-16 11:17:57 +00:00
test Handle array construction on native code. 2009-09-16 11:17:57 +00:00
tools Remove explicit include of Chromium's common.gypi from v8.gyp. 2009-09-15 18:03:12 +00:00
.gitignore Add .gitignore file similar to Chromium's one. 2009-08-05 11:52:59 +00:00
AUTHORS Const Correctness for String::Value 2009-09-07 07:54:51 +00:00
ChangeLog Prepare push to trunk. Now working on version 1.3.12. 2009-09-15 11:48:18 +00:00
LICENSE Implemented Object.keys. 2009-09-15 11:51:40 +00:00
SConstruct Make 'hidden' the default visibility for gcc. Add build option, 2009-09-15 11:11:09 +00:00