platform/upstream/v8.git
13 years agoChange JSObject elements to be of type FixedArrayBase
danno@chromium.org [Fri, 12 Aug 2011 13:54:27 +0000 (13:54 +0000)]
Change JSObject elements to be of type FixedArrayBase

R=kmillikin@chromium.org
BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoSimplify handling of exits from with and catch.
kmillikin@chromium.org [Fri, 12 Aug 2011 10:52:49 +0000 (10:52 +0000)]
Simplify handling of exits from with and catch.

Remove the try/finally used for with and catch.  Instead of using
try/finally to handle break and continue from with or catch,
statically track nesting dept and clean up when compiling break or
continue.

And instead of using try/finally to handle throw to handler in a frame
whose pc is inside a with or catch, store the context that the handler
should run in in the handler itself.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd roundsd instruction to ia32 and use it in optimized Math.floor.
fschneider@chromium.org [Fri, 12 Aug 2011 10:13:40 +0000 (10:13 +0000)]
Add roundsd instruction to ia32 and use it in optimized Math.floor.

It is available platforms that have SSE 4.1 and allows us to handle
negative numbers without deoptimization. Before we would deoptimize
on negative inputs to Math.floor. x64 already uses this instruction.

* Change Math.floor unit test to make sure every test case gets
optimized by changing the source code for each test case.

* Fix HIR debug printing for some instructions.
Review URL: http://codereview.chromium.org/7628017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoUpdate .gitignore to include out/ directory created by Gyp/Make builds
mikhail.naganov@gmail.com [Fri, 12 Aug 2011 09:52:41 +0000 (09:52 +0000)]
Update .gitignore to include out/ directory created by Gyp/Make builds

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPick the namespace alias 'i' from v8.h.
mikhail.naganov@gmail.com [Fri, 12 Aug 2011 09:49:55 +0000 (09:49 +0000)]
Pick the namespace alias 'i' from v8.h.

These files already include v8.h so they don't need to define the
namespace alias again.

Signed-off-by: Thiago Farina <tfarina@chromium.org>
Review URL: http://codereview.chromium.org/7640012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoDo not use deprecated ARM instructions in DirectCEntryStub::GenerateCall.
svenpanne@chromium.org [Fri, 12 Aug 2011 08:45:17 +0000 (08:45 +0000)]
Do not use deprecated ARM instructions in DirectCEntryStub::GenerateCall.

Non-ancient versions of the ARM-ARM explicitly deprecate most uses of the PC
within instructions and older ARM implementations have a non-predictable offset
(8 or 12) for some of these deprecated uses. Avoiding the deprecated instruction
costs us one additional instruction in DirectCEntryStub::GenerateCall, but this
should not cause any significant performance degradation.

The deoptimizer still uses the PC in a stm instruction, but it is a bit unclear
what to do about that, so simply a comment has been added to reconsider this in
the future.
Review URL: http://codereview.chromium.org/7633014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoLanding change for bradnelson@google.com from http://codereview.chromium.org/7616013/ :
iposva@chromium.org [Thu, 11 Aug 2011 22:41:07 +0000 (22:41 +0000)]
Landing change for bradnelson@google.com from codereview.chromium.org/7616013/ :

Dropping removed source file from the gyp build description.

BUG=None
TEST=None
R=iposva@chromium.org

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPreliminary code for block scopes and block contexts.
keuchel@chromium.org [Thu, 11 Aug 2011 16:29:28 +0000 (16:29 +0000)]
Preliminary code for block scopes and block contexts.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRollback of r8903
yangguo@chromium.org [Thu, 11 Aug 2011 16:11:07 +0000 (16:11 +0000)]
Rollback of r8903

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoQuick fix to issue 1593
yangguo@chromium.org [Thu, 11 Aug 2011 15:18:55 +0000 (15:18 +0000)]
Quick fix to issue 1593
BUG=v8:1593

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoCreate a common base class for Fixed-, FixedDouble- and ExternalArrays.
danno@chromium.org [Thu, 11 Aug 2011 14:00:16 +0000 (14:00 +0000)]
Create a common base class for Fixed-, FixedDouble- and ExternalArrays.

Also unify Crankshaft code to load array length.

