platform/upstream/v8.git
12 years agoMake builtin functions be skipped in stack traces.
lrn@chromium.org [Thu, 20 Oct 2011 12:31:33 +0000 (12:31 +0000)]
Make builtin functions be skipped in stack traces.

Does include exposed builtin functions ("native functions").

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

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

12 years agoShave 39% from snapshot size.
erik.corry@gmail.com [Thu, 20 Oct 2011 12:27:10 +0000 (12:27 +0000)]
Shave 39% from snapshot size.
Review URL: http://codereview.chromium.org/8344079

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

12 years agoSwitch UnreachableObjectsFilter to use Marking instead of InstrusiveMarking.
vegorov@chromium.org [Thu, 20 Oct 2011 11:40:16 +0000 (11:40 +0000)]
Switch UnreachableObjectsFilter to use Marking instead of InstrusiveMarking.

GcSafeFindCodeForInnerPointer does not work with intrusive marking now and it is used when roots are iterated.

R=erik.corry@gmail.com

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

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

12 years agoSpeed up comparison with a constant.
whesse@chromium.org [Thu, 20 Oct 2011 10:26:45 +0000 (10:26 +0000)]
Speed up comparison with a constant.
Improve optimized code for comparison of an int32 against a constant, or comparison of two double constants.  Contributed by m.m.capewell.

Original codereview is http://codereview.chromium.org/7489045/.
This cl is just created in order to commit the change.

BUG=
TEST=

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

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

12 years agoFix x64 and ARM builds.
danno@chromium.org [Thu, 20 Oct 2011 10:07:54 +0000 (10:07 +0000)]
Fix x64 and ARM builds.

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

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

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

12 years agoMake sure PrintElementsKind is compiled in release mode.
danno@chromium.org [Thu, 20 Oct 2011 09:56:18 +0000 (09:56 +0000)]
Make sure PrintElementsKind is compiled in release mode.

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

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

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

12 years agoAdd flag to trace element kind transitions
danno@chromium.org [Thu, 20 Oct 2011 09:38:24 +0000 (09:38 +0000)]
Add flag to trace element kind transitions

Currently only traces transitions from generated ia32 code.

BUG=none
TEST=none

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

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

12 years agoHandlify upper layers of KeyedLoadIC.
ulan@chromium.org [Thu, 20 Oct 2011 09:35:47 +0000 (09:35 +0000)]
Handlify upper layers of KeyedLoadIC.

BUG=
TEST=

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

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

12 years agoElementsKind transitioning support for keyed loads in Crankshaft
jkummerow@chromium.org [Thu, 20 Oct 2011 08:49:01 +0000 (08:49 +0000)]
ElementsKind transitioning support for keyed loads in Crankshaft

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

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

12 years agoHandle keyed stores after elements transition monomorphically if possible
jkummerow@chromium.org [Thu, 20 Oct 2011 08:41:38 +0000 (08:41 +0000)]
Handle keyed stores after elements transition monomorphically if possible

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

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

12 years agoMake IsGenericDescriptor spec-conformant.
svenpanne@chromium.org [Thu, 20 Oct 2011 07:55:30 +0000 (07:55 +0000)]
Make IsGenericDescriptor spec-conformant.

When the descriptor argument is undefined, the spec is very explicit about the
fact that we should return false (not true, like we did previously). I couldn't
come up with a test case for this, but the old code leaves a bad feeling about
corner cases, so better play safe.
Review URL: http://codereview.chromium.org/8356004

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

12 years agoAdapt sputnik test expectations to last change.
mstarzinger@chromium.org [Wed, 19 Oct 2011 15:34:32 +0000 (15:34 +0000)]
Adapt sputnik test expectations to last change.

The version of Sputnik which we test against uses the obsolete ES3
specification when it comes to Function.prototype.apply, ignore some
test cases that are supposed to fail according to ES5.

TBR=rossberg@chromium.org
TEST=sputnik

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

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

12 years agoFix handling Function.apply for non-array arguments.
mstarzinger@chromium.org [Wed, 19 Oct 2011 13:56:18 +0000 (13:56 +0000)]
Fix handling Function.apply for non-array arguments.

R=rossberg@chromium.org
TEST=mjsunit/apply,test262

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

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

12 years agoTemporarily skip asserts in test mjsunit/debug-step-3.js until issue is resolved
sgjesse@chromium.org [Wed, 19 Oct 2011 13:47:53 +0000 (13:47 +0000)]
Temporarily skip asserts in test mjsunit/debug-step-3.js until issue is resolved

R=kmillikin@chromium.org

BUG=v8:1782
TEST=mjsunit/debug-step-3.js

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

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

12 years agoFix Array.filter to use internal array for result.
mstarzinger@chromium.org [Wed, 19 Oct 2011 13:44:29 +0000 (13:44 +0000)]
Fix Array.filter to use internal array for result.

