platform/upstream/v8.git
13 years agoMIPS: port Dispatch on ElementsKind rather than ExternalArrayType ...
sgjesse@chromium.org [Fri, 10 Jun 2011 07:14:34 +0000 (07:14 +0000)]
MIPS: port Dispatch on ElementsKind rather than ExternalArrayType ...

Port r8244 (c90151c)

Orig commit msg:
Dispatch on ElementsKind rather than ExternalArrayType when generating ICs
and Crankshaft code for many element operations. This is preparation to be
able to share more code in the various element accessor implementations.

BUG=
TEST=

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

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

13 years agoMIPS: port Link function contexts directly to the previous context.
sgjesse@chromium.org [Fri, 10 Jun 2011 07:13:07 +0000 (07:13 +0000)]
MIPS: port Link function contexts directly to the previous context.

Ported r8238 (7803ed7)

This commit would have also included changes to macro-assembler-mips.cc,
however Kevin M. did those changes in later commit r8248. (thx!)

BUG=
TEST=

Committed: http://code.google.com/p/v8/source/detail?r=8249

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

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

13 years agoMIPS: port Link function contexts directly to the previous context.
sgjesse@chromium.org [Fri, 10 Jun 2011 07:09:14 +0000 (07:09 +0000)]
MIPS: port Link function contexts directly to the previous context.

Ported r8238 (7803ed7)

This commit would have also included changes to macro-assembler-mips.cc,
however Kevin M. did those changes in later commit r8248. (thx!)

BUG=
TEST=

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

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

13 years agoUse the previous context link when checking context extension objects.
kmillikin@chromium.org [Thu, 9 Jun 2011 17:44:50 +0000 (17:44 +0000)]
Use the previous context link when checking context extension objects.

In generated code, when walking the context to inspect context extension
objects, use the previous context link directly.

R=ager@chromium.org
BUG=
TEST=

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

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

13 years agoFix bogus unreachable in debug code.
danno@chromium.org [Thu, 9 Jun 2011 16:20:41 +0000 (16:20 +0000)]
Fix bogus unreachable in debug code.

BUG=none
TEST=none
TBR=jkummerow@chromium.org

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

13 years agoGYP: Generate makefiles for all architectures on Linux
sgjesse@chromium.org [Thu, 9 Jun 2011 15:51:08 +0000 (15:51 +0000)]
GYP: Generate makefiles for all architectures on Linux

On Linux running gyp_v8 will generate makefiles for all architectures. On other platforms generate for ia32 only as that is what is currently supported.

The output (out) directory is still shared.

R=jkummerow@chromium.org

BUG=none
TEST=none

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

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

13 years agoSimplify the check when to perform loop invariant code motion.
fschneider@chromium.org [Thu, 9 Jun 2011 15:49:21 +0000 (15:49 +0000)]
Simplify the check when to perform loop invariant code motion.

Allow HChange instructions to be hoisted out of loops. To avoid
unnecessary code motion we don't hoist instructions from blocks that
have been marked containing an unconditional deoptimization.
Review URL: http://codereview.chromium.org/7003087

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

13 years agoDispatch on ElementsKind rather than ExternalArrayType when generating ICs and Cranks...
danno@chromium.org [Thu, 9 Jun 2011 15:19:37 +0000 (15:19 +0000)]
Dispatch on ElementsKind rather than ExternalArrayType when generating ICs and Crankshaft code for many element operations. This is preparation to be able to share more code in the various element accessor implementations.

Merge logic to maintain external array and fast element stub caches.

BUG=none
TEST=none

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

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

13 years agofixed style mistake found in presubmit.py
yangguo@chromium.org [Thu, 9 Jun 2011 15:07:45 +0000 (15:07 +0000)]
fixed style mistake found in presubmit.py

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

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

13 years agoCorrect the limit of local variables in a optimized functions.
ager@chromium.org [Thu, 9 Jun 2011 14:52:58 +0000 (14:52 +0000)]
Correct the limit of local variables in a optimized functions.

The encoding constraint is that we have 128 values. We use [-64,0] for
parameters and [0,63] for locals. However, for locals we restricted to
64 and not 63.

R=kmillikin@chromium.org
TEST=mjsunit/compiler/regress-max-locals-for-osr.js

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

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

13 years agoadded --stress-opt option to d8
yangguo@chromium.org [Thu, 9 Jun 2011 14:28:49 +0000 (14:28 +0000)]
added --stress-opt option to d8

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

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

13 years agoMoved non-architecture-specific GetFooCodeStub functions to ic.cc, removing
svenpanne@chromium.org [Thu, 9 Jun 2011 13:26:18 +0000 (13:26 +0000)]
Moved non-architecture-specific GetFooCodeStub functions to ic.cc, removing
duplicate code and the need for 2 free-floating function prototypes.
Review URL: http://codereview.chromium.org/7134043

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

13 years agoGYP: Make the ARM simulator build with GYP again
sgjesse@chromium.org [Thu, 9 Jun 2011 12:48:11 +0000 (12:48 +0000)]
GYP: Make the ARM simulator build with GYP again

Updated the armu.gypi to set values for variables which does not have a default. These variables was recently added to v8.gyp.

