Commit Graph

9325 Commits

Author SHA1 Message Date
mstarzinger@chromium.org
c5c5d35967 Add more instrumentation for Code::CopyFrom crasher.
R=jkummerow@chromium.org
BUG=chromium:196330

Review URL: https://codereview.chromium.org/12937004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-19 16:48:45 +00:00
verwaest@chromium.org
002ba9c76d Turn Flags into a uint32_t typedef.
We cannot rely on C++ compilers inferring the int-type from the enum
value range. Whereas Linux/OSX find uint32_t as type for [0,MaxUInt32],
Windows insists it's int.

Update the test to execute its original intent on all platforms: 1 value
larger than max arguments, 1 smaller than max arguments (on all
platforms). This makes the test run a lot faster.

BUG=chromium:194749

Review URL: https://chromiumcodereview.appspot.com/12507010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13988 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-19 13:11:49 +00:00
yurys@chromium.org
a8e9bebabd Isolatify CPU profiler
BUG=None

Review URL: https://codereview.chromium.org/12706020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-19 12:44:10 +00:00
dcarney@chromium.org
996f5aef8b Reduce storage size of weak callbacks
R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/12588012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13986 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-19 10:06:20 +00:00
mvstanton@chromium.org
6fa9a2976f MIPS: HInnerAllocatedObject instruction allows hydrogen code to carve up allocated regions into sub objects.
Port r13928 (ff66bd4bcdb580438d96c610bcbe8852bb127908)

BUG=

Review URL: https://codereview.chromium.org/12784003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-19 08:41:37 +00:00
yurys@chromium.org
a5be5da2e8 Allow recording individual samples in addition to the aggregated CPU profiles
CPU profiler API is extended with methods that allow to retrieve individual samples from profile. Each sample is presented as a pointer to a node in the top-down profile tree. The samples will let us tie JS performance to time.

BUG=None

Review URL: https://codereview.chromium.org/12919002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-19 08:11:56 +00:00
palfia@homejinni.com
87ab8ab1ea MIPS: Allow direct allocation in old pointer space.
Port r13940 (a39765e7)

BUG=

Review URL: https://codereview.chromium.org/12413026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 17:56:35 +00:00
mstarzinger@chromium.org
859a7154bc Move context global handle creation out of Genesis.
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/12919009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 17:36:47 +00:00
mmassi@chromium.org
2416d69183 Fix induction variable detection.
Review URL: https://codereview.chromium.org/12919005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 17:36:24 +00:00
mstarzinger@chromium.org
e5db8a93df Remove obsolete "previous" field from Genesis.
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/12620019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 16:27:58 +00:00
rossberg@chromium.org
93bba581da Fix misplaced #endif
R=verwaest@chromium.org
BUG=

Review URL: https://codereview.chromium.org/12886013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 16:18:05 +00:00
rossberg@chromium.org
e36da6d219 Unbreak shared lib build.
R=verwaest@chromium.org
BUG=

Review URL: https://codereview.chromium.org/12779019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 16:04:27 +00:00
palfia@homejinni.com
311ad5de54 MIPS: Load/Store stub compilation refactoring.
Port r13954 (2ee39c27)

BUG=

Review URL: https://codereview.chromium.org/12829008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13970 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 14:42:46 +00:00
svenpanne@chromium.org
458b8ddd0a Prepare push to trunk. Now working on version 3.17.13.
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/12779018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 14:41:55 +00:00
mstarzinger@chromium.org
291450547e Add instrumentation to track down Code::CopyFrom crasher.
R=jkummerow@chromium.org
BUG=chromium:196330

Review URL: https://codereview.chromium.org/12916005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13968 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 14:31:21 +00:00
verwaest@chromium.org
ab782e585f Since v8:13964, flags is uint32, so always use cmp on ARM.
Review URL: https://chromiumcodereview.appspot.com/12693020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 14:31:08 +00:00
rossberg@chromium.org
295e74275e More useful result pretty printing for d8
For example:

d8> ["hi", 5, [2,3],Object.prototype.toString, {get a() { return a}, b: 9, set a(x) {this.b=x}}, null, undefined]
["hi", 5, [2, 3], function toString() { [native code] }, {get a() { return a}, set a(x) {this.b=x}, b: 9}, null, undefined]

Deactivated in test mode.

R=yangguo@chromium.org
BUG=

Review URL: https://codereview.chromium.org/12653003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 14:03:15 +00:00
svenpanne@chromium.org
e4e4447305 Pass Isolates explicitly in Deoptimizer-related code.
Removed a few ancient useless ASSERTs on the way. Reduced the number of train wrecks.

BUG=v8:2487

Review URL: https://codereview.chromium.org/12917002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 13:57:49 +00:00
verwaest@chromium.org
37a2e32496 Unify kMaxArguments with number of bits used to encode it.
Increase the number of bits by 1 by making Flags unsigned.

BUG=chromium:211741

Review URL: https://chromiumcodereview.appspot.com/12886008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 13:35:17 +00:00
jkummerow@chromium.org
e2cd7aa423 Fix detection of |handle_smi| case in HOptimizedGraphBuilder::HandlePolymorphicCallNamed
BUG=chromium:196583

Review URL: https://codereview.chromium.org/12620014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 12:41:52 +00:00
yangguo@chromium.org
ebcecd49af Parallel recompilation: fix off-by-one in deferred handle scope iteration.
R=jkummerow@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/12650005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 11:26:09 +00:00
mmassi@chromium.org
73e83b0b0f Handling expression decomposition and array bounds check hoisting: working code with lots of debugging PrintFs, postdominance check still missing.
Review URL: https://codereview.chromium.org/12377072

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 08:06:00 +00:00
vegorov@chromium.org
ae064fca48 When spilling live range with not register uses inside the loop try to move spilling out of the loop.
This allows to minimize amount of memory moves on the back edge.

R=danno@chromium.org
BUG=

Review URL: https://codereview.chromium.org/11437015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 13:25:54 +00:00
alph@chromium.org
9f7300043b Remove kContext node type introduced in r13936
It has been decided not to pollute node types with extra values.

Review URL: https://codereview.chromium.org//12833005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 13:07:39 +00:00
yurys@chromium.org
b3ee84d361 Remove bottom-up CPU profile
Bottom-up view of CPU profile can be restored based on top-down profile data. So there is no need to spend resources on creating both of them inside V8.

BUG=None

Review URL: https://codereview.chromium.org/12825003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 12:46:45 +00:00
svenpanne@chromium.org
3daff287fc Prepare push to trunk. Now working on version 3.17.12.
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/12831009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13955 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 12:38:26 +00:00
verwaest@chromium.org
88b8715f95 Load/Store stub compilation refactoring.
Review URL: https://chromiumcodereview.appspot.com/12426008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 12:07:35 +00:00
svenpanne@chromium.org
53310ac152 Added a version of the v8::HandleScope constructor with an Isolate and use that consistently.
I tried to limit the use of v8::Isolate::GetCurrent() and v8::internal::Isolate::Current() as much as possible, but sometimes this would have involved restructuring tests quite a bit, which is better left for a separate CL.

BUG=v8:2487

Review URL: https://codereview.chromium.org/12716010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 12:06:53 +00:00
svenpanne@chromium.org
308e665982 Pass Isolate through CompilingCallsToThisStubIsGCSafe calls
BUG=v8:2487

Review URL: https://codereview.chromium.org/12732010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 11:52:58 +00:00
yangguo@chromium.org
44c059f1c1 Parallel recompilation: fix concurrency issues.
BUG=