BUG=v8:1493
TEST=external-arrays.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoOutput missing comments after the last disassembled instruction.
svenpanne@chromium.org [Thu, 11 Aug 2011 13:59:29 +0000 (13:59 +0000)]
Output missing comments after the last disassembled instruction.
Review URL: http://codereview.chromium.org/7623014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoThird attempt to fix ARM cross-compile build
jkummerow@chromium.org [Thu, 11 Aug 2011 13:58:28 +0000 (13:58 +0000)]
Third attempt to fix ARM cross-compile build

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFixed printing of deoptimization input data without --print-code-verbose.
svenpanne@chromium.org [Thu, 11 Aug 2011 13:56:09 +0000 (13:56 +0000)]
Fixed printing of deoptimization input data without --print-code-verbose.
Review URL: http://codereview.chromium.org/7617008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemoved some arbitrary size restrictions when disassembling generated code.
svenpanne@chromium.org [Thu, 11 Aug 2011 12:52:37 +0000 (12:52 +0000)]
Removed some arbitrary size restrictions when disassembling generated code.

We output line-by-line now, this avoids hitting StringBuffer ASSERTs when
disassembling huge code objects.
Review URL: http://codereview.chromium.org/7622006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRevert some .gyp refactoring to fix ARM cross-compilation
jkummerow@chromium.org [Thu, 11 Aug 2011 12:07:37 +0000 (12:07 +0000)]
Revert some .gyp refactoring to fix ARM cross-compilation

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMake threaded tests not use static fields for communication.
lrn@chromium.org [Thu, 11 Aug 2011 09:08:44 +0000 (09:08 +0000)]
Make threaded tests not use static fields for communication.

TEST=cctest/Threaded4

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemove unused code from runtime profiler.
fschneider@chromium.org [Thu, 11 Aug 2011 08:26:01 +0000 (08:26 +0000)]
Remove unused code from runtime profiler.
Review URL: http://codereview.chromium.org/7617003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoSimplify and optimize ToBoolean handling.
svenpanne@chromium.org [Thu, 11 Aug 2011 07:22:16 +0000 (07:22 +0000)]
Simplify and optimize ToBoolean handling.

Changing our builtin JavaScript code slightly, we can make sure that we never
see internal objects as arguments for ToBoolean at runtime. Removing that case
from the stub generator and crankshaft makes things a lot easier.

Heap numbers can never be undetectable (only strings and spec objects can), so
we can leave out a useless test.

Try to re-use a non-null register value when returning 'true' in some cases.

Removed special handling of the 'handle all' case, it will very probably never
happen in real code and only makes things more complicated.

Improved naming of the ToBoolean stubs a bit, reflecting the order in which
cases are handled in the code itself.
Review URL: http://codereview.chromium.org/7497063

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAllows not API functions as inputs for CreationConext method.
antonm@chromium.org [Thu, 11 Aug 2011 06:40:14 +0000 (06:40 +0000)]
Allows not API functions as inputs for CreationConext method.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix fun.apply(receiver, arguments) optimization.
vitalyr@chromium.org [Wed, 10 Aug 2011 16:05:17 +0000 (16:05 +0000)]
Fix fun.apply(receiver, arguments) optimization.

R=kmillikin@chromium.org
BUG=v8:1592
TEST=mjsunit/regress/regress-1592.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix cross-compilation for ARM (hopefully)
jkummerow@chromium.org [Wed, 10 Aug 2011 14:07:26 +0000 (14:07 +0000)]
Fix cross-compilation for ARM (hopefully)

TEST=Arm builder on Chromium waterfall successfully compiles

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix x64 build.
fschneider@chromium.org [Wed, 10 Aug 2011 13:11:14 +0000 (13:11 +0000)]
Fix x64 build.

TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/7604034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix three bugs with handling negative zero in the optimizing compiler.
fschneider@chromium.org [Wed, 10 Aug 2011 12:32:43 +0000 (12:32 +0000)]
Fix three bugs with handling negative zero in the optimizing compiler.

* Bug fix for range analysis (contributed by Andy Wingo). Ranges of
double values have to include negative zero. Original code review:
 http://codereview.chromium.org/7514040/

* Fix a bug in optimized Math.round on ARM. When emitting minus-zero checks
we previously return a wrong result because of incorrect register assignment.