Moved the what will be shared between building the v8 library and the cctests to a separate include file. For now this file is currently only used by cctest.gyp. the reason is that the cctests are not just using the API but also internal functions so the C++ defines and optons needs to be the same when compiling the cctests files as when compiling the v8 library files.

R=jkummerow@chromium.org
Review URL: http://codereview.chromium.org/7134039

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

13 years agoLink function contexts directly to the previous context.
kmillikin@chromium.org [Thu, 9 Jun 2011 12:45:26 +0000 (12:45 +0000)]
Link function contexts directly to the previous context.

Instead of NULL in the previous field of function contexts, put the previous
context.  This saves the indirection of fetching the previous through the
context's closure.

R=ager@chromium.org
BUG=
TEST=

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

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

13 years agoAdd boolean flag to HChange and LNumberUntagD to not convert undefined to NaN.
whesse@chromium.org [Thu, 9 Jun 2011 12:27:28 +0000 (12:27 +0000)]
Add boolean flag to HChange and LNumberUntagD to not convert undefined to NaN.

This is needed so that HCompare, optimized for double inputs, works correctly on undefined inputs.
BUG=v8:1434
TEST=mjsunit/bugs/bug-1434.js

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

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

13 years agoUpdate the blacklist in fuzz-natives.
kmillikin@chromium.org [Thu, 9 Jun 2011 11:40:22 +0000 (11:40 +0000)]
Update the blacklist in fuzz-natives.

Runtime functions were renamed in r8231.

R=ager@chromium.org
BUG=
TEST=

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

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

13 years agoA collection of context-related refactoring changes.
kmillikin@chromium.org [Thu, 9 Jun 2011 11:26:01 +0000 (11:26 +0000)]
A collection of context-related refactoring changes.

Introduce separate maps for function and with contexts.  Use the function
context map for testing whether a context is a function context (global
contexts are no longer function contexts).

Split the paths for allocating with and catch contexts.

Rename some functions.  Generally refactor code to make it simpler.

R=ager@chromium.org
BUG=
TEST=

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

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

13 years agoFix bug with GVN on array loads.
fschneider@chromium.org [Thu, 9 Jun 2011 11:15:03 +0000 (11:15 +0000)]
Fix bug with GVN on array loads.

This fixes a bug where an array load was incorrectly hoisted by GVN.

BUG=85177
TEST=mjsunit/regress/regress-85177.js
Review URL: http://codereview.chromium.org/7003054

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

13 years agoImplement core support for FixedDoubleArrays.
danno@chromium.org [Thu, 9 Jun 2011 10:03:35 +0000 (10:03 +0000)]
Implement core support for FixedDoubleArrays.

Under a flag without IC or Crankshaft support.

BUG=none
TEST=none

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

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

13 years agoAdd support for building Xcode project files from GYP files
sgjesse@chromium.org [Thu, 9 Jun 2011 09:07:17 +0000 (09:07 +0000)]
Add support for building Xcode project files from GYP files

Removed the current Xcode project file.

Fixed a few places where the C++ compiler supplied with Xcode produced warnings.
Review URL: http://codereview.chromium.org/7134016

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

13 years agoFix Array.prototype.{reduce,reduceRight} to pass undefined as receiver for strict...
ager@chromium.org [Thu, 9 Jun 2011 09:05:15 +0000 (09:05 +0000)]
Fix Array.prototype.{reduce,reduceRight} to pass undefined as receiver for strict mode callbacks.

Propagate strict mode information from pre-parser to parser for lazily compiled functions.

R=lrn@chromium.org
BUG=v8:1436
TEST=mjsunit/regress/regress-1436.js

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

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

13 years agoMIPS: port Stop using with explicitly to implement try/catch.
sgjesse@chromium.org [Thu, 9 Jun 2011 07:06:15 +0000 (07:06 +0000)]
MIPS: port Stop using with explicitly to implement try/catch.

Port r8224 (bdec5d6)

Original commit message:
The AST for TryCatch gives us enough structure that we do not need to expand
it to explicitly include a with. Try/catch is still handled the same as
before at runtime.

BUG=
TEST=

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

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

13 years agoFix lint error. TBR.
kmillikin@chromium.org [Wed, 8 Jun 2011 14:11:29 +0000 (14:11 +0000)]
Fix lint error.  TBR.

R=fschneider@chromium.org
BUG=
TEST=

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

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

13 years agoStop using with explicitly to implement try/catch.
kmillikin@chromium.org [Wed, 8 Jun 2011 13:55:33 +0000 (13:55 +0000)]
Stop using with explicitly to implement try/catch.

The AST for TryCatch gives us enough structure that we do not need to expand
it to explicitly include a with.  Try/catch is still handled the same as
before at runtime.

R=ager@chromium.org
BUG=
TEST=

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

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

13 years agoRemove unused function form hydrogen instructions.
fschneider@chromium.org [Wed, 8 Jun 2011 12:22:06 +0000 (12:22 +0000)]
Remove unused function form hydrogen instructions.
Review URL: http://codereview.chromium.org/7044045

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

13 years agoCleanup unused lithium instructions.
fschneider@chromium.org [Wed, 8 Jun 2011 10:51:51 +0000 (10:51 +0000)]
Cleanup unused lithium instructions.