In built-in code we use arrays for internal computations. This makes it
possible to affect the built-in code by putting getters or setters on
the array prototype chain. Using internal arrays prevents those issues.

Related to: http://code.google.com/p/v8/source/detail?r=7040

R=svenpanne@chromium.org
TEST=test262/15.4.4.20-9-b-6

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

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

12 years ago[[DefineOwnProperty]] should always return true/false (or throw an exception), never...
svenpanne@chromium.org [Wed, 19 Oct 2011 13:29:37 +0000 (13:29 +0000)]
[[DefineOwnProperty]] should always return true/false (or throw an exception), never undefined.

Note that this is not an observable behavior, but following the principle of
least surprise, we should follow the spec. Additional (extremely tiny) bonus:
Some ICs see fewer values => better code.
Review URL: http://codereview.chromium.org/8352004

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

12 years agoAdjust elements-kind.js expectation when --smi-only-arrays is off
jkummerow@chromium.org [Wed, 19 Oct 2011 12:44:50 +0000 (12:44 +0000)]
Adjust elements-kind.js expectation when --smi-only-arrays is off

TEST=mjsunit/elements-kind passes both with and without --smi-only-arrays flag

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

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

12 years agoOptimize fast element conversion in arm using batch store/loads.
yangguo@chromium.org [Wed, 19 Oct 2011 12:15:15 +0000 (12:15 +0000)]
Optimize fast element conversion in arm using batch store/loads.

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

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

12 years agoRevert 9673, 9674 and 9675 because of failing webkit tests.
keuchel@chromium.org [Wed, 19 Oct 2011 12:15:02 +0000 (12:15 +0000)]
Revert 9673, 9674 and 9675 because of failing webkit tests.

This reverts commits
r9673: "Scope tree serialization and ScopeIterator cleanup."
r9674: "Use OS::SNPrintF instead of snprintf."
r9675: "Use int instead of size_t, StrLength instead of strlen."

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

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

12 years agoIntroduce HTransitionElementsKind instruction.
jkummerow@chromium.org [Wed, 19 Oct 2011 12:10:18 +0000 (12:10 +0000)]
Introduce HTransitionElementsKind instruction.

TEST=mjsunit/elements-kind

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

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

12 years agoHandlify the runtime lookup of CallIC and KeyedCallIC.
kmillikin@chromium.org [Wed, 19 Oct 2011 12:04:16 +0000 (12:04 +0000)]
Handlify the runtime lookup of CallIC and KeyedCallIC.

R=ulan@chromium.org
BUG=
TEST=

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

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

12 years agoMIPS: port Fix evaluation order of GT and LTE operators.
mstarzinger@chromium.org [Wed, 19 Oct 2011 11:44:38 +0000 (11:44 +0000)]
MIPS: port Fix evaluation order of GT and LTE operators.

Port r9641 (2876c37)

Note that this port does not include crankshaft portions of this
commit. They have been included in today's update to
http://codereview.chromium.org/7934002/

Also, this fixes a changed function prototype for:
void Deoptimizer::RevertStackCheckCodeAt()

BUG=
TEST=

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

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

12 years agoAllow inlining of named function expressions containing ThisFunction reference.
fschneider@chromium.org [Wed, 19 Oct 2011 11:41:22 +0000 (11:41 +0000)]
Allow inlining of named function expressions containing ThisFunction reference.

Named function expression have an implicit local variable that
refers to the current function (ThisFunction). Before we only could inline
anonymous function expressions like:

A.prototype.foo = function() {}

as opposed to

A.prototype.foo = function foo() {}

This change enables inlining function of expressions like this.
Review URL: http://codereview.chromium.org/8346032

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

12 years agoSupport array literals with FAST_DOUBLE_ELEMENTS ElementsKind.
danno@chromium.org [Wed, 19 Oct 2011 11:36:55 +0000 (11:36 +0000)]
Support array literals with FAST_DOUBLE_ELEMENTS ElementsKind.

BUG=none
TEST=test/mjsunit/array-literal.js

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

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

12 years agoRegExpMacroAssembler::CheckStackGuardState should update input string pointer when...
vegorov@chromium.org [Wed, 19 Oct 2011 11:01:02 +0000 (11:01 +0000)]
RegExpMacroAssembler::CheckStackGuardState should update input string pointer when it is moved or changed by GC.

If input string was cons-string it might undergo short-circuiting during GC. This does not change input start if underlying seq-string (first element of cons-string) does not move but this makes input-string pointer on the native regexp's frame invalid.

R=lrn@chromium.org

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

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

12 years agoBugfix for r9690.
yangguo@chromium.org [Wed, 19 Oct 2011 10:44:20 +0000 (10:44 +0000)]
Bugfix for r9690.