Review URL: https://chromiumcodereview.appspot.com/12831003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 16:35:32 +00:00
ulan@chromium.org
80f490085f ARM: Tweak ECMAToInt32VFP to address regression on Nexus 4
After r13912, we saw a small regression in Kraken crypto-aes and
crypto-ccm on Nexus 4. This patch, proposed by Rodolph Perfetta,
addresses that without regressing other platforms.

Instead of looking at the exponent of double_input and trying to figure
out if the conversion will overflow, eagerly do the VCVT and return
early unless it saturated.

BUG=none

Review URL: https://chromiumcodereview.appspot.com/12544025
Patch from Hans Wennborg <hans@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13948 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 15:28:15 +00:00
mstarzinger@chromium.org
6e86d34ba9 Allow inlining of functions containing array literals.
R=jkummerow@chromium.org
BUG=v8:1322
TEST=mjsunit/compiler/inline-literals

Review URL: https://codereview.chromium.org/12642011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 15:15:37 +00:00
svenpanne@chromium.org
aaf6340eb3 Fixed two register allocator bugs (off-by-one error/failure propagation).
Minor cleanups on the way, e.g. making sure that we never use something after an allocation failed. Style question: Should we switch to some kind of MUST_USE_RESULT-style to ensure that we handle failures consistently? Not sure...

BUG=v8:2576

Review URL: https://codereview.chromium.org/12867002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 14:42:00 +00:00
mstarzinger@chromium.org
9aa25ad1a0 Allow inlining of functions containing function literals.
R=yangguo@chromium.org
BUG=v8:1322
TEST=mjsunit/compiler/inline-literals

Review URL: https://codereview.chromium.org/10702036

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 14:29:10 +00:00
palfia@homejinni.com
3d2dc89796 MIPS: Fix test262 regression.
This regression was introduced by r13705 (fd03c7d6)

BUG=test262/data/test/suite/ch11/11.13/11.13.2

Review URL: https://codereview.chromium.org/12844005
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 11:08:05 +00:00
palfia@homejinni.com
b71352b0a0 MIPS: Fix AssertName() in MacroAssembler.
This commit fixes several debug mode test failures.

BUG=mjsunit/keyed-call-generic,mjsunit/keyed-call-ic

Review URL: https://codereview.chromium.org/12693012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 10:59:58 +00:00
palfia@homejinni.com
04d8eb8244 MIPS: Refactoring Store ICs. A first step towards polymorphic store ICs.
Port r13934 (656ce093)

BUG=

Review URL: https://codereview.chromium.org/12603003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 10:58:21 +00:00
hpayer@chromium.org
5d159d50e2 Execute a memory barrier when adding a new page to a space to synchronize access with concurrent sweepers.
BUG=

Review URL: https://codereview.chromium.org/12342017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 09:15:39 +00:00
hpayer@chromium.org
05a71fc9e4 Allow direct allocation in old pointer space.
BUG=

Review URL: https://codereview.chromium.org/12314155

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 08:32:52 +00:00
dcarney@chromium.org
fbe34d4ba5 remove latin-1 flag
R=yangguo@chromium.org
BUG=

Review URL: https://codereview.chromium.org/12700008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 20:04:50 +00:00
dcarney@chromium.org
5e1d926053 Some Utf8Length microoptimizations
R=yangguo@chromium.org
BUG=

Review URL: https://codereview.chromium.org/12783002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 19:43:45 +00:00
alph@chromium.org
1afc70a332 Fix huge heap snapshot when a heavily shared context has many variables
Prevously v8 put a link to each context variable into a function where
the variable is visible.
Because of that if there are N functions sharing a context having M variables
then N*M links were created for the snapshot.
The fix makes v8 to put the links into the context object.

BUG=145687
TEST=test-heap-snapshot/ManyLocalsInSharedContext

Review URL: https://codereview.appspot.com/7715044

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 17:38:04 +00:00
yangguo@chromium.org
a722726dc4 Parallel recompilation: fewer handle dereferences and tighter checks.
BUG=