Instructions that have side effects can never have EmitAtUses() true.
These instructions (CmpTAndBranch, InstanceOfAndBranch) are therefore
never generated and can therefor be safely removed.
Review URL: http://codereview.chromium.org/7031074

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

13 years agoAdd snapshot compression support into d8.
mikhail.naganov@gmail.com [Wed, 8 Jun 2011 09:00:25 +0000 (09:00 +0000)]
Add snapshot compression support into d8.

I'm not bothering with compressing d8.js, since it makes no sense,
but it is also possible.

R=sgjesse@chromium.org

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

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

13 years agoPrepare push to trunk. Now working on version 3.4.4.
jkummerow@chromium.org [Wed, 8 Jun 2011 08:58:59 +0000 (08:58 +0000)]
Prepare push to trunk. Now working on version 3.4.4.

R=sgjesse@chromium.org

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

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

13 years agoFix bug in Object.defineProperty where a growing lements dictionary was ignored.
lrn@chromium.org [Wed, 8 Jun 2011 08:13:31 +0000 (08:13 +0000)]
Fix bug in Object.defineProperty where a growing lements dictionary was ignored.

TEST=mjsunit/object-define-property

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

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

13 years agoSpecialize JSON parser to only check for SequentialAsciiString once.
sandholm@chromium.org [Wed, 8 Jun 2011 08:09:48 +0000 (08:09 +0000)]
Specialize JSON parser to only check for SequentialAsciiString once.
Review URL: http://codereview.chromium.org/7134010

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

13 years agoAdd failing test case for bug 1434
danno@chromium.org [Wed, 8 Jun 2011 07:45:37 +0000 (07:45 +0000)]
Add failing test case for bug 1434

BUG=1434
TEST=test/mjsunit/bugs/bug-1434.js

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

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

13 years agoRevert 8133: Lower heap size limits on systems that are short
erik.corry@gmail.com [Wed, 8 Jun 2011 07:28:31 +0000 (07:28 +0000)]
Revert 8133: Lower heap size limits on systems that are short
of virtual memory.
Review URL: http://codereview.chromium.org/7041004

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

13 years agoFix bug 1433: clear the global thread table when an isolate is disposed.
vitalyr@chromium.org [Tue, 7 Jun 2011 18:33:03 +0000 (18:33 +0000)]
Fix bug 1433: clear the global thread table when an isolate is disposed.

R=ager@chromium.org
BUG=v8:1433
TEST=test-lockers/Regress1433

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

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

13 years agoReduce TLS overhead in v8::TryCatch.
vitalyr@chromium.org [Tue, 7 Jun 2011 15:01:52 +0000 (15:01 +0000)]
Reduce TLS overhead in v8::TryCatch.

R=vegorov@chromium.org
BUG=v8:1426

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

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

13 years agoClean up a few TODO(isolates).
vitalyr@chromium.org [Tue, 7 Jun 2011 13:09:01 +0000 (13:09 +0000)]
Clean up a few TODO(isolates).

R=ager@chromium.org

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

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

13 years agoConvert time zone name to UTF8 on Windows.
ager@chromium.org [Tue, 7 Jun 2011 11:53:49 +0000 (11:53 +0000)]
Convert time zone name to UTF8 on Windows.

R=sgjesse@chromium.org
BUG=v8:1290

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

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

13 years agoLimit the number of arguments in a function call to 32766.
whesse@chromium.org [Tue, 7 Jun 2011 08:15:47 +0000 (08:15 +0000)]
Limit the number of arguments in a function call to 32766.

Limit the number of arguments in a function call to 32766.  This is identical
to the limit on the number of parameters to a function.

BUG=v8:1413
TEST=

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

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

13 years agoFix presubmit errors catched by a more recent version of cpplint.py.
mikhail.naganov@gmail.com [Tue, 7 Jun 2011 07:17:46 +0000 (07:17 +0000)]
Fix presubmit errors catched by a more recent version of cpplint.py.

Mainly, there were errors concerning blank lines before and after class access
control sections [whitespace/blank_line].

BEFORE an access control section (e.g. public:, private:) there should be a
blank line (except for the section right after the class declaration).

AFTER an access control section there should be no blank line.

TBR=ager@chromium.org

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

13 years agoFix typo: RetainedSizeCalculator::reained_size -> retained_size
mikhail.naganov@gmail.com [Tue, 7 Jun 2011 05:10:27 +0000 (05:10 +0000)]
Fix typo: RetainedSizeCalculator::reained_size -> retained_size

TBR=sgjesse@chromium.org

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

13 years agoFix presubmit after r8189
mikhail.naganov@gmail.com [Mon, 6 Jun 2011 20:58:25 +0000 (20:58 +0000)]
Fix presubmit after r8189

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

13 years agoCompress sources of JS libraries in addition to the snapshot.
mikhail.naganov@gmail.com [Mon, 6 Jun 2011 20:47:30 +0000 (20:47 +0000)]
Compress sources of JS libraries in addition to the snapshot.
This saves ~170K on current sources.

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

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

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

13 years agoUpdate comments in the global handles interface.
vitalyr@chromium.org [Mon, 6 Jun 2011 16:18:59 +0000 (16:18 +0000)]
Update comments in the global handles interface.