BUG=arm debug test of mjsunit/elements-transition segfaults

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

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

12 years agoDon't allow large object space to grow over the max oldspace limit (fixes issue 1717)
ricow@chromium.org [Wed, 19 Oct 2011 10:15:09 +0000 (10:15 +0000)]
Don't allow large object space to grow over the max oldspace limit (fixes issue 1717)
Review URL: http://codereview.chromium.org/8345040

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

12 years agoFixed evaluation order issue in defineProperties.
svenpanne@chromium.org [Wed, 19 Oct 2011 09:52:08 +0000 (09:52 +0000)]
Fixed evaluation order issue in defineProperties.

This is not covered by test262 yet, but it really makes sense and matches Firefox's behaviour.

TEST=mjsunit/define-properties.js
Review URL: http://codereview.chromium.org/8349031

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

12 years agoFix handling of non-object receivers for array builtins.
mstarzinger@chromium.org [Wed, 19 Oct 2011 09:24:37 +0000 (09:24 +0000)]
Fix handling of non-object receivers for array builtins.

R=svenpanne@chromium.org
BUG=chromium:100702
TEST=mjsunit/regress/regress-100702

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

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

12 years agoHandlify upper layers of StoreIC based on 8337008.
ulan@chromium.org [Wed, 19 Oct 2011 09:17:01 +0000 (09:17 +0000)]
Handlify upper layers of StoreIC based on 8337008.

BUG=
TEST=

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

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

12 years agoFix updating of property attributes for elements.
mstarzinger@chromium.org [Wed, 19 Oct 2011 09:06:15 +0000 (09:06 +0000)]
Fix updating of property attributes for elements.

This fixes updating of property attributes for data elements when
attributes are already present on a dictionary element but get removed
by a subsequent redefinition of that element.

R=rossberg@chromium.org
BUG=v8:1772
TEST=test262/15.2.3.6-4-82-18

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

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

12 years agoPorting r9605 to arm (elements kind conversion in generated code).
yangguo@chromium.org [Wed, 19 Oct 2011 09:04:35 +0000 (09:04 +0000)]
Porting r9605 to arm (elements kind conversion in generated code).

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

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

12 years agoFix from Paul Lind that helps post-isolates V8 work with older
erik.corry@gmail.com [Wed, 19 Oct 2011 07:49:47 +0000 (07:49 +0000)]
Fix from Paul Lind that helps post-isolates V8 work with older
Android releases.  See http://code.google.com/p/v8/issues/detail?id=1780
Review URL: http://codereview.chromium.org/8347032

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

12 years agoRecognize special comparisons via pattern matching on the hydrogen graph, 2nd attempt.
svenpanne@chromium.org [Wed, 19 Oct 2011 07:35:30 +0000 (07:35 +0000)]
Recognize special comparisons via pattern matching on the hydrogen graph, 2nd attempt.

This time, we initially leave the HTypeof instruction in the Hydrogen graph,
even for the special cases. We later try to remove this instruction (and any
HConstant) in the canonicalization pass, if possible. Always removing the
HTypeof during the initial graph construction is wrong if e.g. it is used in an
HSimulate.

The removals can be generalized a bit, but this will happen in a separate CL.

TEST=mjsunit/optimized-typeof.js
Review URL: http://codereview.chromium.org/8334021

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

12 years agoAdd write barrier helper for code patching and refactor stack check patching.
fschneider@chromium.org [Tue, 18 Oct 2011 15:07:42 +0000 (15:07 +0000)]
Add write barrier helper for code patching and refactor stack check patching.

The new helper avoids expensive FindCodeForInnerPointer invocation when we have
the host code object available. It is used when patching stack checks.

Also some comments on the ARM platform are corrected.
Review URL: http://codereview.chromium.org/8330021

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

12 years agoIncrease ARM/MIPS simulators stack safety margin to 512 bytes
vegorov@chromium.org [Tue, 18 Oct 2011 14:41:45 +0000 (14:41 +0000)]
Increase ARM/MIPS simulators stack safety margin to 512 bytes

R=erik.corry@gmail.com
BUG=v8:1773

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

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

12 years agoFix updating of property attributes for elements.
mstarzinger@chromium.org [Tue, 18 Oct 2011 13:49:19 +0000 (13:49 +0000)]
Fix updating of property attributes for elements.

This fixes updating of property attributes for getters and setters on
dictionary elements while redefining. This just updates the property
details on the existing element.

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

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

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

12 years agoReapply "Support for precise stepping in functions compiled before debugging was...
sgjesse@chromium.org [Tue, 18 Oct 2011 13:40:33 +0000 (13:40 +0000)]
Reapply "Support for precise stepping in functions compiled before debugging was started (step 2)"

This is reapplying r9501 with this single change which seemed to be causing most (all) of the failures for r9501.