Review URL: https://chromiumcodereview.appspot.com/12832002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 16:13:05 +00:00
verwaest@chromium.org
569d9c59b9 Refactoring Store ICs. A first step towards polymorphic store ICs.
Review URL: https://chromiumcodereview.appspot.com/12781004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 14:11:05 +00:00
svenpanne@chromium.org
8db737a583 Made AdjustAmountOfExternalAllocatedMemory an instance method of Isolate
BUG=v8:2487

Review URL: https://codereview.chromium.org/12790004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13933 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 13:15:09 +00:00
dcarney@chromium.org
9b4650e903 remove maynamedaccess checks
R=svenpanne@chromium.org
BUG=

Review URL: https://codereview.chromium.org/12822002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 13:14:25 +00:00
mvstanton@chromium.org
d9ca45b1ca In ArrayConstructor_StubFailure the transition elements kind was
ignored on allocation.

BUG=

Review URL: https://codereview.chromium.org/12767004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 13:03:59 +00:00
yangguo@chromium.org
74e7500afa Remove unused field.
BUG=

Review URL: https://chromiumcodereview.appspot.com/12789004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 11:44:07 +00:00
danno@chromium.org
cfb957af15 Use IsRuntimeEntry for RUNTIME_ENTRY comparison
Review URL: https://codereview.chromium.org/12702005
Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 11:40:26 +00:00
mvstanton@chromium.org
30ca31f470 HInnerAllocatedObject instruction allows hydrogen code to carve up
allocated regions into sub objects.

BUG=

Review URL: https://codereview.chromium.org/12812002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 11:05:48 +00:00
ulan@chromium.org
9bfc8e21d9 Prepare push to trunk. Now working on version 3.17.11.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/12827002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 09:30:31 +00:00
yangguo@chromium.org
f8d0013f78 DateField cache should check the ExternalOperand instead of ExternalReference on X64
Review URL: https://chromiumcodereview.appspot.com/12637025
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 09:28:08 +00:00
adamk@chromium.org
004452bff9 Use InternalArray in Object.getOwnPropertyNames() implementation
Review URL: https://codereview.chromium.org/12342003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 20:15:03 +00:00
yangguo@chromium.org
479e39a058 Parallel recompilation: remove interrupt for code generation.
R=jkummerow@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/12488006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 18:03:18 +00:00
verwaest@chromium.org
4cb46f4d57 Polymorphism support for numbers and strings
Necessary to support fast polymorphic toString.

Review URL: https://chromiumcodereview.appspot.com/12702002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 17:01:03 +00:00
mvstanton@chromium.org
cf373b5690 Use an efficient graph constant in CodeStubGraphBuilderBase::BuildGraph().
Improve printing for HReturn.

R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/12585004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 15:37:23 +00:00
rodolph.perfetta@gmail.com
1c6d5e4cf4 ARM: Optimsisation of ECMA ToInt32.
BUG=none
TEST=none

Review URL: https://codereview.chromium.org/12567004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 11:25:50 +00:00
svenpanne@chromium.org
1a2454d752 Consistently pass a Heap* to HashTable-related AsObject methods.
This is basically a follow-up CL to https://code.google.com/p/v8/source/detail?r=13908.

BUG=v8:2487

Review URL: https://codereview.chromium.org/12546024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 10:05:42 +00:00
mvstanton@chromium.org
f3b8a3c8a8 MIPS: To fully support hydrogen code stubs which accept a variable number of arguments, the HReturn/LReturn instruction needs to be able to determine argument count from a stack evaluation rather than as a constant from scope.
Port r13888 (33905114)

BUG=

Review URL: https://codereview.chromium.org/12414011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 09:06:23 +00:00
svenpanne@chromium.org
f2bcc90c8c Unbreak readline support.
Things are still far from being nice, the editor registration/handling in d8 is
still embarrassing. Nevertheless things work with readline support again. Fixed
a missing Locker on the way.