(I also reordered functions in the .cc file to match the order in the
.h file.)

R=antonm@chromium.org

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

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

13 years agoKill some dead code: classic frame element and const lists.
vitalyr@chromium.org [Mon, 6 Jun 2011 15:43:08 +0000 (15:43 +0000)]
Kill some dead code: classic frame element and const lists.

R=ager@chromium.org

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

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

13 years agoRefactor storage of global handles.
vitalyr@chromium.org [Mon, 6 Jun 2011 15:23:04 +0000 (15:23 +0000)]
Refactor storage of global handles.

We used to have a linked list of nodes that were internally
block-allocated.

I kept the node blocks and put them on two lists: 1) the list of all
allocated blocks, 2) the list of blocks with used nodes. (1) is used
to reclaim blocks and (2) is used for traversal during GC. To make
traversal on scavenges faster the nodes holding new space objects are
grouped in an auxiliary array.

This changes the minimal memory usage from 5 words per global handle
to 4. Additional word is used for new space handles.

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

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

13 years agoRe-land r8140: Deoptimize on never-executed code-paths.
fschneider@chromium.org [Mon, 6 Jun 2011 14:57:25 +0000 (14:57 +0000)]
Re-land r8140: Deoptimize on never-executed code-paths.

Original cl: http://codereview.chromium.org/7105015

I'm removing the test GlobalLoadICGC test that was introduced for testing
inlined global cell loads (in the classic backend) and has an invalid assumption
about the number of global objects referenced from a v8 context. We don't have
this feature with Crankshaft anymore.
Review URL: http://codereview.chromium.org/7112032

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

13 years agoDon't use SmartSlice just because the receiver is an array.
ager@chromium.org [Mon, 6 Jun 2011 13:28:44 +0000 (13:28 +0000)]
Don't use SmartSlice just because the receiver is an array.

Only do so if the estimated number of elements is low compared to the
end position for the slice. This is similar to other heuristics used
for array operations that use the %GetElementKeys runtime function.

R=erik.corry@gmail.com

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

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

13 years agoPer-Isolate cache for polymorphic stubs
jkummerow@chromium.org [Mon, 6 Jun 2011 13:15:11 +0000 (13:15 +0000)]
Per-Isolate cache for polymorphic stubs

BUG=1385
TEST=Existing tests still pass; running d8 with --dump-counters shows fewer polymorphic stubs being compiled

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

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

13 years agoFix a bug in Lithium environment iteration.
kmillikin@chromium.org [Mon, 6 Jun 2011 11:30:17 +0000 (11:30 +0000)]
Fix a bug in Lithium environment iteration.

The Advance() function of the class responsible for iterating
environment uses didn't always advance as far as it could (relying on
the HasNext predicate to finish advancing).  This is brittle.

The HasNext predicate also didn't advance as far as it could when it
was at the end of an environment level.  This is a bug.

R=jkummerow@chromium.org
BUG=
TEST=

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

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

13 years agoPrepare push to trunk. Now working on version 3.4.3.
erik.corry@gmail.com [Mon, 6 Jun 2011 09:13:06 +0000 (09:13 +0000)]
Prepare push to trunk. Now working on version 3.4.3.
Review URL: http://codereview.chromium.org/7058068

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

13 years agoMIPS: port Add complete ElementsKind information directly to Map for objects with...
ager@chromium.org [Mon, 6 Jun 2011 08:49:15 +0000 (08:49 +0000)]
MIPS: port Add complete ElementsKind information directly to Map for objects with elements.

Ported commits: r8162 (c56f802)

BUG=
TEST=

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

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

13 years agoMIPS: port Implement set trap for proxies, and revamp class hierarchy in preparation
ager@chromium.org [Mon, 6 Jun 2011 08:47:27 +0000 (08:47 +0000)]
MIPS: port Implement set trap for proxies, and revamp class hierarchy in preparation

Ported commits: r8126 (6461bae)

Original commit message:
- Introduce a class JSReceiver, that is a common superclass of JSObject and
JSProxy. Use JSReceiver where appropriate (probably lots of places that we
still have to migrate, but we will find those later with proxy test suite).
- Move appropriate methods to JSReceiver class (SetProperty,
GetPropertyAttribute, Get/SetPrototype, Lookup, and so on).
- Introduce new JSFunctionProxy subclass of JSProxy. Currently only a stub.
- Overhaul enum InstanceType:
* Introduce FIRST/LAST_SPEC_OBJECT_TYPE that ranges over all types that
represent JS objects, and use that consistently to check language types.
* Rename FIRST/LAST_JS_OBJECT_TYPE and FIRST/LAST_FUNCTION_CLASS_TYPE
to FIRST/LAST_[NON]CALLABLE_SPEC_OBJECT_TYPE for clarity.
* Eliminate the overlap over JS_REGEXP_TYPE.
* Also replace FIRST_JS_OBJECT with FIRST_JS_RECEIVER, but only use it where
we exclusively talk about the internal representation type.
* Insert JS_PROXY and JS_FUNCTION_PROXY in the appropriate places.
- Fix all checks concerning classification, especially for functions, to
use the CALLABLE_SPEC_OBJECT range (that includes funciton proxies).
- Handle proxies in SetProperty (that was the easiest part :) ).
- A few simple test cases.

