platform/upstream/v8.git
12 years agoMIPS: Initial gyp infrastructure for MIPS architecture.
jkummerow@chromium.org [Wed, 9 Nov 2011 15:31:54 +0000 (15:31 +0000)]
MIPS: Initial gyp infrastructure for MIPS architecture.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8505007
Patch from Gergely Kis <gergely@homejinni.com>.

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

12 years agoFixing presubmit.
yangguo@chromium.org [Wed, 9 Nov 2011 15:06:10 +0000 (15:06 +0000)]
Fixing presubmit.

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

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

12 years agoRemoving outdated assertions.
yangguo@chromium.org [Wed, 9 Nov 2011 14:47:12 +0000 (14:47 +0000)]
Removing outdated assertions.

R=mstarzinger@chromium.org

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

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

12 years agoRepeat last debugger command in the arm simulator when command input is empty.
yangguo@chromium.org [Wed, 9 Nov 2011 14:37:04 +0000 (14:37 +0000)]
Repeat last debugger command in the arm simulator when command input is empty.

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

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

12 years agoSimplify StringCharCodeAt in non-crankshaft codegen.
yangguo@chromium.org [Wed, 9 Nov 2011 14:32:51 +0000 (14:32 +0000)]
Simplify StringCharCodeAt in non-crankshaft codegen.

TEST=test/mjsunit/string-slices.js

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

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

12 years agoAdd getters for column number and script id to v8::Function
yurys@chromium.org [Wed, 9 Nov 2011 14:18:30 +0000 (14:18 +0000)]
Add getters for column number and script id to v8::Function
Review URL: http://codereview.chromium.org/8508008

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

12 years agoFix presubmit error introduced by r9932.
vegorov@chromium.org [Wed, 9 Nov 2011 14:04:56 +0000 (14:04 +0000)]
Fix presubmit error introduced by r9932.

R=erik.corry@gmail.com
BUG=
TEST=

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

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

12 years agoA small collection of cleanup in the parser and AST.
kmillikin@chromium.org [Wed, 9 Nov 2011 13:54:26 +0000 (13:54 +0000)]
A small collection of cleanup in the parser and AST.

* Remove a couple of unused fields from the FunctionLiteral, ensure that all
  the bools are packed.
* Rename SaveScope and LexicalScope in the parser.
* Use an enum to generate the numbers 0..N and the dependent count, rather
  than static const ints.  This is simpler to extend (coming in a future
  change).

R=danno@chromium.org,keuchel@chromium.org
BUG=
TEST=

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

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

12 years agoEnsure that promotion queue does not overlap with objects relocated to ToSpace.
vegorov@chromium.org [Wed, 9 Nov 2011 13:48:43 +0000 (13:48 +0000)]
Ensure that promotion queue does not overlap with objects relocated to ToSpace.

R=erik.corry@gmail.com

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

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

12 years agoTemporarily skip one Mozilla regression test.
mstarzinger@chromium.org [Wed, 9 Nov 2011 13:11:11 +0000 (13:11 +0000)]
Temporarily skip one Mozilla regression test.

R=erik.corry@gmail.com
BUG=v8:1817
TEST=mozilla/js1_5/Regress/regress-360969-05

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

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

12 years agoMade PropertyType handling even more explicit.
svenpanne@chromium.org [Wed, 9 Nov 2011 12:47:15 +0000 (12:47 +0000)]
Made PropertyType handling even more explicit.

Replaced FIRST_PHANTOM_PROPERTY_TYPE by a predicate. Removed the (hopefully)
last default cases for switches on PropertyType. Benchmarks show that both
changes are performace-neutral.

Now every value of PropertyType should either be handled by an explicit case in
a switch or by an equality operator. Therefore, the C++ compiler should finally
be able to tell us which places to touch when changing PropertyType.

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

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

12 years agoMIPS: Make _CallFunction proxy-aware.
yangguo@chromium.org [Wed, 9 Nov 2011 12:19:26 +0000 (12:19 +0000)]
MIPS: Make _CallFunction proxy-aware.

Port r9916 (d2195670)

Original commit message:
Change calling convention for CallFunction stub. Some fixes regarding strict mode call traps.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8509004
Patch from Gergely Kis <gergely@homejinni.com>.

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

12 years agoA page created a number of ConsStrings that refer to one big string.
mikhail.naganov@gmail.com [Wed, 9 Nov 2011 12:15:35 +0000 (12:15 +0000)]
A page created a number of ConsStrings that refer to one big string.
Each such string requires small amount of heap memory.
Heap snapshot generator copies all the strings into internal hash map for future use.
The each copy requires much more memory than original v8 string.

I made a workaround for this. The snapshot will copy only first 1024 symbols.
A simple drive-by fix was made for a performance problem in ToCString implementation.

BUG=v8:1816
TEST=none

Review URL: http://codereview.chromium.org/8509003
Patch from Ilya Tikhonovsky <loislo@chromium.org>.

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