--- a/src/debug.cc
+++ b/src/debug.cc
@@ -2230,6 +2230,7 @@ Debugger::Debugger(Isolate* isolate)
       compiling_natives_(false),
       is_loading_debugger_(false),
       never_unload_debugger_(false),
+      force_debugger_active_(true),
       message_handler_(NULL),
       debugger_unload_pending_(false),
       host_dispatch_handler_(NULL),

R=kmillikin@chromium.org

BUG=
TEST=

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

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

12 years agoMake bound functions have poisoned .caller and .arguments.
lrn@chromium.org [Tue, 18 Oct 2011 12:26:53 +0000 (12:26 +0000)]
Make bound functions have poisoned .caller and .arguments.

Also makes func.caller return null if the caller is a bound function,
matching JSC.
Fix bug preventing poisoned setters from triggering.

TEST=mjsunit/function-bind, mjsunit/strict-mode

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

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

12 years agoHandlify upper layers of LoadIC.
ulan@chromium.org [Tue, 18 Oct 2011 12:19:18 +0000 (12:19 +0000)]
Handlify upper layers of LoadIC.

BUG=
TEST=

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

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

12 years agoSilence GCC-4.5.3 warning about unused result in d8.cc
jkummerow@chromium.org [Tue, 18 Oct 2011 12:10:13 +0000 (12:10 +0000)]
Silence GCC-4.5.3 warning about unused result in d8.cc

TEST=GCC 4.5.3 successfully compiles d8.cc even with -Werror enabled.

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

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

12 years agoFix assert by reordering the initialization of the arguments boilerplate.
fschneider@chromium.org [Tue, 18 Oct 2011 11:32:57 +0000 (11:32 +0000)]
Fix assert by reordering the initialization of the arguments boilerplate.

If a GC happened during initialization (when allocating the elements array)
of the non_strict_arguments_boilerplate, heap verification would fail with the following assert:

ASSERT_EQ((map()->has_fast_elements() || map()->has_fast_smi_only_elements()),
            (elements()->map() == GetHeap()->fixed_array_map() ||
             elements()->map() == GetHeap()->fixed_cow_array_map()));

This was not harmful since the boilerplate was setup
correctly immediatly afterwards.

Simplified the setup code by removing a call to GetElementsTransitionMap. It always return the same map as
the input object in this case and is therefore unnecessary.

Added more assertions to verify well-formed non-strict
arguments backing store.

BUG=v8:1520
TEST=no more flaky tests with failing this assert.

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

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

12 years agoFix bug in instanceof of bound functions on ARM.
lrn@chromium.org [Tue, 18 Oct 2011 11:30:29 +0000 (11:30 +0000)]
Fix bug in instanceof of bound functions on ARM.

Implement same on Mips.

BUG=v8:1774
TEST=mjsunit/function-bind

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

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

12 years agoMake the GC aware of JSReceiver pointers in LookupResults.
kmillikin@chromium.org [Tue, 18 Oct 2011 11:18:55 +0000 (11:18 +0000)]
Make the GC aware of JSReceiver pointers in LookupResults.

The LookupResult utility class is used in handlified code, but it can
contain a raw pointer to the lookup's holder object.  Create a per-thread
stack of live LookupResults and iterate all the live ones on GC.

R=vegorov@chromium.org,erik.corry@gmail.com
BUG=
TEST=

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

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

12 years agoUse int instead of size_t, StrLength instead of strlen.
keuchel@chromium.org [Tue, 18 Oct 2011 10:08:33 +0000 (10:08 +0000)]
Use int instead of size_t, StrLength instead of strlen.

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

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

12 years agoUse OS::SNPrintF instead of snprintf.
keuchel@chromium.org [Tue, 18 Oct 2011 09:48:13 +0000 (09:48 +0000)]
Use OS::SNPrintF instead of snprintf.

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

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

12 years agoScope tree serialization and ScopeIterator cleanup.
keuchel@chromium.org [Tue, 18 Oct 2011 08:46:46 +0000 (08:46 +0000)]
Scope tree serialization and ScopeIterator cleanup.

The intention is to store enough scope information for the debugger to
handle stack allocation of block scoped variables introduced by
http://codereview.chromium.org/7860045/ .

This CL is based on
http://codereview.chromium.org/7904008/ .

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

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

12 years agoReplace calls_eval() by calls_non_strict_eval() where possible.
keuchel@chromium.org [Mon, 17 Oct 2011 15:19:34 +0000 (15:19 +0000)]
Replace calls_eval() by calls_non_strict_eval() where possible.

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

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

12 years agoRolling back r9662.
yangguo@chromium.org [Mon, 17 Oct 2011 13:39:56 +0000 (13:39 +0000)]
Rolling back r9662.

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

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

