Commit Graph

4369 Commits

Author SHA1 Message Date
ricow@chromium.org
a9641176fd Remove assertion that is no longer valid in InitializeStringSearch.
This assertion is no longer valid because r5380 changes the assumption
about the pat parameter.

In addition, we embed the no allocation part of StringSplit in a block
to reenable allocation later in that method.


Review URL: http://codereview.chromium.org/3254010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-31 10:39:02 +00:00
sandholm@chromium.org
97ccb64a06 Simplify code by removing special-casing for single-character patterns
Review URL: http://codereview.chromium.org/3276004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-31 09:22:53 +00:00
erik.corry@gmail.com
663f378da5 Get gcc to check that we don't ignore return values of functions that can
fail to allocate because we need a GC.
Review URL: http://codereview.chromium.org/3274008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-31 08:05:42 +00:00
erik.corry@gmail.com
903571b233 Address some issues with detecting the architecture. See
http://code.google.com/p/v8/issues/detail?id=429
Review URL: http://codereview.chromium.org/3261003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-31 08:05:33 +00:00
ricow@chromium.org
f19d6133f2 Fix mozilla and debug check failures.
This removes the expected failure of a mozilla test that we now pass
(an empty array is returned if Array.splice is called with no
arguments) and fixes debug check failure by allocating a new empty
array using AllocateEmptyArray if splice is called with zero arguments
(makes sure we can always create a handle).

 
Review URL: http://codereview.chromium.org/3218010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5377 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-31 07:31:25 +00:00
ager@chromium.org
d955b212b5 Follow Safari and Firefox in returning empty array from array splice
with no arguments.

Review URL: http://codereview.chromium.org/3277005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-30 18:08:50 +00:00
vitalyr@chromium.org
e9461cc50a Set the code pointer when compiling a function.
Without this fix LazyCompile has to be called twice to set it.

Review URL: http://codereview.chromium.org/3253003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-30 13:39:07 +00:00
mikhail.naganov@gmail.com
18c7882ea2 Fix a error in SamplingCircularQueue found using Valgrind memcheck.
Review URL: http://codereview.chromium.org/3251004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-30 13:30:54 +00:00
antonm@chromium.org
19dc35c13f Force relinking of paged space if first attempt to recommit from space fails.
That could improve chances for commit success as currently,
if we moved free pages out of order, we cannot shrink spaces.
However, when we experience problems commiting from space back, we should
use most of resources at our disposal.

Also get rid of currently unused parameter to DeallocateFunction.

Review URL: http://codereview.chromium.org/3260001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-30 12:34:32 +00:00
antonm@chromium.org
79a219cf31 Add os_error stat to oom_dump utility.
Review URL: http://codereview.chromium.org/3150028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5371 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-30 12:26:58 +00:00
whesse@chromium.org
a18f9d1114 Remove dependence of code-stubs on codegen, the virtual frame code generator. Move some functions used by code-stubs and full-codegen from codegen to macro-assembler.
Review URL: http://codereview.chromium.org/3169049

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-30 11:48:07 +00:00
ricow@chromium.org
3fb62235e3 Add functionality for finding code objects from a pc that points into
the code object's instructions.

This allows us to find a code object using just the pc. This approach
uses a cache (PcToCodeCache) to make sure we don't continuously have
to iterate heap pages.

This change eliminates the need for cooking and uncooking of stack frames.


Review URL: http://codereview.chromium.org/3226014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-30 08:54:43 +00:00
whesse@chromium.org
937a9d466e Improve header file inclusions. Drop some unneeded includes, and add some needed ones.
Review URL: http://codereview.chromium.org/3253001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-30 07:10:40 +00:00
vegorov@chromium.org
3d60cc34af Fix regress-851.js to use assertNull instead of assertFalse.
Review URL: http://codereview.chromium.org/3232002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-27 13:23:14 +00:00
vegorov@chromium.org
f059093562 Check result of JSObject::NormalizeElements() in JSObject::PreventExtensions().
Normalization requires allocation so Failure object can be returned.

BUG=http://code.google.com/p/v8/issues/detail?id=851
TEST=test/mjsunit/regress/regress-851.js

Review URL: http://codereview.chromium.org/3262001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-27 13:06:50 +00:00
serya@chromium.org
9302607b31 Fixing build error r5362 (adding missing files).
Review URL: http://codereview.chromium.org/3258001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5363 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-27 12:16:00 +00:00
serya@chromium.org
71548e969b Using array index hash code for string-to-number conversion.
Review URL: http://codereview.chromium.org/3141022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-27 11:47:12 +00:00
lrn@chromium.org
7b89a5f2b8 Reordered function entries in PreParse data to be ordered by start position.
Also add skip to entry, to skip pre-data for the body of the function.
Preparser data is now only accessed linearly, in the same order it was created.

