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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
yangguo@chromium.org [Thu, 27 Oct 2011 14:19:22 +0000 (14:19 +0000)]
Tiny improvements on fast element conversion loops in ia32 and x64.
Review URL: http://codereview.chromium.org/
8403035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9820
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 27 Oct 2011 14:03:32 +0000 (14:03 +0000)]
Prepare push to trunk. Now working on 3.7.3
Review URL: http://codereview.chromium.org/
8407001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9819
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Thu, 27 Oct 2011 13:08:51 +0000 (13:08 +0000)]
Use StrictModeFlag in preparser and preparse data.
Review URL: http://codereview.chromium.org/
8396040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9818
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 27 Oct 2011 12:12:53 +0000 (12:12 +0000)]
Revert r9805.
It did not fix the original problem, but instead introduced new ones.
R=vegorov@chromium.org
Review URL: http://codereview.chromium.org/
8404037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9817
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 27 Oct 2011 11:11:59 +0000 (11:11 +0000)]
Fixing dead code in empty array init.
TEST=set JSArray::kPreallocatedArrayElements to larger than 4.
Review URL: http://codereview.chromium.org/
8381014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9816
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 27 Oct 2011 09:21:15 +0000 (09:21 +0000)]
MIPS: Handlify CompileLoad and CompileStore
Port the following 3 stub-cache commits:
r9788 (
67147b7) Handlify CompileLoadGlobal, CompileLoadElement, CompileLoadPolymorphic.
r9791 (
b19c694) Handlify simple functions of [keyed] store stub compiler.
r9803 (
e0c3c89) Handlify CompileStoreCallback, CompileStoreInterceptor.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8404016
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9815
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 27 Oct 2011 07:59:12 +0000 (07:59 +0000)]
Fixing performance regression in issue 1787.
BUG=v8:1787
Review URL: http://codereview.chromium.org/
8390050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9812
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Thu, 27 Oct 2011 07:50:40 +0000 (07:50 +0000)]
Mark Test262 test cases for known issue 1790.
R=lrn@chromium.org
BUG=v8:1790
TEST=test262/15.4.4.22-9-9
Review URL: http://codereview.chromium.org/
8396042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9811
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 27 Oct 2011 07:10:25 +0000 (07:10 +0000)]
Skip live edit debug tests, these are flaky because in the case of osr we will get wrong frame heights.
Review URL: http://codereview.chromium.org/
8401029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9808
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 27 Oct 2011 05:27:38 +0000 (05:27 +0000)]
Prepare push to trunk. Now working on 3.7.2
Review URL: http://codereview.chromium.org/
8390049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9807
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 26 Oct 2011 15:02:00 +0000 (15:02 +0000)]
MIPS: port Implement for-in loop for proxies.
Port r9760 (
a1c4dc80)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8396029
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9806
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 26 Oct 2011 14:05:18 +0000 (14:05 +0000)]
Fix bug in lazy deoptimization after HInvokeFunction.
The full code generator expects the function expression on top
of the stack until after the all. We have to emit the call + the
corresponding simulate before dropping it in the hydrogen code.
BUG=v8:1789
Review URL: http://codereview.chromium.org/
8391042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9805
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 26 Oct 2011 12:51:07 +0000 (12:51 +0000)]
Remove special-casing of calls to RegExp test and exec methods with no argument.
Matches new JSC behavior. Fix issue 75740.
BUG=75740
TEST=mjsunit/regexp-static
Review URL: http://codereview.chromium.org/
6677020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9804
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 26 Oct 2011 12:35:12 +0000 (12:35 +0000)]
Handlify CompileStoreCallback, CompileStoreInterceptor.
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8390045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9803
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 26 Oct 2011 12:35:10 +0000 (12:35 +0000)]
MIPS: port Refactor and clean up array allocation across platforms.
Port r9747 (
dc33375)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8395030
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9802
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 26 Oct 2011 12:23:40 +0000 (12:23 +0000)]
Fix identity hash code function to respect flag.
The flag passed to JSObject::GetIdentityHash() was not respected so far
and an indentity hash code was generated even when the flag requested
not to do so. This could lead to a rare corner cases (for which a test
case was added) where a GC request would have been dropped.
R=rossberg@chromium.org
TEST=cctest/test-dictionary
Review URL: http://codereview.chromium.org/
8390047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9801
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 26 Oct 2011 11:34:11 +0000 (11:34 +0000)]
Fixing issue 1788.
BUG=v8:1788
Review URL: http://codereview.chromium.org/
8396037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9792
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 26 Oct 2011 10:45:24 +0000 (10:45 +0000)]
Handlify simple functions of [keyed] store stub compiler.
Handlified functions: CompileStoreField, CompileStoreGlobal, CompileStoreElement, CompileStorePolymorphic.
Based on
8375053.
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8393003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9791
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 26 Oct 2011 10:41:52 +0000 (10:41 +0000)]
Fix Error.prototype.toString to be ES5 conform.
R=lrn@chromium.org
TEST=test262/15.11.4.4-8-1,mjsunit/error-tostring
Review URL: http://codereview.chromium.org/
8341021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9790
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 26 Oct 2011 10:31:06 +0000 (10:31 +0000)]
Fix bug in inlining call-as-function when inlining multiple levels deep.
This change fixes a off-by-one level error when dropping the
function from the environment. The function of the outermost
environment was not dropped.
BUG=v8:1785
TEST=test/mjsunit/compiler/regress-inline-callfunctionstub.js
Review URL: http://codereview.chromium.org/
8341019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9789
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 26 Oct 2011 09:58:32 +0000 (09:58 +0000)]
Handlify CompileLoadGlobal, CompileLoadElement, CompileLoadPolymorphic.
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8375053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9788
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 26 Oct 2011 09:31:40 +0000 (09:31 +0000)]
Handle proxies in KeyedStoreIC::Store, instead of just ignoring them.
R=mstarzinger@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/
8391005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9787
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 26 Oct 2011 09:30:04 +0000 (09:30 +0000)]
MIPS: port Moved random generator state to global context.
Port r9753 (
28cd67f8)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8390032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9786
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 26 Oct 2011 09:21:36 +0000 (09:21 +0000)]
MIPS: port Handlify simple functions of [keyed] load stub compiler.
Port r9773 (
4cf7a453)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8390035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9785
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Wed, 26 Oct 2011 08:43:33 +0000 (08:43 +0000)]
MIPS: port Replace boolean indications of strict mode by an enum value.
Port r9746 (
804e4e4)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8390030
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9784
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Wed, 26 Oct 2011 08:42:15 +0000 (08:42 +0000)]
MIPS: port Block scoped const variables.
Port r9764 (
9b9689d5)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8390033
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9783
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 26 Oct 2011 08:32:37 +0000 (08:32 +0000)]
MIPS: port Handlify CallStubCompiler::CompileCallField.
Port r9769 (
db287698)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8394028
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9782
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 26 Oct 2011 08:17:24 +0000 (08:17 +0000)]
Land two MIPS changes.
Issue
8368021: MIPS: port Fix compilation on ARM and x64 broken by r9738
Issue
8378001: MIPS: port Avoid static initializers in assember-arm.h.
Review URL: http://codereview.chromium.org/
8341048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9781
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 26 Oct 2011 06:37:57 +0000 (06:37 +0000)]
Make the irregexp interpreter throw on stack overflow.
BUG=v8:904
Review URL: http://codereview.chromium.org/
8387027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9780
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 25 Oct 2011 16:11:53 +0000 (16:11 +0000)]
Temporarily skip failing test to make sure builders cycle green.
R=mstarzinger@chromium.org
Review URL: http://codereview.chromium.org/
8393005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9779
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 25 Oct 2011 15:39:55 +0000 (15:39 +0000)]
Take loop side-effects into account when collecting side-effects on the path between two blocks.
R=fschneider@chromium.org
BUG=100409
TEST=test/mjsunit/regress/regress-100409.js
Review URL: http://codereview.chromium.org/
8395002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9778
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 25 Oct 2011 14:14:56 +0000 (14:14 +0000)]
Implement Harmony sets and maps.
This implementation extends the internal ObjectHashTable to be able to
hold arbitrary objects (e.g. Smis, Strings, ...) as keys by applying
specialized hashing functions to primitive types. Equality of keys is
defined using the internal SameValue function.
R=rossberg@chromium.org
BUG=v8:1622
TEST=mjsunit/harmony/collections
Review URL: http://codereview.chromium.org/
8372027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9777
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 25 Oct 2011 13:43:19 +0000 (13:43 +0000)]
Print out line number and extension name when compilation of an extension fails. This fixes issue 305.
Review URL: http://codereview.chromium.org/
8332029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9776
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erikcorry [Tue, 25 Oct 2011 13:34:52 +0000 (13:34 +0000)]
Remove superfluous assert.
Review URL: http://codereview.chromium.org/
8332028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9775
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 25 Oct 2011 13:27:46 +0000 (13:27 +0000)]
Move some heap verification code in under the --verify-heap flag to speed
up debug mode tests.
Review URL: http://codereview.chromium.org/
8381040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9774
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 25 Oct 2011 12:26:07 +0000 (12:26 +0000)]
Handlify simple functions of [keyed] load stub compiler.
Handlified functions: CompileLoadNonexistent, CompileLoadField,
CompileLoadConstant, CompileLoadArrayLength, CompileLoadStringLength,
CompileLoadFunctionPrototype.
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8383033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9773
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 25 Oct 2011 12:13:06 +0000 (12:13 +0000)]
Speed up debug mode GC.
Review URL: http://codereview.chromium.org/
8380038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9772
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 25 Oct 2011 11:02:29 +0000 (11:02 +0000)]
Get back the performance lost in context creation in 9744.
Review URL: http://codereview.chromium.org/
8332026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9771
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 25 Oct 2011 09:30:52 +0000 (09:30 +0000)]
Fix presubmit error introduced by r9767.
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8383031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9770
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 25 Oct 2011 09:24:49 +0000 (09:24 +0000)]
Handlify CallStubCompiler::CompileCallField.
This function relies on a number of helpers for checking prototypes and
probing dictionaries. It is not possible to wrap these helpers to retry
after allocation failure in a safe way---the assembler has no way to undo
what it has already assembled.
These functions have all been duplicated with handle and raw versions. The
raw versions will eventually be removed completely.
R=ulan@chromium.org,vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8332003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9769
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 25 Oct 2011 09:07:09 +0000 (09:07 +0000)]
CompileArrayPushCall should not use context register as a scratch.
R=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/
8330026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9768
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 25 Oct 2011 09:06:07 +0000 (09:06 +0000)]
Provide fast-path for CHECK macro.
Makes debug build 20% faster.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8256011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9767
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00