12 years agoChange to disable stupid gcc warning.
erik.corry@gmail.com [Mon, 17 Oct 2011 13:27:57 +0000 (13:27 +0000)]
Change to disable stupid gcc warning.
Review URL: http://codereview.chromium.org/8318003

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

12 years agoMark Test262 test cases for known issue 893.
mstarzinger@chromium.org [Mon, 17 Oct 2011 12:58:32 +0000 (12:58 +0000)]
Mark Test262 test cases for known issue 893.

R=lrn@chromium.org
BUG=v8:893
TEST=test262

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

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

12 years agoChanges around ascii-check for strings wrt external strings.
yangguo@chromium.org [Mon, 17 Oct 2011 12:49:34 +0000 (12:49 +0000)]
Changes around ascii-check for strings wrt external strings.

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

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

12 years agoImprove speed of Utf8Write by always flattening the string first and
erikcorry [Mon, 17 Oct 2011 12:48:31 +0000 (12:48 +0000)]
Improve speed of Utf8Write by always flattening the string first and
detecting the ASCII case.  Also rewrite Utf8Length to work on an
unflattened string.  Bug: http://code.google.com/p/v8/issues/detail?id=1665
Review URL: http://codereview.chromium.org/8304021

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

12 years agoMake native syntax an early error in the preparser.
lrn@chromium.org [Mon, 17 Oct 2011 12:45:52 +0000 (12:45 +0000)]
Make native syntax an early error in the preparser.

Previously the preparser always accepted natives syntax and let the
real parser throw the syntax error. In ES5, it should be an early error,
so the preparser must catch the error.
The perparser library does not expose parsing for natives syntax, it's
only used internally.

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

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

12 years agoReimplement Function.prototype.bind.
lrn@chromium.org [Mon, 17 Oct 2011 12:44:16 +0000 (12:44 +0000)]
Reimplement Function.prototype.bind.

Make instanceof work correctly.

BUG=v8:893

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

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

12 years agoLet bound iteration variables in for-loops
keuchel@chromium.org [Mon, 17 Oct 2011 12:19:06 +0000 (12:19 +0000)]
Let bound iteration variables in for-loops

TEST=mjsunit/harmony/block-for.js

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

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

12 years agoDisallow function declarations in statement positions in harmony mode.
keuchel@chromium.org [Mon, 17 Oct 2011 11:59:08 +0000 (11:59 +0000)]
Disallow function declarations in statement positions in harmony mode.

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

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

12 years agoFixing compile error on win64.
yangguo@chromium.org [Mon, 17 Oct 2011 11:41:34 +0000 (11:41 +0000)]
Fixing compile error on win64.

R=jkummerow@chromium.org
BUG=
TEST=

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

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

12 years agoPorting r9605 to x64 (elements kind conversion in generated code).
yangguo@chromium.org [Mon, 17 Oct 2011 10:44:47 +0000 (10:44 +0000)]
Porting r9605 to x64 (elements kind conversion in generated code).

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

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

12 years agoIntroduce with scope and rework variable resolution.
keuchel@chromium.org [Mon, 17 Oct 2011 09:29:37 +0000 (09:29 +0000)]
Introduce with scope and rework variable resolution.

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

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

12 years agoRemove redundant allow-natives flag from CompilationInfo.
lrn@chromium.org [Mon, 17 Oct 2011 09:02:26 +0000 (09:02 +0000)]
Remove redundant allow-natives flag from CompilationInfo.

Just use script being native and FLAG_allow_natives_syntax directly.

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

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

12 years agoSpeedup HInstruction::Verify() for pathological cases
jkummerow@chromium.org [Mon, 17 Oct 2011 07:52:20 +0000 (07:52 +0000)]
Speedup HInstruction::Verify() for pathological cases

BUG=v8:1767
TEST=mjsunit/numops-fuzz doesn't timeout in debug mode

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

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

12 years agoFix evaluation order of GT and LTE operators.
mstarzinger@chromium.org [Mon, 17 Oct 2011 07:43:40 +0000 (07:43 +0000)]
Fix evaluation order of GT and LTE operators.

According to the ES5 spec all ">" and "<=" expressions should be be
evaluated left-to-right. This obsoletes old hacks for reversing the
order to be ES3 compliant.

R=lrn@chromium.org
BUG=v8:1752

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

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

12 years agoRevert r9612, it hits an assertion under special circumstances.
svenpanne@chromium.org [Fri, 14 Oct 2011 15:02:19 +0000 (15:02 +0000)]
Revert r9612, it hits an assertion under special circumstances.

Problematic code is e.g.:

   function typeofViaVariable() {
     var foo = typeof({})
     return foo === "undefined";
   }
Review URL: http://codereview.chromium.org/8283036

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