BUG=
TEST=

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

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

13 years agoFix asserts in StartPreemption and StopPreemption.
erik.corry@gmail.com [Mon, 6 Jun 2011 08:45:42 +0000 (08:45 +0000)]
Fix asserts in StartPreemption and StopPreemption.
Review URL: http://codereview.chromium.org/7054070

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

13 years agoMIPS: Fixed FPU rounding checks and related errors in the Simulator.
ager@chromium.org [Mon, 6 Jun 2011 08:43:15 +0000 (08:43 +0000)]
MIPS: Fixed FPU rounding checks and related errors in the Simulator.

Removed some unnecessary shifts when reading FCSR error flags.
Fixed some FCSR-related bugs.
Fixed some un-related style issues.

With this commit, mips build is still broken. Two more commits to come.

BUG=
TEST=

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

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

13 years agoARM: Add optimization for constant RHS in DoMulI.
karlklose@chromium.org [Mon, 6 Jun 2011 07:47:21 +0000 (07:47 +0000)]
ARM: Add optimization for constant RHS in DoMulI.

Patch by ARM Ltd.

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

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

13 years agoDefine stubs for implementations of v8-profiler.h API when profiling is disabled
mikhail.naganov@gmail.com [Fri, 3 Jun 2011 19:45:59 +0000 (19:45 +0000)]
Define stubs for implementations of v8-profiler.h API when profiling is disabled

TBR=sgjesse@chromium.org
BUG=https://bugs.webkit.org/show_bug.cgi?id=62014

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

13 years agoFix traversal of the map transition tree to take the prototype
erik.corry@gmail.com [Fri, 3 Jun 2011 14:48:09 +0000 (14:48 +0000)]
Fix traversal of the map transition tree to take the prototype
transitions into account.
Review URL: http://codereview.chromium.org/7074052

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

13 years agoReapply: "Make instanceof and Object.getPrototypeOf work for proxies,
ager@chromium.org [Fri, 3 Jun 2011 10:15:49 +0000 (10:15 +0000)]
Reapply: "Make instanceof and Object.getPrototypeOf work for proxies,
plus a few other tweaks."

The problem with the original patch was that it did not take hidden
prototype objects into account in Runtime_GetPrototype.

R=kmillikin@chromium.org,rossberg@chromium.org
TEST=es5conform

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

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

13 years agoReport out of memory if we cannot allocate memory for the deoptimization table.
ager@chromium.org [Fri, 3 Jun 2011 10:11:10 +0000 (10:11 +0000)]
Report out of memory if we cannot allocate memory for the deoptimization table.

Currently we pass a null pointer to memcpy. We will crash either way,
but going through FatalProcessOutOfMemory makes it clear what is going
on.

R=kmillikin@chromium.org
BUG=http://crbug.com/84717

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

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

13 years agoAdd complete ElementsKind information directly to Map for objects with elements.
danno@chromium.org [Fri, 3 Jun 2011 07:41:37 +0000 (07:41 +0000)]
Add complete ElementsKind information directly to Map for objects with elements.

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

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

13 years agoPatch by Luke Zarko.
dslomov@chromium.org [Thu, 2 Jun 2011 17:50:02 +0000 (17:50 +0000)]
Patch by Luke Zarko.

Fix building with gdbjit=on

Issue 7101011: http://codereview.chromium.org/7101011

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

13 years agoAdd curly braces to if / else clauses after r8152
mikhail.naganov@gmail.com [Thu, 2 Jun 2011 11:22:26 +0000 (11:22 +0000)]
Add curly braces to if / else clauses after r8152

TBR=ager@chromium.org

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

13 years agoRevert "Make instanceof and Object.getPrototypeOf work for proxies, plus a few other...
ager@chromium.org [Thu, 2 Jun 2011 10:12:00 +0000 (10:12 +0000)]
Revert "Make instanceof and Object.getPrototypeOf work for proxies, plus a few other tweaks."

This change caused errors in es5conform tests for getPrototypeOf.

TBR=rossberg@chromium.org
BUG=
TEST=

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

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

13 years agoRevert "Fix Issue 1320: LiveEdit: text differencer fails with out of memory on large...
mikhail.naganov@gmail.com [Wed, 1 Jun 2011 23:11:10 +0000 (23:11 +0000)]
Revert "Fix Issue 1320: LiveEdit: text differencer fails with out of memory on large files"

Breaks compilation on Linux.

This reverts commit e72c5b1d69fb2cb2d5973f172666dd5d477e6f7e.

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

13 years agoFix presubmit errors after r8152
mikhail.naganov@gmail.com [Wed, 1 Jun 2011 23:09:18 +0000 (23:09 +0000)]
Fix presubmit errors after r8152

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

13 years ago[Linux] Do not install SIGPROF handler until we
mikhail.naganov@gmail.com [Wed, 1 Jun 2011 22:12:05 +0000 (22:12 +0000)]
[Linux] Do not install SIGPROF handler until we
start CPU profiling.

TBR=vitalyr@chromium.org
BUG=1344,crbug/79320,crbug/83521
TEST=none

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

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