TBR=adamk@chromium.org

Review URL: https://codereview.chromium.org/12494010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 08:00:20 +00:00
svenpanne@chromium.org
e02315ef77 Added an Isolate parameter to some HashTable/Dictionary methods. TypeFeedbackOracle tweaks.
BUG=v8:2487

Review URL: https://codereview.chromium.org/12764003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 07:06:36 +00:00
verwaest@chromium.org
5615a1d606 Cleanup the copying of ICs to the Megamorphic Code Cache
Review URL: https://chromiumcodereview.appspot.com/12521007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 15:11:39 +00:00
palfia@homejinni.com
3e64d6905a MIPS: Fix white space matching in latin-1 strings wrt \u00a0.
Port r13898 (bcc5b57f)

BUG=

Review URL: https://codereview.chromium.org/12771005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 14:17:32 +00:00
danno@chromium.org
8dc25d2b29 Use direct jump and call instruction for X64 when the deoptimization entries are in the code range.
Review URL: https://codereview.chromium.org/11574027
Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 14:11:03 +00:00
danno@chromium.org
19badfdda5 Revert r13901 to reland with proper credit to external contributor.
TBR=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/12638011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 14:09:21 +00:00
danno@chromium.org
d616baed77 Use direct jump and call instruction for X64 when the deoptimization entries are in the code range.
Review URL: https://codereview.chromium.org/11574027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 14:05:49 +00:00
palfia@homejinni.com
9be937e6ed MIPS: fix NaN handling of Isolate::StackOverflow()
The mjsunit/stack-traces-overflow.js test fails on MIPS target as Error.stackTraceLimit = NaN; should disable stack trace messages and Isolate::StackOverflow() assumes static_cast<int>(double NaN) < 0.

MIPS has a different NaN representation than other architectures so the NaN value casted to int is positive. This patch adds an isnan() check to make the handling of NaN uniform on all architectures.

BUG=

Review URL: https://codereview.chromium.org/12600003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 13:30:39 +00:00
mstarzinger@chromium.org
b09f9bfe68 Simplify PreParser::ParsePrimaryExpression
* src/preparser.cc (PreParser::ParsePrimaryExpression): No need to check
  keywords for validity as identifiers, as ParseIdentifier (called in
  the fallthrough) will take care of it.

Covered by existing tests.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 12:44:38 +00:00
yangguo@chromium.org
b85237a0bc Fix white space matching in latin-1 strings wrt \u00a0.
R=dcarney@chromium.org
BUG=181422

Review URL: https://chromiumcodereview.appspot.com/12644008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 11:52:11 +00:00
mstarzinger@chromium.org
bbc9f5362a Fix heap snapshot creation for Harmony collections.
R=yangguo@chromium.org
BUG=v8:2535
TEST=cctest/test-api/Regress2535

Review URL: https://codereview.chromium.org/12615005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 11:31:53 +00:00
ulan@chromium.org
3e6ffe7362 Fix assert in Page::Initialize.
R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11275229

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 11:01:00 +00:00
mstarzinger@chromium.org
bbb30a788b Consistently unlink evacuation candidates before sweeping.
R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/12449008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 10:11:57 +00:00
palfia@homejinni.com
2a57539417 MIPS: Unify deoptimizer for stub failure trampoline frames.
Port r13887 (6d146270)

Original commit message:
This unifies the translation of a compiled stub frame to a stub failure
trampoline frame. Only the frame's register allocation is different on
each architecture and can be factored out.

BUG=

Review URL: https://codereview.chromium.org/12756002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 09:58:45 +00:00
palfia@homejinni.com
6c17947f3c MIPS: Fix debug mode related porting mistakes.
This commit fixes bugs in commit r13874 and in r13876.

BUG=