12 years agoFixed printing of HTypeofIsAndBranch instruction for non-ASCII type literals.
svenpanne@chromium.org [Fri, 14 Oct 2011 13:16:23 +0000 (13:16 +0000)]
Fixed printing of HTypeofIsAndBranch instruction for non-ASCII type literals.
Review URL: http://codereview.chromium.org/8291004

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

12 years agoRevert r9619.
fschneider@chromium.org [Fri, 14 Oct 2011 12:26:29 +0000 (12:26 +0000)]
Revert r9619.

It causes an assertion with deoptimizing from inlined code.
Review URL: http://codereview.chromium.org/8277034

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

12 years agoRevert last revert.
fschneider@chromium.org [Fri, 14 Oct 2011 12:03:53 +0000 (12:03 +0000)]
Revert last revert.

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

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

12 years agoRevert r9619.
fschneider@chromium.org [Fri, 14 Oct 2011 11:56:07 +0000 (11:56 +0000)]
Revert r9619.

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

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

12 years agoAvoid extra GCs when deserializing during incremental marking.
erik.corry@gmail.com [Fri, 14 Oct 2011 10:52:30 +0000 (10:52 +0000)]
Avoid extra GCs when deserializing during incremental marking.
Review URL: http://codereview.chromium.org/8276030

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

12 years agoFix available new space memory statistics reporting.
ricow@chromium.org [Fri, 14 Oct 2011 09:25:10 +0000 (09:25 +0000)]
Fix available new space memory statistics reporting.

We currently report how much memory is available without changing page, i.e., the actual amount of available memory is not correctly stated for new space when doing --trace-gc.
Review URL: http://codereview.chromium.org/8275026

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

12 years agoSpeed up cloning objects by avoiding a write barrier check.
erik.corry@gmail.com [Fri, 14 Oct 2011 09:20:19 +0000 (09:20 +0000)]
Speed up cloning objects by avoiding a write barrier check.
Review URL: http://codereview.chromium.org/8274032

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

12 years agoRemove timeout test expectation for OutOfMemoryNested
ricow@chromium.org [Fri, 14 Oct 2011 09:10:29 +0000 (09:10 +0000)]
Remove timeout test expectation for OutOfMemoryNested

This has already been fixed, we not actually use the constraints.
Review URL: http://codereview.chromium.org/8276029

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

12 years agoFix a number of bugs with inlining calls as function.
fschneider@chromium.org [Fri, 14 Oct 2011 08:43:27 +0000 (08:43 +0000)]
Fix a number of bugs with inlining calls as function.

1. Record AST id for CallFunctionStub.

2. Correctly extract cached target from CallFunctionStub inline cache.

3. Fix a bug when inling call as a function in effect or value context:
   Handle abnormal exits correcty.

4. Fix a bug when inlining call as a function in test context: drop function
   correctly from true and false block.

5. Avoid inlining mutually recursive functions by checking the stack of function
   states before inlining. This was not a bug, but is just a more general
   check to avoid recursive inlining.
Review URL: http://codereview.chromium.org/8258012

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

12 years agoEliminate write barrier for global stores at compile time if value stored is a smi.
fschneider@chromium.org [Fri, 14 Oct 2011 07:45:18 +0000 (07:45 +0000)]
Eliminate write barrier for global stores at compile time if value stored is a smi.

Omit smi check inside write barriers if the value is known to be a heap object.

Refine inferred types of some instructions.
Review URL: http://codereview.chromium.org/8256016

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

12 years agoIgnore flags with arguments in preparser-process.
ulan@chromium.org [Fri, 14 Oct 2011 07:34:45 +0000 (07:34 +0000)]
Ignore flags with arguments in preparser-process.

Currently, preparser-process crashes when given flags with arguments (e.g. --gc_interval 10). It can be fixed by ignoring everything in the command line except the "throws" command and its immediate arguments. This assumes that no flags appear between "throws" and its arguments.

TEST=make ia32.release.check TESTFLAGS="preparser --special-command=\"@ --gc_interval 10\""

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

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

12 years agoMIPS: fix build breakage due to r9607, faster slow asserts.
danno@chromium.org [Fri, 14 Oct 2011 07:08:20 +0000 (07:08 +0000)]
MIPS: fix build breakage due to r9607, faster slow asserts.

BUG=
TEST=

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

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

12 years agoAdding missing hole check to FixedDoubleArray::Initialize
yangguo@chromium.org [Thu, 13 Oct 2011 16:36:20 +0000 (16:36 +0000)]
Adding missing hole check to FixedDoubleArray::Initialize

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

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

12 years agoReturn empty HeapStatistics for uninitialized isolate.
vegorov@chromium.org [Thu, 13 Oct 2011 16:11:18 +0000 (16:11 +0000)]
Return empty HeapStatistics for uninitialized isolate.

R=danno@chromium.org

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

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