Review URL: http://codereview.chromium.org/3185026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-27 08:26:29 +00:00
sgjesse@chromium.org
cfb4a183e5 Fix presumbit errors in previous commit
TBR=kasperl@chromium.org
Review URL: http://codereview.chromium.org/3249001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-27 07:41:46 +00:00
sgjesse@chromium.org
6cc90047d9 Add file missing from last commit.
TBR=kasperl@chromium.org
Review URL: http://codereview.chromium.org/3248001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-27 07:26:35 +00:00
sgjesse@chromium.org
be5763fc4d Cleanup the way the debugger stores live registers when entering at a break
The live registers are now only stored to the expression stack with the non pointer values being stored as smis (on the 32-bit platforms these values are assumed to be 31-bit max).

This makes the CEntryStub entry/exit code much simpler, and there is no longer any need for a mode (debug or normal) on it.

Fix a missing live register when breaking at ARM keyed load.
Review URL: http://codereview.chromium.org/3141047

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-27 07:08:03 +00:00
vitalyr@chromium.org
ee1dc27795 Fast string construct stub (ia32 only for now).
Review URL: http://codereview.chromium.org/3211002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-26 13:59:37 +00:00
ricow@chromium.org
1273621943 Fix indention in v8natives.js - no functionality change.
Review URL: http://codereview.chromium.org/3110041

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-26 13:03:17 +00:00
ricow@chromium.org
fd2fcac430 Temporarily disable test-heap-profiler/HeapSnapshotsDiff until the test is fixed (issue 848)
Review URL: http://codereview.chromium.org/3209005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-26 09:27:14 +00:00
erik.corry@gmail.com
66d13be5f9 Fix incorrect encoding of single and double precision registers for some VFP instructions. Also fix incorrect disassembling of vldr/vstr. This is a commit of http://codereview.chromium.org/3107027 for Rodolph Perfetta.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-26 08:53:00 +00:00
kasperl@chromium.org
6d5451d685 Add inlining of binary smi operations in the full codegens on IA32
and x64 (on IA32 we even fold constants into the instructions for
a more compact representation) and prepare the ARM full codegen for
the doing the same there.
Review URL: http://codereview.chromium.org/3195028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-26 08:50:38 +00:00
ricow@chromium.org
7672338bc9 Fixes bug in Object.freeze and Object.seal causing them to misbehave when Array.prototype has changed.
Object.freeze and Object.seal uses GetOwnPropertyNames which
returns an array with local property names. This array will also have
the additional properties defined on Array.prototype or
Object.prototype.

Note that, the implementation of GetOwnPropertyNames (when used as
Object.getOwnPropertyNames) is correct, since the spec says to create
a new Array (which would also have these properties).

Review URL: http://codereview.chromium.org/3137041

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-26 08:35:49 +00:00
vitalyr@chromium.org
9f65b1e32d Explicitly set expected number of properties for instances of builtin types.
We used to inherit an estimate on the expected number of properties in
%SetCode. It is not accurate and does not help for the types where
adding custom properties is rare (String, Date, etc.).

Review URL: http://codereview.chromium.org/3191026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-25 17:50:37 +00:00
ricow@chromium.org
4ad1b6d7f9 Prepare push of version 2.3.11 to trunk. Now working on version 2.4.0
This includes the ChangeLog part from the last push to trunk, since
the "prepare push to trunk" cl for that push was never committed.

Review URL: http://codereview.chromium.org/3111034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-25 15:02:07 +00:00
kasperl@chromium.org
1816e05dc2 Prepare for optionally inlining smi cases in the code generated
by the full codegens.
Review URL: http://codereview.chromium.org/3116042

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-25 14:22:03 +00:00
kaznacheev@chromium.org
6bd9d953dd Reapplying r5147 (caching maps for slow case objects).
r5147 wrongly assumed that a code cache for a slow case map is always empty.
This patch solves this: whenever we attempt to add a stub to a map's code cache 
we check that this map is cached. If it is we give the object its own copy
of the map and only then modify the map.