* Fix performance problem in IA32 and x64. Refine the checks
for minus zero and avoid unnecessary deoptimizations on Math.floor.

* Improve mjsunit test for Math.round to make sure we also
 get the optimized version of the code for each test case.
Review URL: http://codereview.chromium.org/7604028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoImplement Harmony semantics for typeof null (behind a flag).
rossberg@chromium.org [Wed, 10 Aug 2011 12:12:06 +0000 (12:12 +0000)]
Implement Harmony semantics for typeof null (behind a flag).

Harmony is intended to make typeof null === "null". This may
break existing programs. Implementing it will allow us to run
some tests on the actual web.

R=kmillikin@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPrepare push to trunk. Now working on version 3.5.5.
kmillikin@chromium.org [Wed, 10 Aug 2011 11:22:23 +0000 (11:22 +0000)]
Prepare push to trunk.  Now working on version 3.5.5.

R=danno@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAllow snapshots to be generated without using vfp3 code on arm.
ricow@chromium.org [Wed, 10 Aug 2011 11:14:32 +0000 (11:14 +0000)]
Allow snapshots to be generated without using vfp3 code on arm.

There is currently no way of specifying that the snapshot build by scons should be created without using the vfp3 instructions.
Review URL: http://codereview.chromium.org/7604031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoSupport OUTDIR variable for tests triggered by Makefile
jkummerow@chromium.org [Wed, 10 Aug 2011 11:07:31 +0000 (11:07 +0000)]
Support OUTDIR variable for tests triggered by Makefile

TEST="make -j16 check OUTDIR=whatever" works as expected

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRefactor UnionOfKeys into ElementsAccessor
danno@chromium.org [Wed, 10 Aug 2011 10:51:01 +0000 (10:51 +0000)]
Refactor UnionOfKeys into ElementsAccessor

BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoARM: Fix deoptimizer for two-word call sites.
mstarzinger@chromium.org [Wed, 10 Aug 2011 08:03:22 +0000 (08:03 +0000)]
ARM: Fix deoptimizer for two-word call sites.

R=svenpanne@chromium.org,kmillikin@chromium.org
BUG=v8:1584

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMake presubmit check happier with GYP.
vitalyr@chromium.org [Tue, 9 Aug 2011 13:45:54 +0000 (13:45 +0000)]
Make presubmit check happier with GYP.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoSimpler (and a bit faster) keyword matcher.
vitalyr@chromium.org [Tue, 9 Aug 2011 13:32:53 +0000 (13:32 +0000)]
Simpler (and a bit faster) keyword matcher.

Replaced the keyword matching state machine with a switch on the first char followed up by inlined char comparisons.

R=lrn@chromium.org
TEST=cctest/test-parsing/ScanKeywords

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix a bug in named getter/setter compilation.
kmillikin@chromium.org [Tue, 9 Aug 2011 12:43:08 +0000 (12:43 +0000)]
Fix a bug in named getter/setter compilation.

Because these are function literals that have an associated name, we were
compiling them as if they were named function expressions.  This is
incorrect, the property name should not be in scope.

R=vegorov@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdded fast detection of one character tokens.
lrn@chromium.org [Tue, 9 Aug 2011 11:28:09 +0000 (11:28 +0000)]
Added fast detection of one character tokens.
Reduced size of first-character table for keyword scanner.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFixed extremely important, mission-critical presubmit warnings...
svenpanne@chromium.org [Tue, 9 Aug 2011 08:16:32 +0000 (08:16 +0000)]
Fixed extremely important, mission-critical presubmit warnings...
Review URL: http://codereview.chromium.org/7600019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoImplement type recording for ToBoolean on ARM.
svenpanne@chromium.org [Tue, 9 Aug 2011 07:59:00 +0000 (07:59 +0000)]
Implement type recording for ToBoolean on ARM.
Review URL: http://codereview.chromium.org/7491054

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRevert "Revert "Fix a bug in scope analysis.""
kmillikin@chromium.org [Mon, 8 Aug 2011 16:14:46 +0000 (16:14 +0000)]
Revert "Revert "Fix a bug in scope analysis.""

Reapply r8838 with a fix for the issue of function names.

