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
erik.corry@gmail.com
fb2897bcf9
Clean up the ifdefs on ARM.
...
Ensure that we use ARMv5 instructions on ARMv6 and ARMv7 CPUs.
Review URL: http://codereview.chromium.org/206012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 08:48:17 +00:00
christian.plesner.hansen@gmail.com
5c3fd26620
[ES5] Made properties of the arguments array enumerable.
...
Review URL: http://codereview.chromium.org/200141
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 08:25:54 +00:00
mark@chromium.org
1b812fb3b4
Remove explicit include of Chromium's common.gypi from v8.gyp.
...
Explicit includes of common.gypi are being deprecated. Chromium will include
the .gypi files that it needs by asking GYP to force-include them into each
.gyp file that it loads. See http://codereview.chromium.org/206006 .
Review URL: http://codereview.chromium.org/193114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 18:03:12 +00:00
christian.plesner.hansen@gmail.com
0c5b0dbed0
Fixed typo in mozilla expectations file.
...
Review URL: http://codereview.chromium.org/206014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 14:36:29 +00:00
christian.plesner.hansen@gmail.com
c209d82788
Fixed mozilla test expectations.
...
Review URL: http://codereview.chromium.org/196121
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 14:02:31 +00:00
christian.plesner.hansen@gmail.com
6519951e06
Added test suite adapter for es5conform.
...
Review URL: http://codereview.chromium.org/193112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 13:30:46 +00:00
christian.plesner.hansen@gmail.com
77ff957f58
Implemented Object.keys.
...
Review URL: http://codereview.chromium.org/201114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 11:51:40 +00:00
ager@chromium.org
8a3bce2fa1
Prepare push to trunk. Now working on version 1.3.12.
...
Review URL: http://codereview.chromium.org/204020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 11:48:18 +00:00
whesse@chromium.org
e58287a1bb
Use GetCodeFromTargetAddress everywhere, uniformly.
...
Review URL: http://codereview.chromium.org/193111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 11:39:47 +00:00
lrn@chromium.org
91ecc77e5f
X64: Abstract indexing by a smi to the macro assembler.
...
Review URL: http://codereview.chromium.org/196118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 11:35:23 +00:00
christian.plesner.hansen@gmail.com
681e67b775
Make 'hidden' the default visibility for gcc. Add build option,
...
visibility=[hidden|default], that controls visibility and make
'hidden' the default. Export a few variables that had been forgotten.
Review URL: http://codereview.chromium.org/206011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 11:11:09 +00:00
sgjesse@chromium.org
f2f69625a0
Add definition of ENABLE_DEBUGGER_SUPPORT to v8 gyp file.
...
This reflects the change in r2875 (http://code.google.com/p/v8/source/detail?r=2875 ) where ENABLE_DEBUGGER_SUPPORT is not longer defined automatcally in v8.h.
Review URL: http://codereview.chromium.org/196120
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 11:07:26 +00:00
ager@chromium.org
cc0d071633
Incorporate dtoa change from upstream to avoid potential buffer
...
overrun.
Review URL: http://codereview.chromium.org/196119
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 10:48:11 +00:00
lrn@chromium.org
88e732edbc
Fix bug that errnoeously sets FPU exception.
...
This has only been caught on Win64 yet.
Review URL: http://codereview.chromium.org/201106
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-14 12:20:13 +00:00
sgjesse@chromium.org
7721fdc7d9
Fix lint error.
...
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/203052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-14 09:00:21 +00:00
sgjesse@chromium.org
34d6ff7606
Implemented missing pieces of the debugger for ARM.
...
The main piece of this change was to add support for break on return for ARM. On ARM the normal js function return consist of the following code sequence.
mov sp, fp
ldmia sp!, {fp, lr}
add sp, sp, #4
bx lr
to a call to the debug break return entry code using the following code sequence
mov lr, pc
ldr pc, [pc, #-4]
<debug break return entry code entry point address>
bktp 0
The values of Assembler::kPatchReturnSequenceLength and Assembler::kPatchReturnSequenceLength are somewhat misleading, but they fit the current use in the debugger. Also Assembler::kPatchReturnSequenceLength is used in the IC code as well (for something which is not related to return sequences at all). I will change that in a separate changelist.
For the debugger to work also added recording of the return sequence in the relocation info and handling of source position recording when a function ends with a return statement.
Used the constant kInstrSize instead of sizeof(Instr).
Passes all debugger tests on both simulator and hardware (only release mode tested on hardware).
Review URL: http://codereview.chromium.org/199075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-14 06:57:24 +00:00
ager@chromium.org
6f88ca6393
Fix cut and paste error in memory tracking. MapSpace -> CellSpace.
...
Review URL: http://codereview.chromium.org/194100
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-14 06:39:54 +00:00
whesse@chromium.org
4c59284fcc
Fix lint error
...
Review URL: http://codereview.chromium.org/200096
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-11 14:11:33 +00:00
whesse@chromium.org
996f1d4ee3
Rename a constant to kCallTargetAddressOffset
...
Review URL: http://codereview.chromium.org/192075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-11 12:41:27 +00:00
sgjesse@chromium.org
3dd74076d1
Control profiling/debugger support from build script.
...
The SCons build now has the options profilingsupport and debuggersupport for controlling the setting of the defines ENABLE_LOGGIGN_AND_PROFILING and ENABLE_DEBUGGER_SUPPORT. By default both are set to true.
The changes to the XCode project have not been tested.
Review URL: http://codereview.chromium.org/195061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-11 12:26:15 +00:00
sgjesse@chromium.org
f5864d08af
Use local cpplint.py if it exists.
...
If there is a local cpplint.py in the tools directory use this instead of any cpplint in the path. This makes it possible to run presubmit checks on Windows by downloading cpplint.py from http://code.google.com/p/google-styleguide/ .
Review URL: http://codereview.chromium.org/194039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-11 12:21:48 +00:00
ager@chromium.org
4052dcd392
Fix lint issue.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/203017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-10 13:56:12 +00:00
ager@chromium.org
2fbadf73b3
Fix IA32 build.
...
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/201078
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-10 13:27:00 +00:00
sgjesse@chromium.org
291c541b62
Add option --build-only to the test runner.
...
This new option is convenient for cross-compilation as actually running the targets build does not make sense.
Review URL: http://codereview.chromium.org/200077
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-10 12:59:49 +00:00
sgjesse@chromium.org
9d2d9c596c
Implement code patcher for x64.
...
Use the code patcher for the patching of the JS return sequence used by the debugger.
Added explicit instruction cache flushing in a code patching section which did not have it for completeness, even though it is not required on Intel processors.
Review URL: http://codereview.chromium.org/203016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-10 12:59:01 +00:00
lrn@chromium.org
158dcbc39d
X64: Extract all smi operations into MacroAssembler macros.
...
First step in changing Smi representation.
Review URL: http://codereview.chromium.org/196077
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-10 12:55:27 +00:00
whesse@chromium.org
cf37189c65
Use SSE2 instructions when available on ia32 platform.
...
Review URL: http://codereview.chromium.org/197057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-10 07:13:01 +00:00
christian.plesner.hansen@gmail.com
9f7fabeb68
Fix crash during error reporting during bootstrapping.
...
Instead of crashing or reporting a fatal v8 error if an error occurs
during context initialization we now survive and return an empty
handle.
Review URL: http://codereview.chromium.org/194070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-10 06:52:46 +00:00
ager@chromium.org
39a3c9c61b
Prepare push to trunk. Now working on version 1.3.11.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/201069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 19:03:20 +00:00
sgjesse@chromium.org
7c9195caf9
Fix ARM compilation error.
...
Removed implementation of function which was no longer member of class Debug.
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/199063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 18:05:46 +00:00
sgjesse@chromium.org
bcff52624d
Cleaned up some debugger stuff on ia32 and x64.
...
Got rid of the debug break on return entry code which did not add anything. It just jumped directly to the debug break on return code.
Removed the CodePatcher class on x64 as it was not implemented.
Added instruction cache flush to where the return sequence was patched on x64.
Added some missing ENABLE_DEBUGGER_SUPPORT #ifdef/#endif.
Review URL: http://codereview.chromium.org/193057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 17:45:21 +00:00
sgjesse@chromium.org
f4d3ff1ac3
Find the correct function for script break points
...
The algorithm for finding the inner-most function containing a script break point was not correct when the script only contained one function. In that case the script function and not the actual function in the script could be returned depending on the order of the objects in the heap.
TEST=cctest/test-debug/ScriptBreakPointReload
BUG=none
Review URL: http://codereview.chromium.org/193059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 15:16:26 +00:00
ager@chromium.org
e2d7d656b0
Increase max semi-space size.
...
Review URL: http://codereview.chromium.org/200059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 14:50:00 +00:00
kasperl@chromium.org
00c3a0deaa
Fix x64 port by using 32 pages per chunk.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/195038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 12:08:40 +00:00
mikhail.naganov@gmail.com
0411b14ffa
Heap profiler: account primitive string objects as being constructed using 'String'.
...
Also:
- move constructor name getter near similar class name getter method;
- if the constructor is not present, use 'Object', as for class name, this eliminates a special case.
Review URL: http://codereview.chromium.org/202018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 11:46:09 +00:00
ager@chromium.org
4e3a1143cc
Minor change to idle notification handling: perform a scavenge
...
followed by shrinking of new space earlier.
Review URL: http://codereview.chromium.org/199057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 11:21:54 +00:00
ager@chromium.org
0e56caa33b
Fix typo.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 11:06:22 +00:00
ager@chromium.org
84c2072c56
Reduce the chunk size from 64 pages to 16 pages per chunk.
...
This reduces the initial V8 memory usage by roughly 2MB.
Review URL: http://codereview.chromium.org/194054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 10:56:13 +00:00
sgjesse@chromium.org
7951ba3f55
Set svn:eol-style native for all files in src and its subdirectories.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/193056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 10:49:40 +00:00
ager@chromium.org
7f29be6d2e
Fix presubmit.
...
TBR=yurys@chromium.org
Review URL: http://codereview.chromium.org/197056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 09:58:00 +00:00
erik.corry@gmail.com
adaab82197
Compile fixes for ARM and miscellaneous spolling.
...
Review URL: http://codereview.chromium.org/199056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 09:35:34 +00:00
christian.plesner.hansen@gmail.com
d391c5491e
Made function prototype property DontEnum for compatibility with
...
Safari. Fixed const error in api.
Review URL: http://codereview.chromium.org/200056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 09:30:33 +00:00
ager@chromium.org
2bc682e3f3
Do not use left-over space after new space alignment for other spaces.
...
Doing so makes the max new space size influence the initial total size
of the heap.
This change reduces the initial memory use of V8 by over 6MB.
Review URL: http://codereview.chromium.org/202017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 08:45:32 +00:00
yurys@chromium.org
bbc3c97c2c
Support stepping out for recursive functions.Simply flooding JS function from the calling stack frame with one shot breakpoints is not enough to support step out action in all cases since the function on top of the stack may be turn recursive and we may end up flooding itself. To overcome this a pointer to the stack frame where the debugger should be invoked after stepping out is strored in the debugger.Chromium bug: http://code.google.com/p/chromium/issues/detail?id=17967
...
Review URL: http://codereview.chromium.org/200041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 08:40:59 +00:00
sgjesse@chromium.org
e6b926f19d
Set the svn:eol-style property on new file.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/201059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 07:57:12 +00:00
ager@chromium.org
e5095880cb
Add MAP_FIXED to Uncommit calls to see if that has an effect on GMail
...
memory usage in Chromium 64-bit Linux.
Review URL: http://codereview.chromium.org/200055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 07:51:51 +00:00
sgjesse@chromium.org
3546e91bbc
Refactor the register to name mapping in the ARM simulator.
...
Review URL: http://codereview.chromium.org/195024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 07:01:20 +00:00
whesse@chromium.org
07e6f6f619
Fix lint error
...
Review URL: http://codereview.chromium.org/196042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-08 12:51:08 +00:00
lrn@chromium.org
8f60f1a46f
Win64 - Allow returning two values from a runtime function.
...
(Not yet fully functional)
Review URL: http://codereview.chromium.org/201042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-08 11:52:05 +00:00