Review URL: http://codereview.chromium.org/3134027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-25 13:25:54 +00:00
sgjesse@chromium.org
feb20d30f8 Change code contains function to allow a return address just after the last instruction
Then patching the return sequence for debugger break at return a call is placed at the very end of the instruction stream causing the return address to be just after the actual instruction in the code object.
Review URL: http://codereview.chromium.org/3151037

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5341 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-25 12:51:27 +00:00
lrn@chromium.org
16a3419650 Convert this.length to uint32 in Array.prototype.[last]indexOf.
Review URL: http://codereview.chromium.org/3104033

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-25 12:16:46 +00:00
kasperl@chromium.org
3c26a55def Start using the overwrite mode from the full codegens to generate
slightly better code and allow passing arguments to binary op stubs
in registers on the platforms that support it.
Review URL: http://codereview.chromium.org/3203005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-25 11:10:05 +00:00
whesse@chromium.org
82309445ad Move code stub implementations from codegen-[platform].cc files to new code-stub-[platform].cc files, and declarations to new code-stub-[platform].h files.
Remaining work is to do the same for platform-independent code stub declarations, and to remove all dependencies on codegen header files from code stub files.
Review URL: http://codereview.chromium.org/3195022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-25 09:44:44 +00:00
kasperl@chromium.org
59b0bb1e2a Improve the code generated by the full codegen by keeping
track of the fall-through label and avoiding silly jumps.
Review URL: http://codereview.chromium.org/3166033

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-25 08:57:21 +00:00
sgjesse@chromium.org
e38f89be6b Hide test failure be being less GC agressive in the test
This is a temporary fix until the root cause is resolved.

TBR=kasperl@chromium.org
Review URL: http://codereview.chromium.org/3122038

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-25 07:26:12 +00:00
kasperl@chromium.org
02a842daae Simplify the way constructors are called and avoid pushing
a dummy receiver that we end up ignoring anyway.
Review URL: http://codereview.chromium.org/3136032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-25 07:18:32 +00:00
lrn@chromium.org
99ce72bd8a Use collector for preparse data.
This is in preparation of adding more data to the preparse record.
Using a collector instead of a list avoids copying data when the backing
store grows.

Review URL: http://codereview.chromium.org/3153037

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-25 06:46:53 +00:00
sgjesse@chromium.org
d7fa6b7a21 Fix a bug in the handling of debug break in CallIC
The change of calling convention in the CallIC was not reflected in the debug break code. Without the change to the debug break code the added test crashed.
Review URL: http://codereview.chromium.org/3167037

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-25 05:57:02 +00:00
kasperl@chromium.org
a342aa03d5 Add position information for compares, binary ops, and count
operations.
Review URL: http://codereview.chromium.org/3120027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-24 13:51:23 +00:00
vitalyr@chromium.org
362d2199fe Ported string call IC-s to arm.
Review URL: http://codereview.chromium.org/3143038

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-24 13:45:53 +00:00
vitalyr@chromium.org
01e0e6c662 Ported string call IC-s to x64.
Review URL: http://codereview.chromium.org/3156045

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-24 13:39:29 +00:00
ricow@chromium.org
3543dd53a4 Refactor the tools/test.py script and related testcfg.py files.
This makes it possible to run several variants of the tests (with different flags that is) by adding extra lists to the VARIANT_FLAGS list. In addition, there is a number of smaller refactorings. 


Review URL: http://codereview.chromium.org/3164023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-24 13:34:59 +00:00
kasperl@chromium.org
98ac5d813f Introduce a new intermediate AST node for encapsulating the
increment part of a count operation.
Review URL: http://codereview.chromium.org/3150032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-24 12:56:45 +00:00
lrn@chromium.org
23d0abb040 Ensure that scanner state is correctly reset when an error is encountered.
Add a scope object to ensure that leaving a literal scanning prematurely
will clean up after itself.
Also reset the literal buffer if a scanner is reinitialized with a new
source code.

Review URL: http://codereview.chromium.org/3137037

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-24 12:29:50 +00:00
kasperl@chromium.org
46c0c0f44f Optimize 'typeof <expr> == <string literal>' in the full codegen.
Review URL: http://codereview.chromium.org/3110034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-24 11:41:26 +00:00
lrn@chromium.org
b1e27e2cd5 Created collector class and used it to collect identifiers during scanning.
The collector class automatically expands to hold the values added to it,
like a List, but doesn't ensure that the backing store is contiguous, which
allows it to avoid copying back and forth as the buffer grows.

This is in preparation for identifyng identical symbols during preparsing.

Review URL: http://codereview.chromium.org/3181036

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-24 10:53:44 +00:00
kasperl@chromium.org
3527e29e8e Remove the full codegen syntax checker completely but be
careful to avoid making code with loops run too slowly.
Review URL: http://codereview.chromium.org/3107033

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-24 09:04:17 +00:00
kasperl@chromium.org
7b51dc7edb Cleanup the AST code by removing unused parts and get rid of the
flow graph code completely. Add new AST node for null compares
and use it to make the full codegens better at generating code
for null comparisons.
Review URL: http://codereview.chromium.org/3146037

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-24 07:26:49 +00:00