Because function names can be added/changed/removed through the API,
remember whether the function is anonymous when initially parsed and use
that information when compiling.

R=vegorov@chromium.org
BUG=1583
TEST=regress-1583

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemove orphaned file src/shell.h
jkummerow@chromium.org [Mon, 8 Aug 2011 14:31:47 +0000 (14:31 +0000)]
Remove orphaned file src/shell.h

This has nothing to do with the sample shell.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdded two whitespaces to match correct indentation.
yangguo@chromium.org [Mon, 8 Aug 2011 09:53:28 +0000 (09:53 +0000)]
Added two whitespaces to match correct indentation.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFixed a known issue in D8 (read file), enabled D8 shared library build on Windows.
yangguo@chromium.org [Mon, 8 Aug 2011 09:34:18 +0000 (09:34 +0000)]
Fixed a known issue in D8 (read file), enabled D8 shared library build on Windows.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix compilation error on X64 and ARM. Error was introduced in r8851.
whesse@chromium.org [Mon, 8 Aug 2011 07:34:54 +0000 (07:34 +0000)]
Fix compilation error on X64 and ARM.  Error was introduced in r8851.

Clean up TranslationIterator and DeoptimizationInputDataPrint, so they will work with alignment padding in the Translation info.

BUG=
TEST=v8 compiles on X64 and ARM platforms.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoClean up TranslationIterator and DeoptimizationInputDataPrint.
whesse@chromium.org [Mon, 8 Aug 2011 07:17:01 +0000 (07:17 +0000)]
Clean up TranslationIterator and DeoptimizationInputDataPrint.

Without this refactoring, they break when we add alignment padding in the Translation info.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMake d8-os test less flaky.
vitalyr@chromium.org [Fri, 5 Aug 2011 13:34:46 +0000 (13:34 +0000)]
Make d8-os test less flaky.

Because of stress testing there may be parallel instances of the test
running, which makes it fail when using a hardcoded test dir
name. Adding a random suffix helps. It'd be nicer to add something
like pid, but there doesn't seem to be an easy way of getting it.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAvoid infinite recursion for unterminated non-ASCII JSON string literals.
lrn@chromium.org [Fri, 5 Aug 2011 12:55:29 +0000 (12:55 +0000)]
Avoid infinite recursion for unterminated non-ASCII JSON string literals.

BUG=91787
TEST=mjsunit/regress/regress-91787

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemove TLS load in regexp code.
vitalyr@chromium.org [Fri, 5 Aug 2011 12:31:37 +0000 (12:31 +0000)]
Remove TLS load in regexp code.

Spotted while reviewing Yang's patch.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd lost -O3 flag when building inside Chromium
jkummerow@chromium.org [Fri, 5 Aug 2011 12:05:23 +0000 (12:05 +0000)]
Add lost -O3 flag when building inside Chromium

TEST=WebKit layout tests no longer timeout

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix DebugEvaluate crash within a catch in a function without local context.
keuchel@chromium.org [Fri, 5 Aug 2011 12:00:57 +0000 (12:00 +0000)]
Fix DebugEvaluate crash within a catch in a function without local context.

BUG=v8:1586
TEST=mjsunit/regress/regress-1586.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoStatic state cleanup: add more consts.
vitalyr@chromium.org [Fri, 5 Aug 2011 11:32:46 +0000 (11:32 +0000)]
Static state cleanup: add more consts.

R=vegorov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix bug in scanner.
lrn@chromium.org [Fri, 5 Aug 2011 11:21:04 +0000 (11:21 +0000)]
Fix bug in scanner.
Checking for end-of-comment truncated to byte before comparing to '*'.

BUG=v8:1546
TEST=mjsunit/regress/regress-1546

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoSpecify stack size for win64 when linking d8.
yangguo@chromium.org [Fri, 5 Aug 2011 10:00:35 +0000 (10:00 +0000)]
Specify stack size for win64 when linking d8.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMake GYP build usable for day-to-day work (second attempt)
jkummerow@chromium.org [Fri, 5 Aug 2011 09:44:30 +0000 (09:44 +0000)]
Make GYP build usable for day-to-day work (second attempt)

- Introduce a global Makefile that triggers GYP-based building
- Some fixes to .gyp[i] files to make everything work
- tools/test-wrapper-gypbuild.py as a temporary solution for easy testing