12 years agoFix handling of this in direct calls to function proxies.
rossberg@chromium.org [Thu, 13 Oct 2011 15:55:57 +0000 (15:55 +0000)]
Fix handling of this in direct calls to function proxies.
Fix & tweak some proxy-related error messages.

R=kmillikin@chromium.org
BUG=v8:1543
TEST=

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

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

12 years agoRecognize special comparisons via pattern matching on the hydrogen graph.
svenpanne@chromium.org [Thu, 13 Oct 2011 15:07:28 +0000 (15:07 +0000)]
Recognize special comparisons via pattern matching on the hydrogen graph.

Previously, comparisons against null/undefined and comparisons of the result of
typeof against a constant string were done syntactically. Now we do this via
pattern matching on the hydrogen graph, which opens up more opportunities for
better code generation, e.g. the following comparisons are now recognized to be
special:

   var bar = typeof foo;
   var baz = "undefined";
   if (bar == baz) ...

   var blah = undefined;
   if (hurz == blah) ...

If we did this handling of special cases even later at lithium generation time,
even more cases could be recognized, but this would involve bigger changes and
this CL handles most common cases.
Review URL: http://codereview.chromium.org/8242002

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

12 years agoAlways limit inlining depth to avoid taking too much time for --stress-opt runs.
fschneider@chromium.org [Thu, 13 Oct 2011 13:41:47 +0000 (13:41 +0000)]
Always limit inlining depth to avoid taking too much time for --stress-opt runs.

We run with --nolimit-inlining when --stress-opt is on.
Review URL: http://codereview.chromium.org/8267007

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

12 years agoPut store buffer verification behind a flag.
mstarzinger@chromium.org [Thu, 13 Oct 2011 12:44:52 +0000 (12:44 +0000)]
Put store buffer verification behind a flag.

R=erik.corry@gmail.com

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

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

12 years agoFixing test failures in arm and x64 due to missing implementation introduced in r9605.
yangguo@chromium.org [Thu, 13 Oct 2011 12:03:33 +0000 (12:03 +0000)]
Fixing test failures in arm and x64 due to missing implementation introduced in r9605.

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

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

12 years agoFaster slow asserts.
erik.corry@gmail.com [Thu, 13 Oct 2011 11:54:19 +0000 (11:54 +0000)]
Faster slow asserts.
Review URL: http://codereview.chromium.org/8267004

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

12 years agoRemove some asserts to speed up debug mode.
erik.corry@gmail.com [Thu, 13 Oct 2011 11:50:00 +0000 (11:50 +0000)]
Remove some asserts to speed up debug mode.
Review URL: http://codereview.chromium.org/8256012

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

12 years agoElements kind conversion in generated code (ia32).
yangguo@chromium.org [Thu, 13 Oct 2011 10:53:31 +0000 (10:53 +0000)]
Elements kind conversion in generated code (ia32).

BUG=
TEST=

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

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

12 years agoPreparing push to trunk for 3.7.0
rossberg@chromium.org [Thu, 13 Oct 2011 09:40:55 +0000 (09:40 +0000)]
Preparing push to trunk for 3.7.0
Review URL: http://codereview.chromium.org/8262010

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

12 years agoMIPS: port all relevant commits since the new-gc was landed.
danno@chromium.org [Thu, 13 Oct 2011 08:00:10 +0000 (08:00 +0000)]
MIPS: port all relevant commits since the new-gc was landed.

This ports the following list of commits to mips. It is provided in this form
so that the mips port of the new-gc can be easily tested on your end.

This must be downloaded or landed after http://codereview.chromium.org/8106002
This is based on r9585. With these two mips commits, all tests are passing.

9319    Fix a harmless assert and a genuine bug in the GC-safety of stub generation ...
9329    ARM: Pregenerate some stubs that we call from other stubs.
9335    Initialize pre-allocated fields of JSObject with undefined.
9344    Put back the asserts in RememberedSetHelper, but correct this time
9370    Reorganize object type enum, such that proxies are no longer in the middle...
9392    Basic support for tracking smi-only arrays on ia32.
9402    Notify collector about lazily deoptimized code objects.
9411    Porting r9392 to arm (smi-only arrays).
9418    Small refactor to KeyedStoreIC::GenerateGeneric to make it slightly faster.
9447    Tighten up assertions checking GC-safety of stub calls.
9449    Record function call targets, use them for inlining.
9459    Make sure we don't flush the pregenerated stubs, since they need to b
9461    Fix the build on ARM
9466    Move the is_pregenerated flag so it does not overlap other flags....
9468    Fix the no-VFP3 build on ARM.
9475    Pass correct anchor_slot for EMBEDDED_OBJECT pointers from
9490    Adjust assertions in UpdateSlot to match UpdatePointer in PointersUpdatingVisitor.
9511    Clean list of external references from internal objects like the hole value.