Review URL: https://codereview.chromium.org/12454010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 09:56:51 +00:00
svenpanne@chromium.org
e44d3b7a87 Fixed register allocation corner case.
The predicate CanBeSpilled had a bug, prohibiting the necessary spilling and
correct splitting of live ranges. Removed a redundant assertion immediately done
by the callee anyway.

Thanks to Slava for help with that issue and the entertaining historical
background of the whole story... ;-)

BUG=177883

Review URL: https://codereview.chromium.org/12631012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 09:49:00 +00:00
jkummerow@chromium.org
00df65117d In the absence of type feedback, pessimistically force Tagged representation for UnaryAdd
BUG=v8:2527

Review URL: https://codereview.chromium.org/12390026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 08:42:07 +00:00
mvstanton@chromium.org
1691f43b8b To fully support hydrogen code stubs which accept a variable number of arguments,
the HReturn/LReturn instruction needs to be able to determine argument count
from a stack evaluation rather than as a constant from scope.

R=danno@chromium.org
BUG=

Review URL: https://codereview.chromium.org/12613004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 21:07:55 +00:00
mstarzinger@chromium.org
0cfe1dce9e Unify deoptimizer for stub failure trampoline frames.
This unifies the translation of a compiled stub frame to a stub failure
trampoline frame. Only the frame's register allocation is different on
each architecture and can be factored out.

R=danno@chromium.org

Review URL: https://codereview.chromium.org/12379045

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 16:18:50 +00:00
hpayer@chromium.org
fffadaf9ba Unlink evacuation candidates from list of pages before starting sweeper threads.
Removed FinalizeSweeping().

BUG=

Review URL: https://codereview.chromium.org/12499004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 14:41:21 +00:00
mstarzinger@chromium.org
38cc926a7e Ensure runtime functions have a NoHandleAllocation scope.
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/12518004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 14:11:58 +00:00
svenpanne@chromium.org
09baca5ad6 Prepare push to trunk. Now working on version 3.17.10.
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/12695002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 13:12:50 +00:00
mstarzinger@chromium.org
d70523dce6 Restore Function()'s expected string representation.
R=rossberg@chromium.org
BUG=v8:2470
TEST=mjsunit/regress/regress-2470

Review URL: https://codereview.chromium.org/12687002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 11:47:20 +00:00
palfia@homejinni.com
fade1cc9bf MIPS: Unify grow mode and stub kind
Port r13850 (bb94d408)

Original commit message:
In the process, ensure that transition-causing element stores handle all cases of the transitioned receiver map.

BUG=

Review URL: https://codereview.chromium.org/12568002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 00:55:24 +00:00
palfia@homejinni.com
bb380cf971 MIPS: Cleaned up CpuFeature scope handling.
Port r13823 (cb37ab63)

BUG=

Review URL: https://codereview.chromium.org/12424004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 00:54:19 +00:00
palfia@homejinni.com
4c91b74232 MIPS: Make IC patching resilient to flushing of the original target() ic.
Port r13831 (52d6fd70)

BUG=

Review URL: https://codereview.chromium.org/12559003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 00:52:37 +00:00
palfia@homejinni.com
ffcc4de0d3 MIPS: ES6 symbols: Allow symbols as property names
Port r13811 (0e64f280)

Original commit message:
Since symbols and strings share a common representation, most of this change is about consistently replacing 'String' with 'Name' in all places where property names are expected. In particular, no new logic at all is necessary for maps, property dictionaries, or transitions. :) The only places where an actual case distinction is needed have to do with generated type checks, and with conversions of names to strings (especially in logger and profiler).

Left in some TODOs wrt to the API: interceptors and native getters don't accept symbols as property names yet, because that would require extending the external v8.h.