Original review URL: http://codereview.chromium.org/7383006/

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRevert "Fix a bug in scope analysis."
kmillikin@chromium.org [Fri, 5 Aug 2011 09:20:08 +0000 (09:20 +0000)]
Revert "Fix a bug in scope analysis."

This reverts commit revision 8838.

TBR=ricow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix a bug in scope analysis.
kmillikin@chromium.org [Fri, 5 Aug 2011 08:28:11 +0000 (08:28 +0000)]
Fix a bug in scope analysis.

When recompiling code (e.g., when optimizing) we could incorrectly hoist
some function expressions.  This leads to incorrect results or a crash.  The
root cause was that functions were not correctly categorized as expression
or declaration at parse time.

This requires some extra hoops to prevent the print name "anonymous" for
functions created by 'new Function' from establishing a binding.

R=vegorov@chromium.org,kasperl@chromium.org
BUG=1583
TEST=regress-1583

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix report printing in test.py script.
mstarzinger@chromium.org [Fri, 5 Aug 2011 08:04:47 +0000 (08:04 +0000)]
Fix report printing in test.py script.

R=ricow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRevert "tighten invariants of HValue::InferRange"
kmillikin@chromium.org [Thu, 4 Aug 2011 16:43:20 +0000 (16:43 +0000)]
Revert "tighten invariants of HValue::InferRange"

This change reportedly causes a slowdown or inifinite loop on ARM.  Revert
pending investigation.

R=vegorov@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMinimize malloc heap allocation on process startup.
vitalyr@chromium.org [Thu, 4 Aug 2011 15:18:18 +0000 (15:18 +0000)]
Minimize malloc heap allocation on process startup.

R=vegorov@chromium.org
BUG=http://b/issue?id=5095592

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agogrokdump: Tiny bugfix and type list update.
vitalyr@chromium.org [Thu, 4 Aug 2011 12:07:43 +0000 (12:07 +0000)]
grokdump: Tiny bugfix and type list update.

R=vegorov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMove element deletion into element handlers
danno@chromium.org [Thu, 4 Aug 2011 11:42:14 +0000 (11:42 +0000)]
Move element deletion into element handlers

BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdditional functions to Harmony weak maps API.
mstarzinger@chromium.org [Thu, 4 Aug 2011 11:13:15 +0000 (11:13 +0000)]
Additional functions to Harmony weak maps API.

R=rossberg@chromium.org
BUG=v8:1565
TEST=mjsunit/harmony/weakmaps

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd regression test for 91517
danno@chromium.org [Thu, 4 Aug 2011 11:00:32 +0000 (11:00 +0000)]
Add regression test for 91517

R=vegorov@chromium.org
BUG=91517
TEST=regress-91517.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix out-of-bounds access in fetching propery names
danno@chromium.org [Thu, 4 Aug 2011 09:23:25 +0000 (09:23 +0000)]
Fix out-of-bounds access in fetching propery names

R=vegorov@chromium.org
BUG=chromium:91517
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix GCMole warning.
mstarzinger@chromium.org [Wed, 3 Aug 2011 15:42:25 +0000 (15:42 +0000)]
Fix GCMole warning.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd missing bounds check in FixedArray::set for smis
danno@chromium.org [Wed, 3 Aug 2011 13:56:55 +0000 (13:56 +0000)]
Add missing bounds check in FixedArray::set for smis

R=svenpanne@chromium.org
BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPrototype of mark-and-compact support for Harmony weak maps.
mstarzinger@chromium.org [Wed, 3 Aug 2011 12:48:30 +0000 (12:48 +0000)]
Prototype of mark-and-compact support for Harmony weak maps.

R=vegorov@chromium.org
BUG=v8:1565
TEST=cctest/test-weakmaps

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoEnsure that the length property of bound functions are actual unique
ricow@chromium.org [Wed, 3 Aug 2011 12:44:17 +0000 (12:44 +0000)]
Ensure that the length property of bound functions are actual unique
for the individually bound functions.