9514    Simplify compares in KeyedStoreIC::GenerateGeneric.
9531    Porting r9456 to arm (Optimize KeyedStoreGeneric for Smi arrays).
9541    Fix load of potentially eval-shadowed let bindings.
9542    Fast allocation of block contexts.
9553    Activate smi-only optimizations for large array literals.

9575    Move declaration of SerializedScopeInfo from variables.h to objects.h
9577    Track elements_kind transitions in KeyedStoreICs.
9583    Fixing a bug in arm as pointed out in issue 1759.
9584    Refactor and fix polymorphic KeyedStoreIC creation.

BUG=
TEST=

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

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

12 years agoMIPS: port Merge experimental/gc branch to the bleeding_edge.
danno@chromium.org [Thu, 13 Oct 2011 07:35:38 +0000 (07:35 +0000)]
MIPS: port Merge experimental/gc branch to the bleeding_edge.

Simplified based on Michael's change Refactor how embedded pointers are visited. (9597)

Ported r9328 (bdc13b7)

BUG=
TEST=

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

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

12 years agoChange type=settings to type=none for gyp targets
jkummerow@chromium.org [Thu, 13 Oct 2011 07:30:54 +0000 (07:30 +0000)]
Change type=settings to type=none for gyp targets

TEST=Compiling Chromium with -Duse_system_v8 no longer prints a GYP warning about "invalid type 'settings'".

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

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

12 years agoFixing bug caused by missing smi-tag.
yangguo@chromium.org [Wed, 12 Oct 2011 16:00:59 +0000 (16:00 +0000)]
Fixing bug caused by missing smi-tag.

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

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

12 years agoRefactor how embedded pointers are visited.
mstarzinger@chromium.org [Wed, 12 Oct 2011 15:43:41 +0000 (15:43 +0000)]
Refactor how embedded pointers are visited.

This refactoring (almost) gets rid of the requirement to get the target
object address for an object pointer embedded in code objects. This is
not possible on MIPS as pointers are encoded using two instructions. All
usages of RelocInfo::target_object_address() are (almost) obsoleted by
this change. The serializer still uses it, so MIPS will not yet work
with snapshots turned on.

R=danno@chromium.org,vegorov@chromium.org

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

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

12 years agoFix special handling of DefineOwnProperty on arrays.
mstarzinger@chromium.org [Wed, 12 Oct 2011 14:47:13 +0000 (14:47 +0000)]
Fix special handling of DefineOwnProperty on arrays.

According to the ES5 spec the implementation of DefineOwnProperty() has
to special case handling of arrays. This is a preliminary implementation
correctly handling definition of array index properties, defining length
properties is not completely covered yet.

R=rossberg@chromium.org
TEST=test262

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

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

12 years agoTentatively enabling string slices.
yangguo@chromium.org [Wed, 12 Oct 2011 12:30:30 +0000 (12:30 +0000)]
Tentatively enabling string slices.

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

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

12 years agoIntroduce collective --harmony flag.
rossberg@chromium.org [Wed, 12 Oct 2011 12:23:06 +0000 (12:23 +0000)]
Introduce collective --harmony flag.
Shorten --harmony-block-scoping to --harmony-scoping.

R=keuchel@chromium.org
BUG=
TEST=

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

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

12 years agoRuntime_NotifyDeoptimized should search for function activation in all thread stacks.
vegorov@chromium.org [Wed, 12 Oct 2011 10:35:42 +0000 (10:35 +0000)]
Runtime_NotifyDeoptimized should search for function activation in all thread stacks.

R=fschneider@chromium.org
BUG=v8:1763

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

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

12 years agoFix free list node ending up on evacuation candidate.
mstarzinger@chromium.org [Tue, 11 Oct 2011 16:50:58 +0000 (16:50 +0000)]
Fix free list node ending up on evacuation candidate.

This is a temporary fix which avoids compaction when incremental marking
is restarted during an old-space-step. That could turn the page that
holds the chosen free list node into an evacuation candidate. It could
also cause several other inconsistencies if it happens during scavenge.

R=vegorov@chromium.org

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

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

12 years agoRefactor and fix polymorphic KeyedStoreIC creation
jkummerow@chromium.org [Tue, 11 Oct 2011 16:02:45 +0000 (16:02 +0000)]
Refactor and fix polymorphic KeyedStoreIC creation

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

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

12 years agoFixing a bug in arm as pointed out in issue 1759.
yangguo@chromium.org [Tue, 11 Oct 2011 15:56:06 +0000 (15:56 +0000)]
Fixing a bug in arm as pointed out in issue 1759.

BUG=v8:1759

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

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

12 years agoNew flag --stress-compaction
erik.corry@gmail.com [Tue, 11 Oct 2011 15:52:15 +0000 (15:52 +0000)]
New flag --stress-compaction
Review URL: http://codereview.chromium.org/8234002

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