13 years agoRe-landing http://codereview.chromium.org/7014019.
cira@chromium.org [Wed, 1 Jun 2011 21:10:56 +0000 (21:10 +0000)]
Re-landing http://codereview.chromium.org/7014019.

Adding DateTimeFormat class to i18n API with following methods:

- format
- getWeekdays
- getMonths
- get Eras
- getAmPm

Difference from the reverted revision:

Removed all references to v8/src, like ASSERT_EQ.

All #includes have full path to include/v8.h or extension headers.

TEST=Visit i18n.kaziprst.org/datetimeformat.html
Review URL: http://codereview.chromium.org/7105002

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

13 years agoMake instanceof and Object.getPrototypeOf work for proxies, plus a few other tweaks.
rossberg@chromium.org [Wed, 1 Jun 2011 17:44:08 +0000 (17:44 +0000)]
Make instanceof and Object.getPrototypeOf work for proxies, plus a few other tweaks.

R=kmillikin@chromium.org

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

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

13 years agoFix Issue 1320: LiveEdit: text differencer fails with out of memory on large files
peter.rybin@gmail.com [Wed, 1 Jun 2011 17:05:35 +0000 (17:05 +0000)]
Fix Issue 1320: LiveEdit: text differencer fails with out of memory on large files

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

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

13 years agoUntank compilation and fix JSON parse bug introduced in r8147.
sandholm@chromium.org [Wed, 1 Jun 2011 14:55:55 +0000 (14:55 +0000)]
Untank compilation and fix JSON parse bug introduced in r8147.
Review URL: http://codereview.chromium.org/7020028

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

13 years agoRemove scanner abstraction layer from JSON parsing.
sandholm@chromium.org [Wed, 1 Jun 2011 14:06:30 +0000 (14:06 +0000)]
Remove scanner abstraction layer from JSON parsing.
Review URL: http://codereview.chromium.org/7020018

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

13 years agoRevert r8140.
fschneider@chromium.org [Wed, 1 Jun 2011 13:34:15 +0000 (13:34 +0000)]
Revert r8140.

It breaks test when running with nosnapshot.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/7027029

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

13 years agoDelay processing of declarations for inlining candidates.
kmillikin@chromium.org [Wed, 1 Jun 2011 13:26:30 +0000 (13:26 +0000)]
Delay processing of declarations for inlining candidates.

Processing the declarations in an inlining candidate must be performed
after constructing the Hydrogen environment of the candidate function.

R=fschneider@chromium.org
BUG=
TEST=

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

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

13 years agoRemoving white spaces introduced in r8142.
sandholm@chromium.org [Wed, 1 Jun 2011 12:24:55 +0000 (12:24 +0000)]
Removing white spaces introduced in r8142.
Review URL: http://codereview.chromium.org/7025005

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

13 years agoEnsure strings are never externalized as a side-effect of doing a GC.
sandholm@chromium.org [Wed, 1 Jun 2011 11:46:14 +0000 (11:46 +0000)]
Ensure strings are never externalized as a side-effect of doing a GC.
Review URL: http://codereview.chromium.org/7105016

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

13 years agoFix compilation on OpenBSD. Patch from Robert Nagy in
erik.corry@gmail.com [Wed, 1 Jun 2011 11:09:32 +0000 (11:09 +0000)]
Fix compilation on OpenBSD.  Patch from Robert Nagy in
http://code.google.com/p/v8/issues/detail?id=1420
Review URL: http://codereview.chromium.org/7104024

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

13 years agoEagerly deoptimize on never-executed code-paths.
fschneider@chromium.org [Wed, 1 Jun 2011 11:04:40 +0000 (11:04 +0000)]
Eagerly deoptimize on never-executed code-paths.

If type-feedback indicates that an expression was never executed in
the non-optimized code, we insert a forced deoptimization right away
to enable re-optimization if we ever hit this path.

With this change we still continue to build the graph. As a next step, we
should remove the dead code after the deoptimize.

I had to remove one assert about the optimization status in a test since
we now immediately deoptimize after exiting the loop that triggers OSR.

Also remove a restriction that control-flow from an inlined function in a
test context always reaches both true- and false-target.
Review URL: http://codereview.chromium.org/7105015

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

13 years agoDisable context-allocated const variables.
kmillikin@chromium.org [Wed, 1 Jun 2011 09:12:22 +0000 (09:12 +0000)]
Disable context-allocated const variables.

We intended them to be fully disabled for now, but there was a missing
check at initialization time.

R=fschneider@chromium.org
BUG=
TEST=

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

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

13 years agoMIPS: port Fix receiver for calls to strict-mode and builtin functions ....
sgjesse@chromium.org [Wed, 1 Jun 2011 09:06:46 +0000 (09:06 +0000)]
MIPS: port Fix receiver for calls to strict-mode and builtin functions ....

Fix receiver for calls to strict-mode and builtin functions that
are potentially shadowed by eval.

Port r8116 (e8a1e4842) to mips.

BUG=
TEST=

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

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