Our existing code will generate a new function on every call to bind,
but it will use the same shared function. When setting the lenght this
will be set on the shared function, i.e., the length of all bound
functions will be that of the last bound function.
Review URL: http://codereview.chromium.org/7475002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix performance regression due to elements refactor
danno@chromium.org [Wed, 3 Aug 2011 12:42:04 +0000 (12:42 +0000)]
Fix performance regression due to elements refactor

Consolidate the runtime logic for fetching elements from Objects and JSObjects so that element access in the GetElement cases that are not handled in generated code.

R=svenpanne@chromium.org
BUG=none
TEST=closure.js test faster

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix presubmit error.
mstarzinger@chromium.org [Wed, 3 Aug 2011 12:23:55 +0000 (12:23 +0000)]
Fix presubmit error.

TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPreliminary Harmony weak maps API implementation.
mstarzinger@chromium.org [Wed, 3 Aug 2011 11:55:13 +0000 (11:55 +0000)]
Preliminary Harmony weak maps API implementation.

R=rossberg@chromium.org,danno@chromium.org
BUG=v8:1565
TEST=mjsunit/harmony/weakmaps

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoEncapsulate element handling into a class keyed on ElementsKind
danno@chromium.org [Wed, 3 Aug 2011 11:12:46 +0000 (11:12 +0000)]
Encapsulate element handling into a class keyed on ElementsKind

Advantage is that it's much easier to add new element types (like FAST_SMI_ELEMENTS), and that handling logic for each element kind is (more) consolidated.

Currently, only GetElementsWithReceiver uses the new encapsulation, but the goal is to move much more element functionality into the class incrementally.

BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPrepare push to trunk. Now working on 3.5.4.
lrn@chromium.org [Wed, 3 Aug 2011 10:56:06 +0000 (10:56 +0000)]
Prepare push to trunk. Now working on 3.5.4.

R=ricow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agotighten invariants of HValue::InferRange
kmillikin@chromium.org [Wed, 3 Aug 2011 10:44:20 +0000 (10:44 +0000)]
tighten invariants of HValue::InferRange

* src/hydrogen-instructions.cc (HValue::InferRange): Only mark values
  with int32 representation as never being -0.  Always return a non-NULL
  value; callers should check for representation().IsNone() if that's
  their concern.

  In practice these invariants were not violated by callers, but they
  were sometimes two calls away, which seems brittle.

BUG=
TEST=tests pass, modulo http://code.google.com/p/v8/issues/detail?id=1572

Review URL: http://codereview.chromium.org/7514040
Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoCheck phi uses of the arguments object after redundant phies elimination.
vegorov@chromium.org [Wed, 3 Aug 2011 10:40:03 +0000 (10:40 +0000)]
Check phi uses of the arguments object after redundant phies elimination.

This allows to handle code like:

var a = arguments;
while (smth) a[i];

without bailout.

R=kmillikin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMIPS: port Fix ClassOf check on ARM.
danno@chromium.org [Wed, 3 Aug 2011 10:11:09 +0000 (10:11 +0000)]
MIPS: port Fix ClassOf check on ARM.

Ported r8713 (6bdadc4)

BUG=
TEST=

Review URL: http://codereview.chromium.org/7564003
Patch from Paul Lind <plind44@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMIPS: port Ensure that GenerateStoreFastDoubleElement returns stored value on all...
danno@chromium.org [Wed, 3 Aug 2011 10:07:34 +0000 (10:07 +0000)]
MIPS: port Ensure that GenerateStoreFastDoubleElement returns stored value on all paths.

Ported r8781 (ca7888b)

BUG=
TEST=

Review URL: http://codereview.chromium.org/7563002
Patch from Paul Lind <plind44@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRevert "Make window.{undefined,NaN,Infinity} read-only"
jkummerow@chromium.org [Wed, 3 Aug 2011 09:53:14 +0000 (09:53 +0000)]
Revert "Make window.{undefined,NaN,Infinity} read-only"

This reverts r8766.

TEST=WebKit LayoutTests green again.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRevert "Revert "Fix a bug in scope analysis.""
kmillikin@chromium.org [Wed, 3 Aug 2011 09:10:35 +0000 (09:10 +0000)]
Revert "Revert "Fix a bug in scope analysis.""

Reapply r8783 with an additional fix.

Because the preparser and parser do not use the same scope analysis to
determine if a function can be lazily compiled, the parser can have false
positives.  Rather than treating this as a parse error, treat the preparser
as authoritative and eagerly compile the function.