(Baseline CL: https://codereview.chromium.org/12296026/)

BUG=

Review URL: https://codereview.chromium.org/12561003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 00:49:28 +00:00
palfia@homejinni.com
8312b895f3 MIPS: Polymorphism support for load IC.
Port r13801 (6de52924)

BUG=

Review URL: https://codereview.chromium.org/12560004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 00:46:45 +00:00
palfia@homejinni.com
fc3ff54042 MIPS: Fixed ASSERT in commit r13807.
BUG=

Review URL: https://codereview.chromium.org/12506006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 00:44:52 +00:00
palfia@homejinni.com
f4abb7afc6 MIPS: ES6 symbols: Implement Symbol intrinsic and basic functionality
Port r13786 (b5e7a82a)

Original commit message:
- Add --harmony-symbols flag.
- Add Symbol constructor; allow symbols as (unreplaced) return value from constructors.
- Introduce %CreateSymbol and %_IsSymbol natives and respective instructions.
- Extend 'typeof' code generation to handle symbols.
- Extend CompareIC with a UNIQUE_NAMES state that (uniformly) handles internalized strings and symbols.
- Property lookup delegates to SymbolDelegate object for symbols, which only carries the toString method.
- Extend Object.prototype.toString to recognise symbols.

Per the current draft spec, symbols are actually pseudo objects that are frozen with a null prototype and only one property (toString). For simplicity, we do not treat them as proper objects for now, although typeof will return "object". Only property access works as if they were (frozen) objects (via the internal delegate object).

(Baseline CL: https://codereview.chromium.org/12223071/)

BUG=

Review URL: https://codereview.chromium.org/12447009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 00:42:59 +00:00
mstarzinger@chromium.org
25acd805f5 Reintroduce lost space in r13867.
R=rossberg@chromium.org

Review URL: https://codereview.chromium.org/12449004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 16:59:18 +00:00
yangguo@chromium.org
5afa1a0d3a Avoid bool to Oddball conversions by being lazy.
R=svenpanne@chromium.org
BUG=v8:2491

Review URL: https://chromiumcodereview.appspot.com/12459011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 16:22:19 +00:00
yangguo@chromium.org
91d9af5ed3 log: add %p option to --logfile, expands to pid
Review URL: https://chromiumcodereview.appspot.com/12093008
Patch from Ben Noordhuis <info@bnoordhuis.nl>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 16:19:51 +00:00
mstarzinger@chromium.org
4b0395cc23 Harden Function()'s parsing of function literals.
R=rossberg@chromium.org
BUG=v8:2470
TEST=mjsunit/regress/regress-2470

Review URL: https://codereview.chromium.org/12613007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 15:46:14 +00:00
ulan@chromium.org
c0d7aa16c2 Prepare push to trunk. Now working on version 3.17.9.
R=yangguo@chromium.org

Review URL: https://chromiumcodereview.appspot.com/12457014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 15:13:03 +00:00
dcarney@chromium.org
da814adfeb fix uninitialized variable
R=ulan@chromium.org
BUG=

Review URL: https://codereview.chromium.org/12566004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 14:01:42 +00:00
hpayer@chromium.org
b9989623a7 Added pretenuring of array literals test.
BUG=

Review URL: https://codereview.chromium.org/12607003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 14:00:53 +00:00
dcarney@chromium.org
25058ddd85 Runtime version of declarative native accessors.
R=svenpanne@chromium.org
BUG=

Review URL: https://codereview.chromium.org/12297012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 11:42:58 +00:00
yangguo@chromium.org
3a497dfd51 Insert missing type cast in JSON.stringify.
R=dcarney@chromium.org
BUG=v8:2570

Review URL: https://chromiumcodereview.appspot.com/12599003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 09:58:27 +00:00
hpayer@chromium.org
2c9789e17f Integrate concurrent sweeping with incremental marking.
BUG=

Review URL: https://codereview.chromium.org/12527011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 09:27:49 +00:00
yurys@chromium.org
250edbdc64 Revert "Send SIGPROF signals on the profiler event processor thread"
This reverts commit r13735 as CPU profiler data is inaccurate after that change.

BUG=v8:2571

Review URL: https://codereview.chromium.org/12592002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 09:12:48 +00:00