13 years agoMIPS:port Reapply change to Pass undefined to JS builtins when called with implicit...
sgjesse@chromium.org [Wed, 1 Jun 2011 09:05:44 +0000 (09:05 +0000)]
MIPS:port Reapply change to Pass undefined to JS builtins when called with implicit receiver.

Port r8110 (0a6ff3a) to mips.

Some mips work was in original commit. Fixed bug due to Generate_ArgumentsAdaptorTrampoline
using the dedicated CallKind reg (t1) as a temporary.

BUG=
TEST=

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

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

13 years agoMIPS: port Fix a number of IC stubs to correctly set the call kind.
sgjesse@chromium.org [Wed, 1 Jun 2011 09:01:57 +0000 (09:01 +0000)]
MIPS: port Fix a number of IC stubs to correctly set the call kind.

Ported r8109 (7ab86acc) to mips.

Original commit message:
Make the call kind and call wrapper arguments explicit to force
developers to make a choice. This would have avoided the bug in the
first case.

BUG=
TEST=

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

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

13 years agoMIPS: port Prevent deopt on double value assignment to typed arrays
sgjesse@chromium.org [Wed, 1 Jun 2011 08:58:19 +0000 (08:58 +0000)]
MIPS: port Prevent deopt on double value assignment to typed arrays

Ported r8077 (defc4f9b) to mips.

BUG=
TEST=

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

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

13 years agoARM: Be consistent about the condition codes used with CompareObjectType
sgjesse@chromium.org [Wed, 1 Jun 2011 08:54:30 +0000 (08:54 +0000)]
ARM: Be consistent about the condition codes used with CompareObjectType

Now the signed comparison condition codes are always used with CompareObjectType. The type is only a byte and ldrb will do sign extension, so signed and unsigned comparison will give the same result. Signed condition codes are easier to read.

R=erik.corry@gmail.com

BUG=none
TEST=none

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

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

13 years agoLower heap size limits on systems that are short of virtual memory.
erik.corry@gmail.com [Wed, 1 Jun 2011 08:49:18 +0000 (08:49 +0000)]
Lower heap size limits on systems that are short of virtual memory.
Review URL: http://codereview.chromium.org/7020020

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

13 years agoOoops, forgot to commit the renamings in Hydrogen for issue 6976028....
svenpanne@chromium.org [Wed, 1 Jun 2011 07:11:25 +0000 (07:11 +0000)]
Ooops, forgot to commit the renamings in Hydrogen for issue 6976028....

TBR=danno@chromium.org
Review URL: http://codereview.chromium.org/7105014

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

13 years agoPrepare push to trunk. Now working on version 3.4.2.
ricow@chromium.org [Wed, 1 Jun 2011 05:48:51 +0000 (05:48 +0000)]
Prepare push to trunk. Now working on version 3.4.2.
Review URL: http://codereview.chromium.org/7090002

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

13 years agoLiveEdit: Optimize compare by stripping common suffix and prefix.
peter.rybin@gmail.com [Tue, 31 May 2011 20:58:21 +0000 (20:58 +0000)]
LiveEdit: Optimize compare by stripping common suffix and prefix.

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

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

13 years agoRemoved all references to v8/src from i18n extension code.
cira@chromium.org [Tue, 31 May 2011 17:21:28 +0000 (17:21 +0000)]
Removed all references to v8/src from i18n extension code.

Removed I18N enum from v8/src/natives.h

Removed use of Vector and natives.h from i18n-extension.cc. Added new
python script that generates i18n-js.cc from i18n.js.

Made all paths absolute pointing to either v8/include or
v8/src/extensions/experimental.

Exported -Iv8 for embedders (-Iv8/include was there already).
Review URL: http://codereview.chromium.org/7077012

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

13 years agoImplement set trap for proxies, and revamp class hierarchy in preparation:
rossberg@chromium.org [Tue, 31 May 2011 16:38:40 +0000 (16:38 +0000)]
Implement set trap for proxies, and revamp class hierarchy in preparation:

- Introduce a class JSReceiver, that is a common superclass of JSObject and
  JSProxy. Use JSReceiver where appropriate (probably lots of places that we
  still have to migrate, but we will find those later with proxy test suite).

- Move appropriate methods to JSReceiver class (SetProperty,
  GetPropertyAttribute, Get/SetPrototype, Lookup, and so on).

- Introduce new JSFunctionProxy subclass of JSProxy. Currently only a stub.

- Overhaul enum InstanceType:
  * Introduce FIRST/LAST_SPEC_OBJECT_TYPE that ranges over all types that
    represent JS objects, and use that consistently to check language types.
  * Rename FIRST/LAST_JS_OBJECT_TYPE and FIRST/LAST_FUNCTION_CLASS_TYPE
    to FIRST/LAST_[NON]CALLABLE_SPEC_OBJECT_TYPE for clarity.
  * Eliminate the overlap over JS_REGEXP_TYPE.
  * Also replace FIRST_JS_OBJECT with FIRST_JS_RECEIVER, but only use it where
    we exclusively talk about the internal representation type.
  * Insert JS_PROXY and JS_FUNCTION_PROXY in the appropriate places.

- Fix all checks concerning classification, especially for functions, to
  use the CALLABLE_SPEC_OBJECT range (that includes funciton proxies).

- Handle proxies in SetProperty (that was the easiest part :) ).