R=lrn@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8797 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix ContextDeserialization and PartialDeserialization tests.
vegorov@chromium.org [Tue, 2 Aug 2011 17:43:32 +0000 (17:43 +0000)]
Fix ContextDeserialization and PartialDeserialization tests.

Space should be reserved twice before each deserialization.

R=erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8795 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRevert "Fix a bug in scope analysis."
kmillikin@chromium.org [Tue, 2 Aug 2011 17:02:24 +0000 (17:02 +0000)]
Revert "Fix a bug in scope analysis."

This reverts r8783.

R=vegorov@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoDon't use mprotect on Cygwin as virtual memory is managed directly via WinAPI calls.
vegorov@chromium.org [Tue, 2 Aug 2011 16:16:32 +0000 (16:16 +0000)]
Don't use mprotect on Cygwin as virtual memory is managed directly via WinAPI calls.

Patch by Bert Belder.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAvoid uninitialized member warning on gcc 4.3.4
vegorov@chromium.org [Tue, 2 Aug 2011 16:02:33 +0000 (16:02 +0000)]
Avoid uninitialized member warning on gcc 4.3.4

Patch by Bert Belder.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFixed code generation for LBranch on ARM when the operand's representation is double.
svenpanne@chromium.org [Tue, 2 Aug 2011 15:14:12 +0000 (15:14 +0000)]
Fixed code generation for LBranch on ARM when the operand's representation is double.

The condition code for branching on the result of vcmp was wrong, effectively
swapping the true/false branches.

TEST=regress-lbranch-double.js
Review URL: http://codereview.chromium.org/7553010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix a bug in scope analysis.
kmillikin@chromium.org [Tue, 2 Aug 2011 15:04:31 +0000 (15:04 +0000)]
Fix a bug in scope analysis.

Function declarations inside catch are hoisted to the nearest enclosing
function scope, but we compiled their bodies as if occurring inside the
catch scope.

BUG=chrome:91120
TEST=regress/regress-91120 attached

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoProperly handle FixedDoubleArrays in sort()
danno@chromium.org [Tue, 2 Aug 2011 14:05:11 +0000 (14:05 +0000)]
Properly handle FixedDoubleArrays in sort()

R=jkummerow@chromium.org
BUG=91008
TEST=regress-91008.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoEnsure that GenerateStoreFastDoubleElement returns stored value on all paths.
vegorov@chromium.org [Tue, 2 Aug 2011 13:36:38 +0000 (13:36 +0000)]
Ensure that GenerateStoreFastDoubleElement returns stored value on all paths.

BUG=chromium:91013
TEST=test/mjsunit/regress/regress-91013.js
Review URL: http://codereview.chromium.org/7551009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMark optimized modulo and memcpy code pages -w after writing them.
vegorov@chromium.org [Tue, 2 Aug 2011 13:34:52 +0000 (13:34 +0000)]
Mark optimized modulo and memcpy code pages -w after writing them.

BUG=91245

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoCheck for phi-uses of arguments object before eliminating dead phi's.
vegorov@chromium.org [Tue, 2 Aug 2011 09:32:28 +0000 (09:32 +0000)]
Check for phi-uses of arguments object before eliminating dead phi's.

HGraphBuilder::TryArgumentsAccess does not emit any uses for receiver and will generate incorrect code when receiver for a property access is defined by a phi that returns either arguments object or something else.

BUG=v8:1582
TEST=test/mjsunit/regress/regress-1582.js
Review URL: http://codereview.chromium.org/7553006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoProperly handle FastDoubleArrays in Runtime_MoveArrayContents
danno@chromium.org [Tue, 2 Aug 2011 09:28:55 +0000 (09:28 +0000)]
Properly handle FastDoubleArrays in Runtime_MoveArrayContents

BUG=91013
TEST=regress91013.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFixed: regression in issue 1579 concerning readline() in d8.
yangguo@chromium.org [Mon, 1 Aug 2011 14:15:02 +0000 (14:15 +0000)]
Fixed: regression in issue 1579 concerning readline() in d8.
BUG=v8:1579

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoTiny cleanup.
svenpanne@chromium.org [Mon, 1 Aug 2011 13:35:11 +0000 (13:35 +0000)]
Tiny cleanup.
Review URL: http://codereview.chromium.org/7541020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoImplement type recording for ToBoolean on x64.
svenpanne@chromium.org [Mon, 1 Aug 2011 12:53:24 +0000 (12:53 +0000)]
Implement type recording for ToBoolean on x64.

