kaznacheev@chromium.org [Wed, 25 Aug 2010 13:25:54 +0000 (13:25 +0000)]
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
sgjesse@chromium.org [Wed, 25 Aug 2010 12:51:27 +0000 (12:51 +0000)]
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
lrn@chromium.org [Wed, 25 Aug 2010 12:16:46 +0000 (12:16 +0000)]
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
kasperl@chromium.org [Wed, 25 Aug 2010 11:10:05 +0000 (11:10 +0000)]
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
whesse@chromium.org [Wed, 25 Aug 2010 09:44:44 +0000 (09:44 +0000)]
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
kasperl@chromium.org [Wed, 25 Aug 2010 08:57:21 +0000 (08:57 +0000)]
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
sgjesse@chromium.org [Wed, 25 Aug 2010 07:26:12 +0000 (07:26 +0000)]
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
kasperl@chromium.org [Wed, 25 Aug 2010 07:18:32 +0000 (07:18 +0000)]
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
lrn@chromium.org [Wed, 25 Aug 2010 06:46:53 +0000 (06:46 +0000)]
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
sgjesse@chromium.org [Wed, 25 Aug 2010 05:57:02 +0000 (05:57 +0000)]
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
kasperl@chromium.org [Tue, 24 Aug 2010 13:51:23 +0000 (13:51 +0000)]
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
vitalyr@chromium.org [Tue, 24 Aug 2010 13:45:53 +0000 (13:45 +0000)]
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
vitalyr@chromium.org [Tue, 24 Aug 2010 13:39:29 +0000 (13:39 +0000)]
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
ricow@chromium.org [Tue, 24 Aug 2010 13:34:59 +0000 (13:34 +0000)]
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
kasperl@chromium.org [Tue, 24 Aug 2010 12:56:45 +0000 (12:56 +0000)]
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
lrn@chromium.org [Tue, 24 Aug 2010 12:29:50 +0000 (12:29 +0000)]
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
kasperl@chromium.org [Tue, 24 Aug 2010 11:41:26 +0000 (11:41 +0000)]
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
lrn@chromium.org [Tue, 24 Aug 2010 10:53:44 +0000 (10:53 +0000)]
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
kasperl@chromium.org [Tue, 24 Aug 2010 09:04:17 +0000 (09:04 +0000)]
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
kasperl@chromium.org [Tue, 24 Aug 2010 07:26:49 +0000 (07:26 +0000)]
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
lrn@chromium.org [Mon, 23 Aug 2010 13:58:56 +0000 (13:58 +0000)]
Fixed remaining bugs in COW-regexp-results.
Review URL: http://codereview.chromium.org/3197011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5322
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 23 Aug 2010 13:26:03 +0000 (13:26 +0000)]
Move the function name inferrer code from the AstOptimizer to
the parser in preparation for not using the optimizer when
using the full codegen. Code covered by existing tests.
Review URL: http://codereview.chromium.org/3141034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5321
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 23 Aug 2010 12:55:29 +0000 (12:55 +0000)]
Simplified the full codegens by removing the Expression::kTestValue
and Expression::kValueTest. At the same time, prepare the code for
keeping track of fall through labels to avoid unnecessary jumps.
Review URL: http://codereview.chromium.org/3152042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5320
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Mon, 23 Aug 2010 11:46:59 +0000 (11:46 +0000)]
Don't do a smi check twice in the TO_INTEGER macro.
Review URL: http://codereview.chromium.org/3115024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5319
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 23 Aug 2010 11:21:09 +0000 (11:21 +0000)]
Fix bug in 64 bit codegen causing us to always go slowcase in apply.
After introducing the direct instruction pointer in functions the
CallApplyLazy method was changed on all platforms. The change made to
the 64 bit version was wrong, not using the right operand for the code
comparisons always forcing us into slow case.
Review URL: http://codereview.chromium.org/3104027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5317
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 23 Aug 2010 09:04:31 +0000 (09:04 +0000)]
Fix an issue in the ARM port where a left shift was predicted to have a Smi result when it had an int32 result. This is a commit of codereview.chromium.org/3195004 for Rodolph Perfetta. Part 2
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5316
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 23 Aug 2010 07:53:03 +0000 (07:53 +0000)]
Fix an issue in the ARM port where a left shift was predicted to have a Smi result when it had an int32 result. This is a commit of codereview.chromium.org/3195004 for Rodolph Perfetta
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5315
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 23 Aug 2010 07:30:09 +0000 (07:30 +0000)]
Remove the virtual declaration from a couple of non-virtual JumpTarget
methods to avoid compiler warnings with some gcc versions.
Review URL: http://codereview.chromium.org/3170036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5314
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 23 Aug 2010 06:30:00 +0000 (06:30 +0000)]
Fix mismatched new[]/delete for external string resources only used
for testing.
Review URL: http://codereview.chromium.org/3165051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5313
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 20 Aug 2010 13:00:22 +0000 (13:00 +0000)]
Re-enable test-api/RegExpInterruption on arm.
This test has been disabled for a very long time, and the fix in
http://code.google.com/p/v8/source/detail?r=5308 should make this go
away.
I will watch the buildbot continuously over the next few days to make
sure it does not appear again. If it does not I will close bug 240.
Review URL: http://codereview.chromium.org/3127023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5312
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 20 Aug 2010 12:38:33 +0000 (12:38 +0000)]
We can use the array trim trick in old paged space as well as
new space.
Review URL: http://codereview.chromium.org/3143032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5311
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 20 Aug 2010 09:37:22 +0000 (09:37 +0000)]
Use Copy-on-write arrays for cached regexp results.
Review URL: http://codereview.chromium.org/3158020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5310
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 20 Aug 2010 07:10:18 +0000 (07:10 +0000)]
Change code pointer in function objects to a pointer to the first
instruction.
By changing the pointer to the code object to a pointer to the first
instruction we can call directly this instruction directly instead of
looking up the address through the code object.
Review URL: http://codereview.chromium.org/3156028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5309
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 19 Aug 2010 14:00:58 +0000 (14:00 +0000)]
Fix local handle leak in RegExpStringModificationTest.
Review URL: http://codereview.chromium.org/3133027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5308
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 19 Aug 2010 13:28:28 +0000 (13:28 +0000)]
Remove unused function.
Review URL: http://codereview.chromium.org/3107022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5307
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 19 Aug 2010 08:49:26 +0000 (08:49 +0000)]
Fix indentation in utils.h.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5306
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 19 Aug 2010 08:14:29 +0000 (08:14 +0000)]
Landing for Ryan Dahl.
Remove const from BitCast.
Fixes build for old GCCs.
Review URL: http://codereview.chromium.org/3130033/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5305
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 18 Aug 2010 15:36:00 +0000 (15:36 +0000)]
Fix issue 833: eliminate race condition in ProfilerEventsProcessor.
When under a load, the ProfilerEventsProcessor thread can start
(enter Run) after Stop has been called, thus resetting running_
data member back to 'true', and starting an infinite loop.
BUG=833
Review URL: http://codereview.chromium.org/3157022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5304
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 18 Aug 2010 15:24:52 +0000 (15:24 +0000)]
Fix two-phase lookup problem in FlexibleBodyVisitor and FixedBodyVisitor.
In FlexibleBodyVisitor and FixedBodyVisitor, the calls to IteratePointers, which lives in the base class BodyVisitorBase<StaticVisitor>, needs to be qualified with the dependent base class to be able to be bound during two-phase lookup.
Review URL: http://codereview.chromium.org/3119026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5303
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 18 Aug 2010 13:29:20 +0000 (13:29 +0000)]
Remove unused typedef.
Review URL: http://codereview.chromium.org/3164022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5302
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 18 Aug 2010 13:00:38 +0000 (13:00 +0000)]
Make instance_size immediately useful for all fixed size objects.
For variable sized objects this field doesn't really make any sense so
by putting a special value there we can improve SizeFromMap().
Review URL: http://codereview.chromium.org/3127016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5301
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 18 Aug 2010 11:49:40 +0000 (11:49 +0000)]
Fix Windows x64 build broken by r5299.
Review URL: http://codereview.chromium.org/3158019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5300
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 18 Aug 2010 10:45:15 +0000 (10:45 +0000)]
Tracks the maximum usage of executable memory allocated by V8 and allows the histogram data to be gathered and reported.
This patch is contains only the usage tracking logic from 3030048 (already LGTM'd). It does not implement the RWX Limit.
BUG=52122
TEST=Check the V8.ExecutableMemoryMax histogram in the Chrome about:histograms page
Review URL: http://codereview.chromium.org/3161015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5299
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 18 Aug 2010 08:54:25 +0000 (08:54 +0000)]
Use consistent types when calling RegExpImpl::IrregexpExecOnce
Review URL: http://codereview.chromium.org/3167021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5298
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 18 Aug 2010 08:19:29 +0000 (08:19 +0000)]
Heap profiler: allow returning aggregated snapshots via the new API.
This is intended for smoother migration to the new API in Chromium.
Also, aggregated heap snapshots can be used for cheaply obtaining
heap statistics, e.g. in tests.
Review URL: http://codereview.chromium.org/3124024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5297
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 18 Aug 2010 07:14:52 +0000 (07:14 +0000)]
Prepare push of version 2.3.9 to trunk. Now working on versin 2.3.10.
Review URL: http://codereview.chromium.org/3186010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5290
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 18 Aug 2010 07:01:07 +0000 (07:01 +0000)]
Decrease the DST cache increment to take into account the suspension
of DST in Egypt during Ramadan 2010.
Review URL: http://codereview.chromium.org/3122025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5289
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 17 Aug 2010 17:46:23 +0000 (17:46 +0000)]
Fix uninitialized field in Debug::ThreadInit().
Originally reported by Maxim.Mossienko on the isolates branch.
Review URL: http://codereview.chromium.org/3164020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5288
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 17 Aug 2010 13:48:03 +0000 (13:48 +0000)]
Various improvements to oom_dump and instance type lists.
1) addresses various Mark's concern;
2) adds some missing instance types and rearranges existing ones to follow
InstanceType order;
3) various minor cleanups.
Review URL: http://codereview.chromium.org/3119023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5286
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 17 Aug 2010 12:10:27 +0000 (12:10 +0000)]
Fix presubmit and check failures introduced by r5284.
Review URL: http://codereview.chromium.org/3141021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5285
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 17 Aug 2010 11:44:01 +0000 (11:44 +0000)]
Merge flush code phase into marking phase.
Review URL: http://codereview.chromium.org/3135026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5284
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 17 Aug 2010 11:06:12 +0000 (11:06 +0000)]
Fix breakpoints on inlined named stores in code from the optimizing compiler
Review URL: http://codereview.chromium.org/3164018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5283
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 17 Aug 2010 09:27:51 +0000 (09:27 +0000)]
Add classname to a static function call.
Review URL: http://codereview.chromium.org/3125014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5282
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 17 Aug 2010 08:43:45 +0000 (08:43 +0000)]
Add support for vstr for single precision VFP register. This is a commit of codereview.chromium.org/3064045 for Rodolph Perfetta
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5281
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 17 Aug 2010 07:17:20 +0000 (07:17 +0000)]
Fix compilation for ARMv4 for OpenBSD/FreeBSD
This is a port of r5260.
Review URL: http://codereview.chromium.org/3165021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5280
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 16 Aug 2010 17:19:38 +0000 (17:19 +0000)]
Array builtins: add inline modifier to help gcc.
Review URL: http://codereview.chromium.org/3181013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5279
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 16 Aug 2010 17:14:34 +0000 (17:14 +0000)]
Give correct value ranges to enumeration types used as opaque types.
This allows to remove special handling of GCC 4.4 (disabling of Value Range Propagation) from SConstruct.
BUG=http://code.google.com/p/v8/issues/detail?id=830
Review URL: http://codereview.chromium.org/3135022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5278
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 16 Aug 2010 16:06:46 +0000 (16:06 +0000)]
Copy-on-write arrays.
Object model changes
----------------------------------------
New fixed_cow_array_map is used for the elements array of a JSObject
to mark it as COW. The JSObject's map and other fields are not
affected. The JSObject's map still has the "fast elements" bit set. It
means we can do only the receiver map check in keyed loads and the
receiver and the elements map checks in keyed stores. So introducing
COW arrays doesn't hurt performance of these operations. But note that
the elements map check is necessary in all mutating operations because
the "has fast elements" bit now means "has fast elements for reading".
EnsureWritableFastElements can be used in runtime functions to perform
the necessary lazy copying.
Generated code changes
----------------------------------------
Generic keyed load is updated to only do the receiver map check (this
could have been done earlier). FastCloneShallowArrayStub now has two
modes: clone elements and use COW elements. AssertFastElements macro
is added to check the elements when necessary. The custom call IC
generators for Array.prototype.{push,pop} are updated to avoid going
to the slow case (and patching the IC) when calling the builtin should
work.
COW enablement
----------------------------------------
Currently we only put shallow and simple literal arrays in the COW
mode. This is done by the parser.
Review URL: http://codereview.chromium.org/3144002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5275
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 16 Aug 2010 15:49:02 +0000 (15:49 +0000)]
Prepare push of version 2.3.8 to trunk. Now working on version 2.3.9.
Review URL: http://codereview.chromium.org/3117018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5274
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 16 Aug 2010 15:08:32 +0000 (15:08 +0000)]
Make the Integer32 type info only cover the signed 32 bit integers.
Fix some bit op bugs introduced last week on IA32:
http://code.google.com/p/chromium/issues/detail?id=52096
Review URL: http://codereview.chromium.org/3151017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5273
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 16 Aug 2010 12:36:02 +0000 (12:36 +0000)]
Initial implementation of oom_dump utility.
Note: it intentionally lags behind current HeapStats (which now has os_error field)
as these new minidumps could not be produced by current versions of Chrome yet.
Review URL: http://codereview.chromium.org/3170015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5272
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 16 Aug 2010 11:53:52 +0000 (11:53 +0000)]
Remove temporary support for two indexed property query APIs.
Review URL: http://codereview.chromium.org/3143015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5271
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 16 Aug 2010 11:43:30 +0000 (11:43 +0000)]
ARM: Ensure that we are not in a spilled scope when calling
Load() or constructing a reference.
Review URL: http://codereview.chromium.org/3125011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5270
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 16 Aug 2010 11:18:42 +0000 (11:18 +0000)]
Add rcr to disassembler.
Review URL: http://codereview.chromium.org/3108023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5268
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 16 Aug 2010 07:52:49 +0000 (07:52 +0000)]
ARM: backend opt for ToBoolean: JIT code generation for ToBool
Upgraded the CodeGenerator::ToBoolean() function in the ARM backend to use complete JIT code generation and not make runtime calls to ToBool (when VFP is enabled).
This change also includes the vcmp VFP instruction that supports a constant 0.0 as the second operand.
Patch by Subrato K De <subratokde@codeaurora.org>
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5267
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Fri, 13 Aug 2010 13:54:28 +0000 (13:54 +0000)]
LiveEdit: implement stack manipulations for x64
Review URL: http://codereview.chromium.org/3120011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5264
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 13 Aug 2010 12:36:59 +0000 (12:36 +0000)]
ARM: Fix another bug in r5252
Also hoist the load of the valueOf symbol out of the loop.
Review URL: http://codereview.chromium.org/3170014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5263
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 13 Aug 2010 11:18:16 +0000 (11:18 +0000)]
ARM: Fix bug in r5252
Review URL: http://codereview.chromium.org/3123013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5262
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 13 Aug 2010 11:11:36 +0000 (11:11 +0000)]
Add last OS error into heap stats.
That could allow us to understand why commit of from space sometimes fails.
Another option would be start a separate structure with OS-related info, but
as it's a single field, let's put it into HeapStats, at least for now.
Review URL: http://codereview.chromium.org/3118013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5261
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 13 Aug 2010 10:19:45 +0000 (10:19 +0000)]
Fix compilation for ARMv4.
Review URL: http://codereview.chromium.org/3161009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5260
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 13 Aug 2010 09:07:09 +0000 (09:07 +0000)]
Remove experimental fast-codegen. We are no longer working on this
approach.
Review URL: http://codereview.chromium.org/3152016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5259
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 13 Aug 2010 08:31:52 +0000 (08:31 +0000)]
Handle accessors when generating Error.stack
BUG=http://code.google.com/p/v8/issues/detail?id=798
TEST=test/mjsunit/regress/regress-798.js
Review URL: http://codereview.chromium.org/3082012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5258
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 13 Aug 2010 06:55:44 +0000 (06:55 +0000)]
Allow allocation in FailedAccessCheckCallback to allow embedders to
for instance throw exceptions in case of failed access checks.
Review URL: http://codereview.chromium.org/3165016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5257
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Thu, 12 Aug 2010 17:27:07 +0000 (17:27 +0000)]
Reduce size of function restarter frame.
Review URL: http://codereview.chromium.org/3133007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5256
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Thu, 12 Aug 2010 16:01:56 +0000 (16:01 +0000)]
LiveEdit: reflect scope_info moving out of Code
Review URL: http://codereview.chromium.org/3131008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5255
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 12 Aug 2010 14:51:59 +0000 (14:51 +0000)]
Preserve constant function transition when adding the same function.
This should help in cases like:
function Constructor() {
this.foo = constFunction;
this.bar = "baz";
}
for (...) {
o = new Constructor();
// Constant call IC will work.
o.foo();
// Inlined property load will see the same map.
use(o.bar);
}
This change also fixes a latent bug in custom call IC-s for strings
exposed by string-charcodeat.js.
Review URL: http://codereview.chromium.org/3160006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5254
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 12 Aug 2010 14:38:50 +0000 (14:38 +0000)]
Remove runtime function from fuzzing
Don't do fuzzing of _IsStringWrapperSafeForDefaultValueOf as it expects a non-smi as its first argument.
Review URL: http://codereview.chromium.org/3109010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5253
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 12 Aug 2010 13:43:08 +0000 (13:43 +0000)]
Handle overwriting valueOf on String objects correctly when adding
This adds a check to the fast case string add to ensure that the String object still have the default valueOf function. The default valueOf is sitting on a hidden prototype of String.prototype.
Before using the fast case valueOf the object is checked for a local valueOf property. For slow case objects this check always reports true (the dictionary is not probed, so valueOf might be there) and for fast case objects the descriptor array is checked for the valueOf symbol (just liniar scan). After that the prototype is checked for beeing the initial value of String.prototype. If this all pass (that is the default valueOf is still in place) this result is cached on the map making the check fast the next time.
This is only implemented in the optimizing compiler, as the two usages of %_IsStringWrapperSafeForDefaultValueOf is never hit by the full compiler.
I will port to x64 and ARM when this has been reviewed for ia32.
I will remove the performance counters prior to final commit.
BUG=http://code.google.com/p/v8/issues/detail?id=760
TEST=test/mjsunit/regress/regress-760-1.js
TEST=test/mjsunit/regress/regress-760-2.js
Review URL: http://codereview.chromium.org/3117006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5252
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 12 Aug 2010 11:43:10 +0000 (11:43 +0000)]
Fix strict aliasing rule violations in dtoa.c.
Review URL: http://codereview.chromium.org/3172008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5251
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 11 Aug 2010 15:18:01 +0000 (15:18 +0000)]
Add object-visiting.cc into GYP/XCode/MSVC project files.
Review URL: http://codereview.chromium.org/3166008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5248
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 11 Aug 2010 14:51:02 +0000 (14:51 +0000)]
Fix compilation on Mac.
Review URL: http://codereview.chromium.org/3180001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5247
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 11 Aug 2010 14:30:14 +0000 (14:30 +0000)]
Generalize virtually dispatched scavenger to virtually dispatched specialized visitors.
Review URL: http://codereview.chromium.org/3066044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5246
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 11 Aug 2010 14:23:12 +0000 (14:23 +0000)]
X64: Make SmiCompare use the Smi-register when possible.
Review URL: http://codereview.chromium.org/3104007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5245
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 11 Aug 2010 13:48:58 +0000 (13:48 +0000)]
Change lazy compilation stub to a builtin.
This change changes the lazy compilation stub to a builtin and
eliminates the argc (argument count for the function for which to
create a lazy stub) parameter.
Review URL: http://codereview.chromium.org/3146008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5244
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 11 Aug 2010 13:46:10 +0000 (13:46 +0000)]
Minor change to for-in
Return (smi) 0 instead of object null from the FILTER_KEY builtin.
Add a test which tests keys being deleted during for-in.
Review URL: http://codereview.chromium.org/3170004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5243
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 11 Aug 2010 13:12:56 +0000 (13:12 +0000)]
Prepare push to trunk. Now working on version 2.3.8.
Review URL: http://codereview.chromium.org/3166005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5240
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 11 Aug 2010 13:01:28 +0000 (13:01 +0000)]
Fix compilation with strict aliasing enabled on GCC 4.4.1
Review URL: http://codereview.chromium.org/3166006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5239
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 11 Aug 2010 10:55:44 +0000 (10:55 +0000)]
ARM: Remove some spill scopes
Review URL: http://codereview.chromium.org/3119005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5238
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 11 Aug 2010 10:52:34 +0000 (10:52 +0000)]
Allow compiling with strict aliasing enabled on GCC 4.4.
Patch by Jay Freeman.
Fixes issue 463.
Review URL: http://codereview.chromium.org/3117007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5237
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 11 Aug 2010 09:54:30 +0000 (09:54 +0000)]
Heap profiler: enforce compaction before taking a snapshot.
Review URL: http://codereview.chromium.org/3118007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5236
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 11 Aug 2010 09:03:23 +0000 (09:03 +0000)]
Fix issue 822: handling of JSObject::elements in CalculateNetworkSize.
BUG=822
TEST=test-heap-profiler/Issue822
Review URL: http://codereview.chromium.org/3128004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5235
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 11 Aug 2010 08:43:15 +0000 (08:43 +0000)]
Bump the kPartialSnapshotCacheCapacity to 1400 to fix testing with snapshot on.
Review URL: http://codereview.chromium.org/3172003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5234
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 11 Aug 2010 08:12:53 +0000 (08:12 +0000)]
Put direct code pointers into JSFunction objects. This is a first step
in allowing more flexible compilation and to simplify builtins lookup.
This changes a number of places where code objects are assigned to
SharedFunctionInfo objects to also assign this code object to the
JSFunction. In addition, the code flushing is changed slightly to
accomodate this (we need to flush the code from functions pointing to
SharedFunctionInfo objects that has already been flushed).
Review URL: http://codereview.chromium.org/3120006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5233
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 10 Aug 2010 12:44:13 +0000 (12:44 +0000)]
Removed support for object literal get/set with number/string property name.
It doesn't work correctly for array indices.
Review URL: http://codereview.chromium.org/3109002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5232
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 10 Aug 2010 12:30:14 +0000 (12:30 +0000)]
Fix fuzzer-found error where left and right were the same register in bitops.
Review URL: http://codereview.chromium.org/3115004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5231
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 10 Aug 2010 12:06:42 +0000 (12:06 +0000)]
Fix CPU profiler crash in start / stop sequence when non-existent name is passed
BUG=51594
TEST=test-cpu-profiler/CrashIfStoppingLastNonExistentProfile
Review URL: http://codereview.chromium.org/3108004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5230
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 10 Aug 2010 11:52:18 +0000 (11:52 +0000)]
Remove a couple of spill scopes
Review URL: http://codereview.chromium.org/3015066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5229
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 10 Aug 2010 10:05:18 +0000 (10:05 +0000)]
First phase of migration to new indexed property query callbacks.
Eventually indexed property query callbacks will return attributes
(as an integer) or an empty handle if property is not intercepted.
To gradually migrate to this new API, USE_NEW_QUERY_CALLBACK
macro would control if old or new style API is used.
So the migration plan is:
1) introduce new API which should be explictily enabled;
2) switch to new API defining USE_NEW_QUERY_CALLBACK before
include of <v8.h> (that would require changes to client code as well)
3) remove old API from v8
4) remove #define USE_NEW_QUERY_CALLBACK from clients.
BUG=http://code.google.com/p/v8/issues/detail?id=816
Review URL: http://codereview.chromium.org/3101001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5228
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 10 Aug 2010 09:53:56 +0000 (09:53 +0000)]
Add v8::Value::IsRegExp method.
Patch by Vlad Burlik.
Review URL: http://codereview.chromium.org/3064051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5227
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 10 Aug 2010 09:22:49 +0000 (09:22 +0000)]
Enable static assertions in release mode.
Review URL: http://codereview.chromium.org/3146004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5226
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00