12 years agosync the OpenBSD code with Linux. Committing http://codereview.chromium.org/8499016...
erik.corry@gmail.com [Wed, 9 Nov 2011 12:01:45 +0000 (12:01 +0000)]
sync the OpenBSD code with Linux.  Committing codereview.chromium.org/8499016/ for Robert Nagy

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

12 years agoMIPS: Enable the V8 profiler on MIPS.
yangguo@chromium.org [Wed, 9 Nov 2011 11:57:05 +0000 (11:57 +0000)]
MIPS: Enable the V8 profiler on MIPS.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8507008
Patch from Gergely Kis <gergely@homejinni.com>.

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

12 years agoUpdate v8.gyp to reflect deleted file.
kmillikin@chromium.org [Wed, 9 Nov 2011 11:35:06 +0000 (11:35 +0000)]
Update v8.gyp to reflect deleted file.

TBR=svenpanne@chromium.org

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

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

12 years agoRemove ast-inl.h. This file is not necessary.
kmillikin@chromium.org [Wed, 9 Nov 2011 11:32:54 +0000 (11:32 +0000)]
Remove ast-inl.h.  This file is not necessary.

R=svenpanne@chromium.org
BUG=
TEST=

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

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

12 years agoMIPS: Tighten the code for MacroAssembler::ThrowUncatchable.
kmillikin@chromium.org [Wed, 9 Nov 2011 11:04:41 +0000 (11:04 +0000)]
MIPS: Tighten the code for MacroAssembler::ThrowUncatchable.

Port r9909 (56c8728aa).

Original commit message:
Test at the bottom in the unwind loop.  Eliminate the possibility of a
useless move to the eax/rax/r0 register (currently impossible because
this function has two call sites).  Do not explicitly zero the context
because we've already saved 0 as the context in the handler.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8507007
Patch from Gergely Kis <gergely@homejinni.com>.

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

12 years agoFix size of store buffer to depend on pointer size.
mstarzinger@chromium.org [Wed, 9 Nov 2011 09:51:54 +0000 (09:51 +0000)]
Fix size of store buffer to depend on pointer size.

This makes the store buffer size depend on the pointer size so that
store buffers can hold the same number of entries on all architectures.
The number of pages marked scan-on-scavenge should decrease on x64 and
performance of splay should drastically improve on x64.

R=erik.corry@gmail.com

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

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

12 years agoFixing issue 103259.
yangguo@chromium.org [Tue, 8 Nov 2011 14:59:40 +0000 (14:59 +0000)]
Fixing issue 103259.

BUG=103259
TEST=regress-103259.js

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

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

12 years agoMake _CallFunction proxy-aware.
rossberg@chromium.org [Tue, 8 Nov 2011 14:39:37 +0000 (14:39 +0000)]
Make _CallFunction proxy-aware.
Change calling convention for CallFunction stub.
Some fixes regarding strict mode call traps.

R=kmillikin@chromium.org
BUG=
TEST=

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

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

12 years agoReapply r9870 "Remove some initialization checks based on source positions.".
keuchel@chromium.org [Tue, 8 Nov 2011 13:28:53 +0000 (13:28 +0000)]
Reapply r9870 "Remove some initialization checks based on source positions.".

This reverts r9896 "Revert r9870 due to browser-test failures." See below for
the diff from the previous version for the ia32 platform. The code for other
platforms has been changed accordingly.

TEST=mjsunit/compiler/lazy-const-lookup.js

diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc
index 2cbf518..1990f2f 100644
--- a/src/ia32/full-codegen-ia32.cc
+++ b/src/ia32/full-codegen-ia32.cc
@@ -1258,13 +1258,17 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) {
         // binding is initialized:
         //   function() { f(); let x = 1; function f() { x = 2; } }
         //
-        // Check that we always have valid source position.
-        ASSERT(var->initializer_position() != RelocInfo::kNoPosition);
-        ASSERT(proxy->position() != RelocInfo::kNoPosition);
-        bool skip_init_check =
-            var->mode() != CONST &&
-            var->scope()->DeclarationScope() == scope()->DeclarationScope() &&
-            var->initializer_position() < proxy->position();
+        bool skip_init_check;
+        if (var->scope()->DeclarationScope() != scope()->DeclarationScope()) {
+          skip_init_check = false;
+        } else {
+          // Check that we always have valid source position.
+          ASSERT(var->initializer_position() != RelocInfo::kNoPosition);
+          ASSERT(proxy->position() != RelocInfo::kNoPosition);
+          skip_init_check = var->mode() != CONST &&
+              var->initializer_position() < proxy->position();
+        }
+
         if (!skip_init_check) {
           // Let and const need a read barrier.
           Label done;

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

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

12 years agoFix removed return parameter count.
danno@chromium.org [Tue, 8 Nov 2011 13:16:56 +0000 (13:16 +0000)]
Fix removed return parameter count.

BUG=none
TEST=none

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

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

12 years agoAttempt to fix Windows x64 build.
danno@chromium.org [Tue, 8 Nov 2011 13:07:14 +0000 (13:07 +0000)]
Attempt to fix Windows x64 build.

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

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

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

12 years agoShrink the new space and uncommit marking deque on low memory notification.
ulan@chromium.org [Tue, 8 Nov 2011 12:42:02 +0000 (12:42 +0000)]
Shrink the new space and uncommit marking deque on low memory notification.

BUG=v8:1669
TEST=cctest/test-heap/CollectingAllAvailableGarbageShrinksNewSpace

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

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

12 years agoFix setting array length to be ES5 conform.
mstarzinger@chromium.org [Tue, 8 Nov 2011 11:59:56 +0000 (11:59 +0000)]
Fix setting array length to be ES5 conform.

This also refactors the way we set the length of an arrays' backing
store to use the new elements accessor interface. The actual fix is in
DictionaryElementsAccessor::SetLengthWithoutNormalize() where we first
search for non-deletable elements according to ES5 section 15.4.5.2
specifications.

Snippet from the specification: Attempting to set the length property of
an Array object to a value that is numerically less than or equal to the
largest numeric property name of an existing array indexed non-deletable
property of the array will result in the length being set to a numeric
value that is one greater than that largest numeric property name.

R=danno@chromium.org
TEST=test262/15.4.4.??-7-b-16

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

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

12 years agoAnother 64->32 bit warning from the Windows compiler.
erik.corry@gmail.com [Tue, 8 Nov 2011 11:24:44 +0000 (11:24 +0000)]
Another 64->32 bit warning from the Windows compiler.
Review URL: http://codereview.chromium.org/8503010

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

12 years agoTighten the code for MacroAssembler::ThrowUncatchable.
kmillikin@chromium.org [Tue, 8 Nov 2011 11:09:00 +0000 (11:09 +0000)]
Tighten the code for MacroAssembler::ThrowUncatchable.

Test at the bottom in the unwind loop.  Eliminate the possibility of a
useless move to the eax/rax/r0 register (currently impossible because
this function has two call sites).  Do not explicitly zero the context
because we've already saved 0 as the context in the handler.

R=fschneider@chromium.org
BUG=
TEST=

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

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

12 years agoTry to fix compile error on Windows.
erik.corry@gmail.com [Tue, 8 Nov 2011 10:57:34 +0000 (10:57 +0000)]
Try to fix compile error on Windows.
Review URL: http://codereview.chromium.org/8497010

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

12 years agoDisentangle header dependecies a bit by moving PropertyDetails-related types into...
svenpanne@chromium.org [Tue, 8 Nov 2011 10:43:25 +0000 (10:43 +0000)]
Disentangle header dependecies a bit by moving PropertyDetails-related types into a separate header

This moves PropertyType and its related predicate out of v8globals.h, where it didn't belong.

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

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

12 years agoClean up the marking speed heuristics. This reduces the
erik.corry@gmail.com [Tue, 8 Nov 2011 10:28:58 +0000 (10:28 +0000)]
Clean up the marking speed heuristics.  This reduces the
max heap size on 64 bit from ca. 300Mbytes to ca. 200Mbytes
on Ulan's splay variant.  On 32 bit not much change.
Review URL: http://codereview.chromium.org/8494012

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

12 years agoImprove dominator computation to avoid worst-case quadratic time.
fschneider@chromium.org [Tue, 8 Nov 2011 10:18:25 +0000 (10:18 +0000)]
Improve dominator computation to avoid worst-case quadratic time.

In case of a degenerated CFG like in the example below processing
predecessors in the wrong order yields n^2 runtime.

  do {
    if (x) break;
    if (x) break;
    if (x) break;
    if (x) break;
    if (x) break;
    if (x) break;
    if (x) break;
    if (x) break;
    if (x) break;
    if (x) break;
    if (x) break;
    // etc.
  } while (false);

Reversing iteration order avoids this.
Review URL: http://codereview.chromium.org/8502012

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

12 years agoUpstream Android V8 change.
danno@chromium.org [Tue, 8 Nov 2011 10:14:03 +0000 (10:14 +0000)]
Upstream Android V8 change.

Review URL: http://codereview.chromium.org/8351073
Patch from Jing Zhao <jingzhao@chromium.org>.

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

12 years agoCreate stub and runtime function for x64 full-codegen array literal element initializ...
danno@chromium.org [Tue, 8 Nov 2011 10:10:24 +0000 (10:10 +0000)]
Create stub and runtime function for x64 full-codegen array literal element initialization.

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

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

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

12 years agoRevert r9901 to make tree green again.
fschneider@chromium.org [Tue, 8 Nov 2011 09:56:09 +0000 (09:56 +0000)]
Revert r9901 to make tree green again.

There was a test failure on x64 mozilla tests.

TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/8495011

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

12 years ago[hydrogen] optimize switch with string clauses
fschneider@chromium.org [Tue, 8 Nov 2011 09:08:33 +0000 (09:08 +0000)]
[hydrogen] optimize switch with string clauses

Hydrogen should optimize not only SMI clauses, but clauses with string literals
too.

Patch from fedor.indutny <fedor.indutny@gmail.com>.

R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8373029

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

12 years agoRefactoring only: Make the handling of PropertyType more explicit.
svenpanne@chromium.org [Tue, 8 Nov 2011 08:42:13 +0000 (08:42 +0000)]
Refactoring only: Make the handling of PropertyType more explicit.

Do not rely on 'default' clauses or 'if's when analysing a PropertyType, because
this makes it hard to find the relevant places when a new type is added. Note
that the detection of "phantom property types" is left untouched, because this
might have a performance impact, especially for the GC (to be investigated).

This is a preliminary step for introducing a new kind of map transition.

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

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

12 years agoRevert accidental commit that messed up the incremental speed heuristics.
erik.corry@gmail.com [Mon, 7 Nov 2011 14:00:02 +0000 (14:00 +0000)]
Revert accidental commit that messed up the incremental speed heuristics.
Review URL: http://codereview.chromium.org/8467014

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

12 years agoRevert r9870 due to browser-test failures.
keuchel@chromium.org [Mon, 7 Nov 2011 12:33:58 +0000 (12:33 +0000)]
Revert r9870 due to browser-test failures.

This reverts commit 4d5b5f12aac932ad892c7b6f152b6168708d4210.

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

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

12 years agoOptimize format message to not use DefineOwnProperty and freeze, do these inline
ricow@chromium.org [Mon, 7 Nov 2011 10:50:39 +0000 (10:50 +0000)]
Optimize format message to not use DefineOwnProperty and freeze, do these inline
Review URL: http://codereview.chromium.org/8494005

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

12 years agoDon't set the limit that triggers the next GC higher than the max
erik.corry@gmail.com [Mon, 7 Nov 2011 10:35:24 +0000 (10:35 +0000)]
Don't set the limit that triggers the next GC higher than the max
old space size.
Review URL: http://codereview.chromium.org/8491009

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

12 years agoMIPS: Adding assertions to fast elements conversion.
yangguo@chromium.org [Mon, 7 Nov 2011 10:31:54 +0000 (10:31 +0000)]
MIPS: Adding assertions to fast elements conversion.

Port r9875 (97dc1e0e).

BUG=
TEST=

Review URL: http://codereview.chromium.org/8467008
Patch from Gergely Kis <gergely@homejinni.com>.

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

12 years agoPrepare push to trunk. Now working on version 3.7.5.
jkummerow@chromium.org [Mon, 7 Nov 2011 10:08:24 +0000 (10:08 +0000)]
Prepare push to trunk.  Now working on version 3.7.5.

R=yangguo@chromium.org

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

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

12 years agoMIPS: Remove some initialization checks based on source positions.
keuchel@chromium.org [Mon, 7 Nov 2011 09:42:54 +0000 (09:42 +0000)]
MIPS: Remove some initialization checks based on source positions.

Port r9870 (959ec43).

Original commit message:

This depends on
http://codereview.chromium.org/8352039 and
http://codereview.chromium.org/8423005 .

BUG=
TEST=

Review URL: http://codereview.chromium.org/8467007
Patch from Gergely Kis <gergely@homejinni.com>.

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

12 years agoOptimize DefineOneShotAccessor in messages.js to not call DefineOwnProperty.
ricow@chromium.org [Mon, 7 Nov 2011 09:30:28 +0000 (09:30 +0000)]
Optimize DefineOneShotAccessor in messages.js to not call DefineOwnProperty.
Review URL: http://codereview.chromium.org/8490008

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

12 years agoMIPS: Cleanup: use JumpIf[Not]Smi() whenever we can
jkummerow@chromium.org [Mon, 7 Nov 2011 08:41:47 +0000 (08:41 +0000)]
MIPS: Cleanup: use JumpIf[Not]Smi() whenever we can

Port r8322 (7b8b4a951f).

BUG=
TEST=

Review URL: http://codereview.chromium.org/8428004
Patch from Gergely Kis <gergely@homejinni.com>.

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

12 years agoOverride product_extension instead of product_version to set SONAME for Linux shared...
jkummerow@chromium.org [Fri, 4 Nov 2011 14:47:13 +0000 (14:47 +0000)]
Override product_extension instead of product_version to set SONAME for Linux shared library

BUG=v8:1786

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

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

12 years agoRevert r9596 due to page-cycler regressions.
mstarzinger@chromium.org [Fri, 4 Nov 2011 13:05:16 +0000 (13:05 +0000)]
Revert r9596 due to page-cycler regressions.

R=vegorov@chromium.org

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

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

12 years agoFix Array.{splice,slice} to set proper ElementsKind of result
jkummerow@chromium.org [Fri, 4 Nov 2011 12:47:58 +0000 (12:47 +0000)]
Fix Array.{splice,slice} to set proper ElementsKind of result

TEST=mjsunit/elements-kind.js

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

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

12 years agoFix JSObject::EnsureCanContainElements to correctly iterate over Arguments
jkummerow@chromium.org [Fri, 4 Nov 2011 12:31:44 +0000 (12:31 +0000)]
Fix JSObject::EnsureCanContainElements to correctly iterate over Arguments

TEST=mjsunit/elements-kind.js

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

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

12 years agoFix Runtime_ArrayConcat to handle FAST_DOUBLE_ELEMENTS
jkummerow@chromium.org [Fri, 4 Nov 2011 12:19:35 +0000 (12:19 +0000)]
Fix Runtime_ArrayConcat to handle FAST_DOUBLE_ELEMENTS

TEST=mjsunit/elements-kind.js; stanford-crypto-sha256-iterative in debug mode

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

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

12 years agoAdding assertions to fast elements conversion.
yangguo@chromium.org [Thu, 3 Nov 2011 16:24:24 +0000 (16:24 +0000)]
Adding assertions to fast elements conversion.

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

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

12 years agoClean up Scope::CollectUsedVariables.
keuchel@chromium.org [Thu, 3 Nov 2011 14:50:19 +0000 (14:50 +0000)]
Clean up Scope::CollectUsedVariables.

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

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

12 years agoFix Harmony sets and maps to allow undefined as keys.
mstarzinger@chromium.org [Thu, 3 Nov 2011 14:33:58 +0000 (14:33 +0000)]
Fix Harmony sets and maps to allow undefined as keys.

This uses a global sentinel as a replacement for undefined keys, which
are not supported internally but required for Harmony sets and maps.

R=rossberg@chromium.org
BUG=v8:1622
TEST=mjsunit/harmony/collections

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

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

12 years agoTune context allocation for variables accessed from inner scopes.
keuchel@chromium.org [Thu, 3 Nov 2011 14:33:46 +0000 (14:33 +0000)]
Tune context allocation for variables accessed from inner scopes.

After introduction of with scopes we have enough static information to omit
context allocation in the case that a variable is accessed from a nested block
or catch scope of the same function. Only variables accessed from the inside of
a nested function or with scope are forced to be allocated in the context.

This essentially reverts
http://code.google.com/p/v8/source/detail?r=9281 .
which in turn reverted an earlier change.

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

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

12 years agoFix Harmony sets and maps to allow null as key.
mstarzinger@chromium.org [Thu, 3 Nov 2011 14:17:05 +0000 (14:17 +0000)]
Fix Harmony sets and maps to allow null as key.

This changes the internal convention for marking deleted entries in hash
tables from null_value to the_hole_value, which is consistent with other
usages of the_hole.

R=rossberg@chromium.org,kmillikin@chromium.org
BUG=v8:1622
TEST=mjsunit/harmony/collections

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

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

12 years agoRemove some initialization checks based on source positions.
keuchel@chromium.org [Thu, 3 Nov 2011 12:05:48 +0000 (12:05 +0000)]
Remove some initialization checks based on source positions.

This depends on
http://codereview.chromium.org/8352039 and
http://codereview.chromium.org/8423005 .

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

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

12 years agoRemove some unnecessary binding initialization checks.
keuchel@chromium.org [Thu, 3 Nov 2011 11:59:51 +0000 (11:59 +0000)]
Remove some unnecessary binding initialization checks.

This depends on http://codereview.chromium.org/8352039/ .

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

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

12 years agoCleanup ScopeInfo and SerializedScopeInfo.
keuchel@chromium.org [Thu, 3 Nov 2011 10:36:55 +0000 (10:36 +0000)]
Cleanup ScopeInfo and SerializedScopeInfo.

Both classes have been merged into a single ScopeInfo
class that implements the functionality from both.

This CL does not adapt the broken gdb-jit interface.

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

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

12 years agoFix gcc-4.6 warnings.
keuchel@chromium.org [Thu, 3 Nov 2011 08:59:01 +0000 (08:59 +0000)]
Fix gcc-4.6 warnings.

BUG=v8:1806

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

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

12 years agoMIPS: Add and use ElementsKind side effect
kmillikin@chromium.org [Thu, 3 Nov 2011 08:58:37 +0000 (08:58 +0000)]
MIPS: Add and use ElementsKind side effect

Port r9847 (fc7590).

Original commit message:

Also partition side effects into observable and not observable, with only observable requiring Simulates and non-observable changes able to participate in GVN and code hoisting.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8387044
Patch from Gergely Kis <gergely@homejinni.com>.

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

12 years agoMIPS: Remove the forward-bailout stack from the non-optimizing compiler.
kmillikin@chromium.org [Thu, 3 Nov 2011 08:57:56 +0000 (08:57 +0000)]
MIPS: Remove the forward-bailout stack from the non-optimizing compiler.

Port r9863 (0996dc77)

Original commit message:
This was pretty heavyweight.  It was kept in just for a few corner cases
that assumed it was there.  We can work around them by making sure that the
expression in a reified test context is always really the expression that
was visited in that context; and by inspecting the context manually and
consing up a pair of extra AST IDs for the unusual case of unary not in a
value AST context.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8372085
Patch from Gergely Kis <gergely@homejinni.com>.

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

12 years agoImplement VirtualMemory on FreeBSD to fix build.
yangguo@chromium.org [Thu, 3 Nov 2011 08:33:06 +0000 (08:33 +0000)]
Implement VirtualMemory on FreeBSD to fix build.

BUG=v8:1807

Review URL: http://codereview.chromium.org/8439068
Patch from Ben Noordhuis <info@bnoordhuis.nl>.

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

12 years agoRemove the forward-bailout stack from the non-optimizing compiler.
kmillikin@chromium.org [Wed, 2 Nov 2011 16:53:32 +0000 (16:53 +0000)]
Remove the forward-bailout stack from the non-optimizing compiler.

This was pretty heavyweight.  It was kept in just for a few corner cases
that assumed it was there.  We can work around them by making sure that the
expression in a reified test context is always really the expression that
was visited in that context; and by inspecting the context manually and
consing up a pair of extra AST IDs for the unusual case of unary not in a
value AST context.

R=fschneider@chromium.org
BUG=
TEST=

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

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

12 years agoFix error introduced in r9431, which leads to redundant lookup when setting property...
ulan@chromium.org [Wed, 2 Nov 2011 13:04:59 +0000 (13:04 +0000)]
Fix error introduced in r9431, which leads to redundant lookup when setting property with handler.

BUG=
TEST=

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

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

12 years agoEnable VFP instructions for Android.
danno@chromium.org [Wed, 2 Nov 2011 10:57:03 +0000 (10:57 +0000)]
Enable VFP instructions for Android.

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

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

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

12 years agoMake non-templatized versions of LIR printing functions.
fschneider@chromium.org [Wed, 2 Nov 2011 08:32:40 +0000 (08:32 +0000)]
Make non-templatized versions of LIR printing functions.

This avoid duplicating the code for each template instance.

Also remove dead code from different places in our code base.

Removed some verification code from release builds.
Review URL: http://codereview.chromium.org/8387070

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

12 years agoMIPS: Merge IR classes for different bitwise operations AND, OR and XOR into one...
fschneider@chromium.org [Tue, 1 Nov 2011 16:13:05 +0000 (16:13 +0000)]
MIPS: Merge IR classes for different bitwise operations AND, OR and XOR into one class.

Port r9846 (4cd055a).

Original commit message:

Since we already have only one LIR class, it does not make much sense to separate them at the HIR level.

BUG=
TEST=
Review URL: http://codereview.chromium.org/8432010

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

12 years agoRemove one-line helper used in two places.
fschneider@chromium.org [Tue, 1 Nov 2011 12:25:18 +0000 (12:25 +0000)]
Remove one-line helper used in two places.
Review URL: http://codereview.chromium.org/8387067

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

12 years agoRemove stack height tracking from ia32 non-optimizing code generator.
whesse@chromium.org [Tue, 1 Nov 2011 12:20:46 +0000 (12:20 +0000)]
Remove stack height tracking from ia32 non-optimizing code generator.
Review URL: http://codereview.chromium.org/8340023

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

12 years agoUse placement-new for zone-allocation in the Lithium classes.
fschneider@chromium.org [Tue, 1 Nov 2011 11:49:31 +0000 (11:49 +0000)]
Use placement-new for zone-allocation in the Lithium classes.

This avoid calling Isolate::Current on each zone-allocation of
a Lithium object.
Review URL: http://codereview.chromium.org/8429001

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

12 years agoFix bug introduced by my refactoring of bitwise HIR instructions.
fschneider@chromium.org [Tue, 1 Nov 2011 11:35:54 +0000 (11:35 +0000)]
Fix bug introduced by my refactoring of bitwise HIR instructions.

DataEquals was not overridden properly.
Review URL: http://codereview.chromium.org/8387066

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

12 years agoMerged Scanner and JavaScriptScanner.
lrn@chromium.org [Tue, 1 Nov 2011 07:47:15 +0000 (07:47 +0000)]
Merged Scanner and JavaScriptScanner.

JavaScriptScanner had become the only concrete subclass of Scanner, so there
was no longer a need for the distinction.

Also fixed up comments.

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

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

12 years agoSplit incremental marking write barrier into fast and slow paths.
vegorov@chromium.org [Mon, 31 Oct 2011 20:59:28 +0000 (20:59 +0000)]
Split incremental marking write barrier into fast and slow paths.

Force inlining of the fast path.

Force inlining LiteralBuffer::AddChar and Scanner::AddLiteralChar.

R=erik.corry@gmail.com

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

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

12 years agoConvert array index to integer when computing pause distribution for spinning-balls.
ulan@chromium.org [Mon, 31 Oct 2011 17:26:59 +0000 (17:26 +0000)]
Convert array index to integer when computing pause distribution for spinning-balls.

BUG=
TEST=

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

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

12 years agoAllow to set a time limit for spinning-balls and output the pause distribution at...
ulan@chromium.org [Mon, 31 Oct 2011 17:05:37 +0000 (17:05 +0000)]
Allow to set a time limit for spinning-balls and output the pause distribution at the end.

BUG=
TEST=

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

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

12 years agoFix unwanted implicit conversion from bool to int.
keuchel@chromium.org [Mon, 31 Oct 2011 15:04:27 +0000 (15:04 +0000)]
Fix unwanted implicit conversion from bool to int.

We have the following signatures:
VariableProxy* Scope::NewUnresolved(Handle<String> name,
                                    int position = RelocInfo::kNoPosition);

bool Parser::inside_with() const;

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

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

12 years agoCreate stub and runtime function for ia32 full-codegen array literal element initiali...
danno@chromium.org [Mon, 31 Oct 2011 14:42:06 +0000 (14:42 +0000)]
Create stub and runtime function for ia32 full-codegen array literal element initialization.

BUG=none
TEST=none

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

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

12 years agoOptimize JS date implementation for smi-only arrays
jkummerow@chromium.org [Mon, 31 Oct 2011 14:39:21 +0000 (14:39 +0000)]
Optimize JS date implementation for smi-only arrays

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

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

12 years agoAdd and use ElementsKind side effect
danno@chromium.org [Mon, 31 Oct 2011 14:15:10 +0000 (14:15 +0000)]
Add and use ElementsKind side effect

Also partition side effects into observable and not observable, with only observable requiring Simulates and non-observable changes able to participate in GVN and code hoisting.

BUG=none
TEST=none

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

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

12 years agoMerge IR classes for different bitwise operations AND, OR and XOR into one class.
fschneider@chromium.org [Mon, 31 Oct 2011 13:06:26 +0000 (13:06 +0000)]
Merge IR classes for different bitwise operations AND, OR and XOR into one class.

Since we already have only one LIR class, it does not make much sense to separate
them at the HIR level.
Review URL: http://codereview.chromium.org/8426005

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

12 years agoMIPS: updated atomic operations.
kmillikin@chromium.org [Mon, 31 Oct 2011 12:47:02 +0000 (12:47 +0000)]
MIPS: updated atomic operations.

Specifically:
-fixed a bug in CompareAndSwap that caused randomly occuring timeouts on MIPS boards.
-added gcc inline asm control push/pop instructions to correctly save/restore the reorder setting instead of simply assuming it should be enabled.
-reordered/optimized some instructions to utilize MIPS-specific pipelining features (branch delay slot).
-fixed improper usage of write barriers

BUG=
TEST=

Review URL: http://codereview.chromium.org/8413073
Patch from Gergely Kis <gergely@homejinni.com>.

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

12 years agoMIPS: Handlify CompileConstructStub and the remaining CallStubCompiler functions.
kmillikin@chromium.org [Mon, 31 Oct 2011 12:36:11 +0000 (12:36 +0000)]
MIPS: Handlify CompileConstructStub and the remaining CallStubCompiler functions.

Port r9837 (38061af).
Port r9834 (95ac04).

Original commit message (r9834):
Also, handlify functions for loading with interceptors and callbacks.
Remove some unneeded code.  Rename Foreign::address() because it
confusingly shadows HeapObject::address() which does something quite
different.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8400087
Patch from Gergely Kis <gergely@homejinni.com>.

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

12 years agoMIPS: Fixed wrong register usage in StringDictionaryLookupStub::GenerateNegativeLookup.
kmillikin@chromium.org [Mon, 31 Oct 2011 12:34:13 +0000 (12:34 +0000)]
MIPS: Fixed wrong register usage in StringDictionaryLookupStub::GenerateNegativeLookup.

This fixes a lot of test failures triggered by r9834, for example mjsunit/const-redecl.js.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8417050
Patch from Gergely Kis <gergely@homejinni.com>.

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

12 years agoAdapt date test to be timezone independant.
mstarzinger@chromium.org [Mon, 31 Oct 2011 11:15:23 +0000 (11:15 +0000)]
Adapt date test to be timezone independant.

R=yangguo@chromium.org
BUG=v8:1792
TEST=mjsunit/date

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

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

12 years agoEliminate some virtual function from AST classes.
fschneider@chromium.org [Mon, 31 Oct 2011 11:11:26 +0000 (11:11 +0000)]
Eliminate some virtual function from AST classes.

1. Remove unused dead functions.

2. Replace the virtual As-* type cast functions with non-virtual version
that uses node_type().

Result is around 13K reduction in binary size.
Review URL: http://codereview.chromium.org/8335006

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

12 years agoMake eval consider anything on the form eval(args...) a potential direct cal
lrn@chromium.org [Mon, 31 Oct 2011 09:38:52 +0000 (09:38 +0000)]
Make eval consider anything on the form eval(args...) a potential direct cal

Previously we omitted all cases where the global eval property was shadowed,
even if by a variable holding the same value. ES5 requires us to treat these
as direct calls.

We still throw if calling indirect eval with a detached global object.

BUG=v8:994
TEST=mjsunit/eval.js

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

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

12 years agoHandlify CompileConstructStub. Based on 8391045.
ulan@chromium.org [Fri, 28 Oct 2011 14:08:43 +0000 (14:08 +0000)]
Handlify CompileConstructStub. Based on 8391045.

R=kmillikin@chromium.org
BUG=
TEST=

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

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

12 years agoMark Test262 test cases for known issue 1772.
mstarzinger@chromium.org [Fri, 28 Oct 2011 13:03:55 +0000 (13:03 +0000)]
Mark Test262 test cases for known issue 1772.

R=svenpanne@chromium.org
BUG=v8:1772
TEST=test262

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

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

12 years agoMake C++ to JS transition faster by avoiding JavaScriptFrameIterator in SaveContext.
vegorov@chromium.org [Fri, 28 Oct 2011 12:49:09 +0000 (12:49 +0000)]
Make C++ to JS transition faster by avoiding JavaScriptFrameIterator in SaveContext.

R=kmillikin@chromium.org
BUG=v8:1730

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

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

12 years agoHandlify the remaining CallStubCompiler functions.
kmillikin@chromium.org [Fri, 28 Oct 2011 12:37:29 +0000 (12:37 +0000)]
Handlify the remaining CallStubCompiler functions.

Also, handlify functions for loading with interceptors and callbacks.
Remove some unneeded code.  Rename Foreign::address() because it
confusingly shadows HeapObject::address() which does something quite
different.

R=vegorov@chromium.org,ulan@chromium.org
BUG=
TEST=

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

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

12 years agoForce transition to FAST_ELEMENTS on out-of-bounds KeyedLoads.
danno@chromium.org [Fri, 28 Oct 2011 10:35:38 +0000 (10:35 +0000)]
Force transition to FAST_ELEMENTS on out-of-bounds KeyedLoads.

Proactively ensure that that objects don't get FAST_DOUBLE_ELEMENTS to reduce the number of double boxing operations when generated code calls the runtime frequently to satisfy KeyedLoad requests.

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

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

12 years agoRemove kInvalidStrictFlag and make gcc-4.5 happy again.
keuchel@chromium.org [Fri, 28 Oct 2011 09:10:29 +0000 (09:10 +0000)]
Remove kInvalidStrictFlag and make gcc-4.5 happy again.

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

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

12 years agoFix assertSame for unit testing harness.
mstarzinger@chromium.org [Fri, 28 Oct 2011 09:09:51 +0000 (09:09 +0000)]
Fix assertSame for unit testing harness.

Using isNaN() here is bogus because it performs an implicit toNumber()
conversion, hence something like assertSame(undefined, {}) would not
throw an exception. These are not the NaNs you are looking for.

R=rossberg@chromium.org
TEST=mjsunit

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

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

12 years agoFix presubmit error.
kmillikin@chromium.org [Fri, 28 Oct 2011 08:51:08 +0000 (08:51 +0000)]
Fix presubmit error.

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

12 years agoFix error handling in Date.prototype.toISOString.
mstarzinger@chromium.org [Fri, 28 Oct 2011 08:45:04 +0000 (08:45 +0000)]
Fix error handling in Date.prototype.toISOString.

This fixes Date.prototyoe.toISOString to throw a RangeError exception
for invalid time values. It also includes a fix to removes the arbitrary
(and completely bogus) range limit on the date value during construction
of a Date object. Note that we still have bogus range limits on the year
and month values.

R=lrn@chromium.org
BUG=v8:1792
TEST=mjsunit/date,test262/15.9.5.43-0-*

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

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

12 years agoMIPS: crankshaft implementation
kmillikin@chromium.org [Fri, 28 Oct 2011 08:14:46 +0000 (08:14 +0000)]
MIPS: crankshaft implementation

BUG=
TEST=

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

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

12 years agoMIPS: Fixing performance regression in issue 1787.
yangguo@chromium.org [Fri, 28 Oct 2011 08:03:13 +0000 (08:03 +0000)]
MIPS: Fixing performance regression in issue 1787.

Port r9812 (c1644a9d)

Note: MIPS already had the fix for this regression.
This commit only adds the extra assertions.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8343030
Patch from Gergely Kis <gergely@homejinni.com>.

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

12 years agoPrepare push to trunk. Now working on 3.7.4.
erik.corry@gmail.com [Fri, 28 Oct 2011 07:38:27 +0000 (07:38 +0000)]
Prepare push to trunk.  Now working on 3.7.4.
Review URL: http://codereview.chromium.org/8417020

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

12 years agoTemporarily disable target recording CallFunctionStub until issue 1789 is fixed.
fschneider@chromium.org [Thu, 27 Oct 2011 15:46:25 +0000 (15:46 +0000)]
Temporarily disable target recording CallFunctionStub until issue 1789 is fixed.
Review URL: http://codereview.chromium.org/8340029

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