Handle oddballs on ia32 via root indices, similar to other platforms. Added a
special case for Smi types on ia32 to make lithium code generation on both Intel
platforms more similar.
Review URL: http://codereview.chromium.org/7544012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMake window.{undefined,NaN,Infinity} read-only
jkummerow@chromium.org [Mon, 1 Aug 2011 12:18:03 +0000 (12:18 +0000)]
Make window.{undefined,NaN,Infinity} read-only

as per ES5.

BUG=89490
TEST=es5conform 15.1.*, 15.2.3.*; mjsunit/undeletable-functions

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8766 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPrepare push to trunk. Now working on 3.5.3.
vegorov@chromium.org [Mon, 1 Aug 2011 11:10:33 +0000 (11:10 +0000)]
Prepare push to trunk. Now working on 3.5.3.
Review URL: http://codereview.chromium.org/7538017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoString to ascii char array converter for debug mode.
yangguo@chromium.org [Fri, 29 Jul 2011 09:49:40 +0000 (09:49 +0000)]
String to ascii char array converter for debug mode.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRevert r8753.
fschneider@chromium.org [Fri, 29 Jul 2011 09:14:00 +0000 (09:14 +0000)]
Revert r8753.

It caused a regressions in compile time in the optimizing compiler. I'm reverting until
the reason for this is identified and fixed.

TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/7453024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoReintroduced dictionary that can use objects as keys.
mstarzinger@chromium.org [Thu, 28 Jul 2011 17:21:22 +0000 (17:21 +0000)]
Reintroduced dictionary that can use objects as keys.

R=vitalyr@chromium.org
TEST=cctest/test-dictionary

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoOptimization: Do not assign an environment to LBranch when are sure that we will...
svenpanne@chromium.org [Thu, 28 Jul 2011 14:56:08 +0000 (14:56 +0000)]
Optimization: Do not assign an environment to LBranch when are sure that we will never deopt later.
Review URL: http://codereview.chromium.org/7524025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoTiny cleanup of LCodeGen::DoBranch.
svenpanne@chromium.org [Thu, 28 Jul 2011 14:31:16 +0000 (14:31 +0000)]
Tiny cleanup of LCodeGen::DoBranch.
Review URL: http://codereview.chromium.org/7482044

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8759 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoUse type info for the ToBoolean translation in crankshaft.
svenpanne@chromium.org [Thu, 28 Jul 2011 13:33:51 +0000 (13:33 +0000)]
Use type info for the ToBoolean translation in crankshaft.

To do this, the Branch instruction needs to carry around a temporary register,
but only when the crankshafted code will make a map access. When the
crankshafted code sees an object of a type it hasn't encountered before, it will
always trigger a deopt. Another option in theses cases would be calling a
ToBooleanStub which can handle all types, but then one has to be careful to
*not* trigger a GC (which is currently a bit tricky to achieve).

Const-corrected ToBoolean::Types. Moved the NeedsMap logic into ToBoolean::Types
itself, where it belongs.

This patch improves a lot of benchmarks, crypto-orig even by 16.7%, but slows
down others. The slowdown has to be investigated, but I'd like to get this patch
out first to fix the flakiness problems we currently have due to the previous
crankshafted ToBoolean.
Review URL: http://codereview.chromium.org/7461107

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8758 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix win64 debug mode compilation
ricow@chromium.org [Thu, 28 Jul 2011 12:34:37 +0000 (12:34 +0000)]
Fix win64 debug mode compilation
Review URL: http://codereview.chromium.org/7482042

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8757 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix calculation of 'scope_calls_eval' when 'eval' is within a nested catch.
keuchel@chromium.org [Thu, 28 Jul 2011 12:17:36 +0000 (12:17 +0000)]
Fix calculation of 'scope_calls_eval' when 'eval' is within a nested catch.

BUG=
TEST=mjsunit/scope-calls-eval.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00