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
mikhail.naganov@gmail.com [Tue, 10 Aug 2010 07:37:59 +0000 (07:37 +0000)]
Fix lint issue.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5225
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 10 Aug 2010 07:30:14 +0000 (07:30 +0000)]
Heap profiler: Add static assertions for heap snapshot entities' sizes.
Review URL: http://codereview.chromium.org/2808112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5224
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 9 Aug 2010 14:57:13 +0000 (14:57 +0000)]
A follow-up to r5211: fix a couple of issues detected on Windows.
- storage of enums in bit fields;
- removing dead entries from address -> id map in HeapObjectsMap;
- layout of HeapEntry, to avoid class size increase on ia32 due to alignment;
Review URL: http://codereview.chromium.org/3096008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5217
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 9 Aug 2010 14:54:23 +0000 (14:54 +0000)]
Fix bug in binary operations code. When loading a 32-bit integer as a
64-bit integer to the stack, the high and low parts of the 64-bit
value were pushed in the wrong order.
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/3010060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5216
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 9 Aug 2010 13:12:02 +0000 (13:12 +0000)]
IA32: Avoid going into stubs or runtime code for bitops even if the
inputs are heap numbers or the result is a heap number (only with
SSE2). Make it possible for a deferred code object to work without
spilling all registers.
Review URL: http://codereview.chromium.org/3054047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5215
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 9 Aug 2010 12:44:48 +0000 (12:44 +0000)]
Fix cast that fails to build on Windows.
Review URL: http://codereview.chromium.org/3044055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5213
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 9 Aug 2010 12:21:50 +0000 (12:21 +0000)]
Change dos line endings to unix line endings in a number of mjsunit test files.
Review URL: http://codereview.chromium.org/3072031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5212
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 9 Aug 2010 11:37:24 +0000 (11:37 +0000)]
Heap profiler: reduce heap snapshots size.
The size of a snapshot is now 65-80% of the JS heap size (tested on
GMail and Wave), previously it was >200%.
BUG=783
Review URL: http://codereview.chromium.org/3060008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5211
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 9 Aug 2010 09:20:35 +0000 (09:20 +0000)]
Prepare push to trunk. Now working on version 2.3.7.
Review URL: http://codereview.chromium.org/3017063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5207
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 9 Aug 2010 08:54:29 +0000 (08:54 +0000)]
Changed layout of object literal parser.
Review URL: http://codereview.chromium.org/3032064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5206
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 6 Aug 2010 13:04:27 +0000 (13:04 +0000)]
Create a new RegExp object for every evaluation of a RegExp literal.
Changes necessary to following ES5 semantics and matching Safari - in ES3
the same RegExp object was generated by each evaluation of the RegExp literal.
Fixes bug 704.
Review URL: http://codereview.chromium.org/3034060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5198
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 6 Aug 2010 09:04:17 +0000 (09:04 +0000)]
Fix bug 813, harmless assert triggered by ARM inside o3d.
Review URL: http://codereview.chromium.org/2868112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5197
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Fri, 6 Aug 2010 08:49:59 +0000 (08:49 +0000)]
Reapplying r5174 (Avoid GC when compiling CallIC stubs).
I could not find a way to introduce simple yet useful assertions,
so I removed the assertions that broke tests.
The new patch just fixes the actual problem (GC triggered while raw pointers
are held in LookupResult).
Review URL: http://codereview.chromium.org/3030049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5196
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 6 Aug 2010 08:03:44 +0000 (08:03 +0000)]
Re-apply r5165 (Added support for ES5's propertyname production)
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/3073031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5192
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 5 Aug 2010 18:12:39 +0000 (18:12 +0000)]
Check ASCIIness of lhs, not this.
In one pathalogical case it's possible to have this->IsAsciiRepresentation() &&
!this->TryFlattenGetString()->IsAsciiRepresentation()---if cons string has two byte
string which holds only ascii chars and second is an empty string. In this case we
would return first which is not AsciiRepresentation(), however cons is.
Review URL: http://codereview.chromium.org/3036046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5188
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 5 Aug 2010 14:46:34 +0000 (14:46 +0000)]
Revert r5165 (Added support for ES5's propertyname production)
This is to test in Chromium without this change.
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/3027043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5182
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00