- A few simple test cases.

R=kmillikin@chromium.org

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

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

13 years agoRevert 8122 (stub call asserts) while test failures are investigated.
erik.corry@gmail.com [Tue, 31 May 2011 15:21:25 +0000 (15:21 +0000)]
Revert 8122 (stub call asserts) while test failures are investigated.
Review URL: http://codereview.chromium.org/7050039

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

13 years agoReduced the code ping-pong between the full code generator and contexts a bit.
svenpanne@chromium.org [Tue, 31 May 2011 14:37:34 +0000 (14:37 +0000)]
Reduced the code ping-pong between the full code generator and contexts a bit.

* Centralized AND/OR handling, keeping related code together.

* Removed HandleExpression/HandleInNonTestContext and introduced VisitInSameContext instead, making it more obvious what's actually going on.

* Consistently use a new context when visiting the left sub-expression of an AND/OR. Note that the context stacks in the full code generator and crankshaft are still a bit out of sync for the right sub-expression.
Review URL: http://codereview.chromium.org/6976028

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

13 years agoFix two bugs in LiveRange::SplitAt:
vegorov@chromium.org [Tue, 31 May 2011 13:35:52 +0000 (13:35 +0000)]
Fix two bugs in LiveRange::SplitAt:

- when splitting at the beginning of the UseInterval we need to find an interval preceding it.

- we need to reset cached iteration state after splitting.

BUG=v8:1410

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

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

13 years agoAdd asserts and state tracking to ensure that we do not call
erik.corry@gmail.com [Tue, 31 May 2011 12:38:45 +0000 (12:38 +0000)]
Add asserts and state tracking to ensure that we do not call
into C++ without having a valid stack frame that can be
traversed at GC.
Also add asserts to track that we do not try to generate a stub
while we are generating a stub, since the stub creation code is
not GC safe.
Review URL: http://codereview.chromium.org/7084032

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

13 years agoSupport optimization of named function literals.
kmillikin@chromium.org [Tue, 31 May 2011 11:54:46 +0000 (11:54 +0000)]
Support optimization of named function literals.

Introduce a Hydrogen value for the value denoted by the function name.

R=fschneider@chromium.org,mnaganov@chromium.org
BUG=
TEST=

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

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

13 years agoUpdate apply with arguments optimization for strict mode functions and builtins.
ager@chromium.org [Tue, 31 May 2011 10:38:41 +0000 (10:38 +0000)]
Update apply with arguments optimization for strict mode functions and builtins.

Do not convert to object for values for strict-mode functions and
builtins.

R=ricow@chromium.org
BUG=v8:1412
TEST=mjsunit/regress/regress-1412.js

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

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

13 years agoAdd support for external arrays to d8
jkummerow@chromium.org [Tue, 31 May 2011 09:42:17 +0000 (09:42 +0000)]
Add support for external arrays to d8

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

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

13 years agoPush the general AST id field down from ASTNode to Expression.
svenpanne@chromium.org [Tue, 31 May 2011 09:34:37 +0000 (09:34 +0000)]
Push the general AST id field down from ASTNode to Expression.

Almost all uses were below Expression already, only a single use in IfStatement
had to be handled explicitly (probably an oversight from earlier changes?). This
is a small step towards a less ad-hoc handling of IDs in the front end.
Review URL: http://codereview.chromium.org/7054034

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

13 years agoFix a number of tests that incorrectly used assertUnreachable.
ager@chromium.org [Tue, 31 May 2011 08:08:42 +0000 (08:08 +0000)]
Fix a number of tests that incorrectly used assertUnreachable.

Our testing infrastructure uses exceptions to indicate
errors. assertUnreachable therefore throws an exception to indicate
that it was reached. Therefore, it cannot be used to check that an
exception was thrown using the pattern:

try {
  shouldThrow();
  assertUnreachable();
} catch(e) {
}

Such a test will always pass because assertUnreachable will throw an
exception if shouldThrow does not.

R=ricow@chromium.org

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

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

13 years agoFix receiver for calls to strict-mode and builtin functions that are
ager@chromium.org [Tue, 31 May 2011 07:57:22 +0000 (07:57 +0000)]
Fix receiver for calls to strict-mode and builtin functions that are
potentially shadowed by eval.

R=sgjesse@chromium.org
TEST=mjsunit/regress/regress-124.js

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

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

13 years agoFix building with profilingsupport=off
sgjesse@chromium.org [Mon, 30 May 2011 14:33:23 +0000 (14:33 +0000)]
Fix building with profilingsupport=off

Using profilingsupport=off is not recommended as it will turn off crankshaft. With this change it will build though.

R=erik.corry@gmail.com

BUG=none
TEST=none

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

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

13 years agoHeap profiler: fetch document.URL of global objects.
mikhail.naganov@gmail.com [Mon, 30 May 2011 14:31:47 +0000 (14:31 +0000)]
Heap profiler: fetch document.URL of global objects.

This allows to distinguish DOMWindow objects in browser from each other.

R=vitalyr@chromium.org,sgjesse@chromium.org
BUG=https://bugs.webkit.org/show_bug.cgi?id=61177
TEST=cctest/test-heap-profiler/DocumentURL

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

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