platform/upstream/v8.git
10 years agoFix heap verifier for partially constructed arrays when allocation folding is off.
hpayer@chromium.org [Fri, 13 Sep 2013 11:47:54 +0000 (11:47 +0000)]
Fix heap verifier for partially constructed arrays when allocation folding is off.

BUG=
R=mvstanton@chromium.org

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

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

10 years agoDon't update ICs when the receiver has a deprecated map.
verwaest@chromium.org [Fri, 13 Sep 2013 11:14:02 +0000 (11:14 +0000)]
Don't update ICs when the receiver has a deprecated map.

R=ulan@chromium.org

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

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

10 years agoremove OS::StackWalk
dcarney@chromium.org [Fri, 13 Sep 2013 10:35:35 +0000 (10:35 +0000)]
remove OS::StackWalk

R=bmeurer@chromium.org
BUG=

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

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

10 years agoremove getcurrent from stubs
dcarney@chromium.org [Fri, 13 Sep 2013 10:23:04 +0000 (10:23 +0000)]
remove getcurrent from stubs

R=svenpanne@chromium.org
BUG=

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

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

10 years agoUse regular map-checks to guard string-length loading.
verwaest@chromium.org [Fri, 13 Sep 2013 09:57:48 +0000 (09:57 +0000)]
Use regular map-checks to guard string-length loading.

R=ulan@chromium.org

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

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

10 years agoHandlify JSObject::DeepCopy method.
mstarzinger@chromium.org [Fri, 13 Sep 2013 09:51:11 +0000 (09:51 +0000)]
Handlify JSObject::DeepCopy method.

R=verwaest@chromium.org

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

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

10 years agoARM: Improve SeqStringSetChar implementation.
bmeurer@chromium.org [Fri, 13 Sep 2013 09:13:58 +0000 (09:13 +0000)]
ARM: Improve SeqStringSetChar implementation.

TEST=/test/mjsunit/lithium/SeqStringSetChar.js
R=bmeurer@chromium.org

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

Patch from Rodolph Perfetta <rodolph.perfetta@gmail.com>.

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

10 years agoRevert "Every place where AllocationMemento is initialized with an"
mvstanton@chromium.org [Fri, 13 Sep 2013 08:44:37 +0000 (08:44 +0000)]
Revert "Every place where AllocationMemento is initialized with an"

This reverts r16705 for breaking Windows build.

R=dslomov@chromium.org

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

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

10 years agoEvery place where AllocationMemento is initialized with an
mvstanton@chromium.org [Fri, 13 Sep 2013 08:13:17 +0000 (08:13 +0000)]
Every place where AllocationMemento is initialized with an
AllocationSite is now checked to be sure a valid Site goes in.
This is temporary code to diagnose chromium bug 284577.

BUG=
R=mstarzinger@chromium.org

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

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

10 years agoArray "splice" changeRecords should be emitted after the performChange has completed...
rossberg@chromium.org [Fri, 13 Sep 2013 08:13:02 +0000 (08:13 +0000)]
Array "splice" changeRecords should be emitted after the performChange has completed (per spec)

R=rossberg@chromium.org
BUG=

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

Patch from Rafael Weinstein <rafaelw@chromium.org>.

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

10 years agoAllow implicit conversion of acceptList values to string during Object.observe
rossberg@chromium.org [Fri, 13 Sep 2013 08:09:39 +0000 (08:09 +0000)]
Allow implicit conversion of acceptList values to string during Object.observe

R=rossberg@chromium.org
BUG=

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

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

10 years agoUse xorps to break the cvtsi2sd unnecessary dependence due to its partially written
yangguo@chromium.org [Fri, 13 Sep 2013 07:59:48 +0000 (07:59 +0000)]
Use xorps to break the cvtsi2sd unnecessary dependence due to its partially written

BUG=
R=yangguo@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

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

10 years agoPrepare push to trunk. Now working on version 3.21.16.
dslomov@chromium.org [Fri, 13 Sep 2013 07:15:02 +0000 (07:15 +0000)]
Prepare push to trunk.  Now working on version 3.21.16.

R=machenbach@chromium.org

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

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

10 years agoMIPS: Bugfix: array constructors that expect a type feedback cell that points to...
palfia@homejinni.com [Fri, 13 Sep 2013 00:10:24 +0000 (00:10 +0000)]
MIPS: Bugfix: array constructors that expect a type feedback cell that points to an AllocationSite were being passed the undefined object in some cases. Clearly separate the cases where we have an AllocationSite and where we don't in the general ArrayConstructorStub.

Port r16693 (0852d4ab)

BUG=
R=gergely@homejinni.com

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

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

10 years agoMIPS: Refactoring PropertyCallbackInfo & FunctionCallbackInfo, step 1.
palfia@homejinni.com [Fri, 13 Sep 2013 00:04:29 +0000 (00:04 +0000)]
MIPS: Refactoring PropertyCallbackInfo & FunctionCallbackInfo, step 1.

Port r16688 (fcae0bcf)

Original commit message:
The goal is to unify PropertyCallbackInfo and FunctionCallbackInfo so that they
contain the same fields.

The field order will be:
holder
isolate
return value default value
return value
data
this

This step 1 reorders the PropertyCallbackInfo fields.

BUG=
R=gergely@homejinni.com

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

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

10 years agoReland Handle non-JSObject heap objects using slow-path IC stub guarded by the map.
verwaest@chromium.org [Thu, 12 Sep 2013 22:04:04 +0000 (22:04 +0000)]
Reland Handle non-JSObject heap objects using slow-path IC stub guarded by the map.

R=mstarzinger@chromium.org

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

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

10 years agoMIPS: Improve code generation for the HRandom instruction.
palfia@homejinni.com [Thu, 12 Sep 2013 21:17:43 +0000 (21:17 +0000)]
MIPS: Improve code generation for the HRandom instruction.

Port r16684 (e0f70aa)

Original commit message:
Since the per-context random number generator is now
properly seeded upon context creation, we do not need
to check for lazy-initialization anymore, and so we
can implement the HRandom instruction w/o having to
call into the C function (which means we don't need
to MarkAsCall anymore).

TEST=cctest/test-random
BUG=
R=gergely@homejinni.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoMIPS: Fix of r16681
palfia@homejinni.com [Thu, 12 Sep 2013 20:11:26 +0000 (20:11 +0000)]
MIPS: Fix of r16681

Use v0 for return value.

BUG=
R=gergely@homejinni.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoBugfix: array constructors that expect a type feedback cell that points
mvstanton@chromium.org [Thu, 12 Sep 2013 17:59:41 +0000 (17:59 +0000)]
Bugfix: array constructors that expect a type feedback cell that points
to an AllocationSite were being passed the undefined object in some
cases. Clearly separate the cases where we have an AllocationSite and
where we don't in the general ArrayConstructorStub.

BUG=
R=mstarzinger@chromium.org

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

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

10 years agoRevert "Handle non-JSObject heap objects using slow-path IC stub guarded by the map."
verwaest@chromium.org [Thu, 12 Sep 2013 16:57:37 +0000 (16:57 +0000)]
Revert "Handle non-JSObject heap objects using slow-path IC stub guarded by the map."

TBR=mstarzinger@chromium.org

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

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

10 years agoReland "Clean up after r16292 (disable optimization for StringWrappers)."
yangguo@chromium.org [Thu, 12 Sep 2013 16:17:58 +0000 (16:17 +0000)]
Reland "Clean up after r16292 (disable optimization for StringWrappers)."

BUG=
R=ulan@chromium.org

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

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

10 years agoNumberUntagD is faster when untagging in a temp register
olivf@chromium.org [Thu, 12 Sep 2013 16:14:38 +0000 (16:14 +0000)]
NumberUntagD is faster when untagging in a temp register

BUG=
R=ulan@chromium.org

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

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

10 years agoHandle non-JSObject heap objects using slow-path IC stub guarded by the map.
verwaest@chromium.org [Thu, 12 Sep 2013 16:12:04 +0000 (16:12 +0000)]
Handle non-JSObject heap objects using slow-path IC stub guarded by the map.

BUG=chromium:280632
R=mstarzinger@chromium.org

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

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

10 years agoRefactoring PropertyCallbackInfo & FunctionCallbackInfo, step 1.
mstarzinger@chromium.org [Thu, 12 Sep 2013 14:32:14 +0000 (14:32 +0000)]
Refactoring PropertyCallbackInfo & FunctionCallbackInfo, step 1.

The goal is to unify PropertyCallbackInfo and FunctionCallbackInfo so that they
contain the same fields.

The field order will be:
holder
isolate
return value default value
return value
data
this

This step 1 reorders the PropertyCallbackInfo fields.

BUG=
R=dcarney@chromium.org, mstarzinger@chromium.org

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

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

Patch from Marja Hölttä <marja@chromium.org>.

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

10 years agoSnapshot i18n Javascript code
jochen@chromium.org [Thu, 12 Sep 2013 13:50:38 +0000 (13:50 +0000)]
Snapshot i18n Javascript code

The previous attempt used Boolean instead of $Boolean.

BUG=v8:2745
R=mstarzinger@chromium.org

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

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

10 years agoUse trampoline or handlified JSObject::SetLocalPropertyIgnoreAttributes.
mstarzinger@chromium.org [Thu, 12 Sep 2013 13:27:42 +0000 (13:27 +0000)]
Use trampoline or handlified JSObject::SetLocalPropertyIgnoreAttributes.

R=verwaest@chromium.org

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

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

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

10 years agoFix compile error with CLANG.
titzer@chromium.org [Thu, 12 Sep 2013 13:09:33 +0000 (13:09 +0000)]
Fix compile error with CLANG.

BUG=
R=bmeurer@chromium.org

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

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

10 years agoImprove code generation for the HRandom instruction.
bmeurer@chromium.org [Thu, 12 Sep 2013 12:12:01 +0000 (12:12 +0000)]
Improve code generation for the HRandom instruction.

Since the per-context random number generator is now
properly seeded upon context creation, we do not need
to check for lazy-initialization anymore, and so we
can implement the HRandom instruction w/o having to
call into the C function (which means we don't need
to MarkAsCall anymore).

TEST=cctest/test-random
R=yangguo@chromium.org

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

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

10 years agoFirst implementation of HUnique<T> and HUniqueSet<T>, which is supposed to replace...
titzer@chromium.org [Thu, 12 Sep 2013 12:08:54 +0000 (12:08 +0000)]
First implementation of HUnique<T> and HUniqueSet<T>, which is supposed to replace UniqueValueId.

BUG=
R=rossberg@chromium.org, verwaest@chromium.org

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

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

10 years agoReland "Fix phis for non-sse2 double values"
olivf@chromium.org [Thu, 12 Sep 2013 11:54:47 +0000 (11:54 +0000)]
Reland "Fix phis for non-sse2 double values"

Remove VerifyX87StackDepth from non-debug code.

BUG=
R=verwaest@chromium.org

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

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

10 years agoSimplify installing concurrently recompiled code.
yangguo@chromium.org [Thu, 12 Sep 2013 11:30:56 +0000 (11:30 +0000)]
Simplify installing concurrently recompiled code.

Instead of overwriting the code entry of the function, we trigger
an interrupt to install the code on the main thread.

R=mstarzinger@chromium.org
BUG=

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

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

10 years agoRevert "Fix phis for non-sse2 double values"
olivf@chromium.org [Thu, 12 Sep 2013 11:18:10 +0000 (11:18 +0000)]
Revert "Fix phis for non-sse2 double values"

Need to investigate box2d regression.

BUG=
TBR=verwaest@chromium.org

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

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

10 years agoRevert "Clean up after r16292 (disable optimization for StringWrappers)."
yangguo@chromium.org [Thu, 12 Sep 2013 11:15:12 +0000 (11:15 +0000)]
Revert "Clean up after r16292 (disable optimization for StringWrappers)."

R=mstarzinger@chromium.org
BUG=

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

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

10 years agoImplement in-place rehashing of HashTable.
ulan@chromium.org [Thu, 12 Sep 2013 11:03:27 +0000 (11:03 +0000)]
Implement in-place rehashing of HashTable.

The algorithm puts elements into correct positions in  multiple iterations.
On the first iteration it tries to put elements at entries specified by
their first hash probe. On the second iteration -- by the second
hash probe, and so on. Overall it does O(k*n) memory accesses, where
k is the maximum number of probes required for an element and n is the
capacity of the hash table. The expectation is that k will be small.

R=mstarzinger@chromium.org

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

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

10 years agoClean up after r16292 (disable optimization for StringWrappers).
yangguo@chromium.org [Thu, 12 Sep 2013 10:55:57 +0000 (10:55 +0000)]
Clean up after r16292 (disable optimization for StringWrappers).

R=jochen@chromium.org
BUG=v8:2855

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

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

10 years agoARM: remove the regexp specific literal pool.
rodolph.perfetta@gmail.com [Thu, 12 Sep 2013 10:37:42 +0000 (10:37 +0000)]
ARM: remove the regexp specific literal pool.

It is replaced by a mov_label_offset(Register, Label*) instruction.

BUG=none
TEST=test/cctest/test-assembler-arm.cc
R=bmeurer@chromium.org

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

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

10 years agoRevert "Refactoring PropertyCallbackInfo & FunctionCallbackInfo, step 1."
mstarzinger@chromium.org [Thu, 12 Sep 2013 10:03:56 +0000 (10:03 +0000)]
Revert "Refactoring PropertyCallbackInfo & FunctionCallbackInfo, step 1."

TBR=marja@chromium.org

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

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

10 years agoUnnecessay SSE2 check on x64
yangguo@chromium.org [Thu, 12 Sep 2013 09:47:02 +0000 (09:47 +0000)]
Unnecessay SSE2 check on x64

BUG=
R=yangguo@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

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

10 years agoRefactoring PropertyCallbackInfo & FunctionCallbackInfo, step 1.
mstarzinger@chromium.org [Thu, 12 Sep 2013 09:09:39 +0000 (09:09 +0000)]
Refactoring PropertyCallbackInfo & FunctionCallbackInfo, step 1.

The goal is to unify PropertyCallbackInfo and FunctionCallbackInfo so that they
contain the same fields.

The field order will be:
holder
isolate
return value default value
return value
data
this

This step 1 reorders the PropertyCallbackInfo fields.

BUG=
R=dcarney@chromium.org, mstarzinger@chromium.org

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

Patch from Marja Hölttä <marja@chromium.org>.

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

10 years agoFix phis for non-sse2 double values
olivf@chromium.org [Thu, 12 Sep 2013 09:05:27 +0000 (09:05 +0000)]
Fix phis for non-sse2 double values

Since hydrogen will try to merge phi-inputs using registers, even if
the values are spilled, we cannot mark LGoto as double clobbering
instruction.

BUG=
R=verwaest@chromium.org

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

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

10 years agoReland "Deuglify V8_INLINE and V8_NOINLINE."
bmeurer@chromium.org [Thu, 12 Sep 2013 08:57:10 +0000 (08:57 +0000)]
Reland "Deuglify V8_INLINE and V8_NOINLINE."

R=dslomov@chromium.org

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

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

10 years agoPrepare push to trunk. Now working on version 3.21.15.
dslomov@chromium.org [Thu, 12 Sep 2013 08:52:29 +0000 (08:52 +0000)]
Prepare push to trunk.  Now working on version 3.21.15.

R=machenbach@chromium.org

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

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

10 years agoAdd a missing instruction to the ia32 disassembler.
olivf@chromium.org [Thu, 12 Sep 2013 07:49:03 +0000 (07:49 +0000)]
Add a missing instruction to the ia32 disassembler.

BUG=
R=verwaest@chromium.org

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

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

10 years agoRevert "Increase test timeout on slow architectures."
machenbach@chromium.org [Thu, 12 Sep 2013 07:39:44 +0000 (07:39 +0000)]
Revert "Increase test timeout on slow architectures."

This reverts commit 200c7cbdbc90ec2001ee4e0da7470cb508585e0d.

BUG=
R=bmeurer@chromium.org

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

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

10 years agoMark flaky tests for arm.
machenbach@chromium.org [Thu, 12 Sep 2013 07:38:37 +0000 (07:38 +0000)]
Mark flaky tests for arm.

Makes the whole test-api a non-tree-closer on arm.

R=bmeurer@chromium.org

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

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

10 years agoRevert "Fix leftover usage of OS::Allocate()."
mstarzinger@chromium.org [Wed, 11 Sep 2013 20:04:51 +0000 (20:04 +0000)]
Revert "Fix leftover usage of OS::Allocate()."

TBR=bmeurer@chromium.org

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

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

10 years agoAdd access check for observed objects
adamk@chromium.org [Wed, 11 Sep 2013 20:03:54 +0000 (20:03 +0000)]
Add access check for observed objects

This change is mostly straightforward: for 'normal' sorts of change records,
simply don't deliver a changeRecord to a given observer callback if an access
the callback's Context is not allowed to "GET" or "HAS" changeRecord.name on
changeRecord.object, or if ACCESS_KEYS is disallowed.

For 'splice' records, the question of whether to hand it to an observer is trickier, since
there are multiple properties involved, and multiple types of possible information leakage.
Given that access-checked objects are very rare (only two in Blink, Window and Location),
and that they are not normally used as Arrays, it seems better to simply not emit any splice
records for such objects rather than spending lots of logic to attempt to avoid information
leakage for something that may never happen.

BUG=v8:2778
R=rossberg@chromium.org

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

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

10 years agoRevert r16648, r16641, r16638 and r16637.
mstarzinger@chromium.org [Wed, 11 Sep 2013 18:30:01 +0000 (18:30 +0000)]
Revert r16648, r16641, r16638 and r16637.

Original descriptions were:
- "Refactor and cleanup VirtualMemory."
- "Fix typo."
- "Deuglify V8_INLINE and V8_NOINLINE."
- "Don't align size on allocation granularity for unaligned ReserveRegion calls."

Reasons for the revert are:
- Our mjsunit test suite slower by a factor of 5(!) in release mode.
- Flaky cctest/test-alloc/CodeRange on all architectures and platforms.
- Tankage of Sunspider by about 6% overall (unverified).

TBR=bmeurer@chromium.org

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

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

10 years agoRevert "Unify computation of load stubs in stub cache."
mstarzinger@chromium.org [Wed, 11 Sep 2013 16:27:41 +0000 (16:27 +0000)]
Revert "Unify computation of load stubs in stub cache."

TBR=verwaest@chromium.org

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

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

10 years agoUnify computation of load stubs in stub cache.
mstarzinger@chromium.org [Wed, 11 Sep 2013 15:44:09 +0000 (15:44 +0000)]
Unify computation of load stubs in stub cache.

R=verwaest@chromium.org

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

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

10 years agoRevert "Use trampoline or handlified JSObject::SetLocalPropertyIgnoreAttributes".
mstarzinger@chromium.org [Wed, 11 Sep 2013 15:16:56 +0000 (15:16 +0000)]
Revert "Use trampoline or handlified JSObject::SetLocalPropertyIgnoreAttributes".

This was reverted due to performance regressions on Sunspider and other
benchmarks due to double GCs caused by the trampoline.

R=verwaest@chromium.org

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

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

10 years agoMake handle dereference check more precise.
yangguo@chromium.org [Wed, 11 Sep 2013 15:12:27 +0000 (15:12 +0000)]
Make handle dereference check more precise.

R=mstarzinger@chromium.org
BUG=

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

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

10 years agoMIPS: remove most uses of Isolate::Current in arch specific files.
palfia@homejinni.com [Wed, 11 Sep 2013 14:36:27 +0000 (14:36 +0000)]
MIPS: remove most uses of Isolate::Current in arch specific files.

Port r16643 (b818da5)

BUG=
R=gergely@homejinni.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoMIPS: thread isolate for EntryHookTrampoline.
palfia@homejinni.com [Wed, 11 Sep 2013 14:15:18 +0000 (14:15 +0000)]
MIPS: thread isolate for EntryHookTrampoline.

Port r16630 (e045054)

BUG=
R=gergely@homejinni.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoRevert "Handlify JSObject::AddProperty method" for performance.
mstarzinger@chromium.org [Wed, 11 Sep 2013 13:42:57 +0000 (13:42 +0000)]
Revert "Handlify JSObject::AddProperty method" for performance.

TBR=verwaest@chromium.org

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

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

10 years agoTo diagnose chromium bug 284577, some additional CHECKS. TODOs are
mvstanton@chromium.org [Wed, 11 Sep 2013 13:39:11 +0000 (13:39 +0000)]
To diagnose chromium bug 284577, some additional CHECKS. TODOs are
added so these can be backed out once the cause of the bug is determined.

BUG=
R=hpayer@chromium.org

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

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

10 years agoDelete useless CompileStoreGlobal
verwaest@chromium.org [Wed, 11 Sep 2013 13:34:07 +0000 (13:34 +0000)]
Delete useless CompileStoreGlobal

StoreGlobal stubs are generated by Hydrogen now

BUG=
R=verwaest@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

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

10 years agoAdd assertion to UniqueValueId constructor.
yangguo@chromium.org [Wed, 11 Sep 2013 13:00:27 +0000 (13:00 +0000)]
Add assertion to UniqueValueId constructor.

R=verwaest@chromium.org
BUG=

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

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

10 years agoImprove alias analysis for HConstants (and fix small snafu in MustAlias).
titzer@chromium.org [Wed, 11 Sep 2013 12:59:07 +0000 (12:59 +0000)]
Improve alias analysis for HConstants (and fix small snafu in MustAlias).

BUG=
R=verwaest@chromium.org

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

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

10 years agoClean-up v8::ArrayBuffer::Allocator interface
dslomov@chromium.org [Wed, 11 Sep 2013 12:54:28 +0000 (12:54 +0000)]
Clean-up v8::ArrayBuffer::Allocator interface

BUG=v8:2823
R=bmeurer@chromium.org

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

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

10 years agoPass PC offset into runtime when compiling for OSR.
yangguo@chromium.org [Wed, 11 Sep 2013 12:39:00 +0000 (12:39 +0000)]
Pass PC offset into runtime when compiling for OSR.

R=titzer@chromium.org
BUG=

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

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

10 years agoDon't align size on allocation granularity for unaligned ReserveRegion calls.
bmeurer@chromium.org [Wed, 11 Sep 2013 11:33:18 +0000 (11:33 +0000)]
Don't align size on allocation granularity for unaligned ReserveRegion calls.

Also add additional ASSERTs to help tracking the flaky
test-alloc/CodeRange in Windows.

R=verwaest@chromium.org

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

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

10 years agoHandlify JSObject::AddProperty method.
mstarzinger@chromium.org [Wed, 11 Sep 2013 11:00:36 +0000 (11:00 +0000)]
Handlify JSObject::AddProperty method.

R=verwaest@chromium.org

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

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

10 years agothread isolate for logging calls
dcarney@chromium.org [Wed, 11 Sep 2013 10:59:39 +0000 (10:59 +0000)]
thread isolate for logging calls

R=svenpanne@chromium.org
BUG=

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

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

10 years agoImplement simplistic local alias analysis, which will be used in both check eliminati...
titzer@chromium.org [Wed, 11 Sep 2013 10:53:56 +0000 (10:53 +0000)]
Implement simplistic local alias analysis, which will be used in both check elimination and load elimination.

BUG=
R=verwaest@chromium.org

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

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

10 years agoperformChange no longer takes a |receiver| argument.
rossberg@chromium.org [Wed, 11 Sep 2013 10:52:20 +0000 (10:52 +0000)]
performChange no longer takes a |receiver| argument.

The spec omits the receiver arg with the idea arrow functions with lexical |this| will obviate the need for it.

BUG=
R=rossberg@chromium.org

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

Patch from Rafael Weinstein <rafaelw@chromium.org>.

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

10 years agoremove most uses of Isolate::Current in arch specific files
dcarney@chromium.org [Wed, 11 Sep 2013 10:51:06 +0000 (10:51 +0000)]
remove most uses of Isolate::Current in arch specific files

R=svenpanne@chromium.org
BUG=

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

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

10 years agoUse trampoline or handlified JSObject::SetLocalPropertyIgnoreAttributes.
mstarzinger@chromium.org [Wed, 11 Sep 2013 10:46:49 +0000 (10:46 +0000)]
Use trampoline or handlified JSObject::SetLocalPropertyIgnoreAttributes.

R=verwaest@chromium.org

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

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

10 years agoDeuglify V8_INLINE and V8_NOINLINE.
bmeurer@chromium.org [Wed, 11 Sep 2013 10:28:09 +0000 (10:28 +0000)]
Deuglify V8_INLINE and V8_NOINLINE.

R=dslomov@chromium.org

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

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

10 years agoFix leftover usage of OS::Allocate().
bmeurer@chromium.org [Wed, 11 Sep 2013 09:37:37 +0000 (09:37 +0000)]
Fix leftover usage of OS::Allocate().

TBR=verwaest@chromium.org

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

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

10 years agoRemove dead strings from heap.h
titzer@chromium.org [Wed, 11 Sep 2013 08:58:38 +0000 (08:58 +0000)]
Remove dead strings from heap.h
BUG=
R=svenpanne@chromium.org

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

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

10 years agoFix typo.
bmeurer@chromium.org [Wed, 11 Sep 2013 08:56:33 +0000 (08:56 +0000)]
Fix typo.

TBR=verwaest@chromium.org

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

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

10 years agoRefactor and cleanup VirtualMemory.
bmeurer@chromium.org [Wed, 11 Sep 2013 08:47:02 +0000 (08:47 +0000)]
Refactor and cleanup VirtualMemory.

Remove a lot of platform duplication, and simplify the virtual
memory implementation. Also improve readability by avoiding bool
parameters for executability (use a dedicated Executability type
instead).

Get rid of the Isolate::UncheckedCurrent() call in the platform
code, as part of the Isolate TLS cleanup.

Use a dedicated random number generator for the address
randomization, instead of messing with the per-isolate random
number generators.

TEST=cctest/test-virtual-memory
R=verwaest@chromium.org

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

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

10 years agosome random isolate threading
dcarney@chromium.org [Wed, 11 Sep 2013 08:39:38 +0000 (08:39 +0000)]
some random isolate threading

R=svenpanne@chromium.org
BUG=

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

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

10 years agoPrepare push to trunk. Now working on version 3.21.14.
hpayer@chromium.org [Wed, 11 Sep 2013 08:23:37 +0000 (08:23 +0000)]
Prepare push to trunk.  Now working on version 3.21.14.

R=yangguo@chromium.org
BUG=

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

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

10 years agoremove ISOLATE
dcarney@chromium.org [Wed, 11 Sep 2013 07:28:47 +0000 (07:28 +0000)]
remove ISOLATE

R=svenpanne@chromium.org
BUG=

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

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

10 years agomove HEAP to /test
dcarney@chromium.org [Wed, 11 Sep 2013 07:14:41 +0000 (07:14 +0000)]
move HEAP to /test

R=svenpanne@chromium.org
BUG=

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

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

10 years agothread isolate for EntryHookTrampoline
dcarney@chromium.org [Wed, 11 Sep 2013 06:56:47 +0000 (06:56 +0000)]
thread isolate for EntryHookTrampoline

R=svenpanne@chromium.org
BUG=

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

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

10 years agoThis patch implements optimized objectInfo structure which manages the set of observe...
adamk@chromium.org [Tue, 10 Sep 2013 18:13:54 +0000 (18:13 +0000)]
This patch implements optimized objectInfo structure which manages the set of observers associated with an object and the changeRecord types which they accept.

Observation in the normal case (Object.observe, default accept types, one observer) now allocates fewer objects and unobservation no longer needs to scan and splice an InternalArray -- making the combined speed of observe/unobserve about 200% faster.

This patch implements the following optimizations:

-objectInfo is initially created without any connected objects or arrays. The first observer is referenced directly by objectInfo, and when a second observer is added, changeObservers converts to a mapping of callbackPriority->observer, which allows for constant time registration/de-registration.

-observer.accept and objectInfo.performing are conceptually the same data-structure. This is now directly represented as an abstract "TypeMap" which can later be optimized to be a smi in common cases, (e.g:   https://codereview.chromium.org/19269007/).

-objectInfo observers are only represented by an object with an accept typeMap if the set of accept types is non-default

R=rossberg@chromium.org

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

Patch from Rafael Weinstein <rafaelw@chromium.org>.

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

10 years agoCheck that AllocationMementos never get scavengend.
hpayer@chromium.org [Tue, 10 Sep 2013 17:29:39 +0000 (17:29 +0000)]
Check that AllocationMementos never get scavengend.

BUG=
R=mstarzinger@chromium.org, mvstanton@chromium.org

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

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

10 years agoa small fix: DependentCode contains check against related dependency group
yangguo@chromium.org [Tue, 10 Sep 2013 16:41:46 +0000 (16:41 +0000)]
a small fix: DependentCode contains check against related dependency group

BUG=
R=ulan@chromium.org, yangguo@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

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

10 years agoRemove V8_WARN_UNUSED_RESULT for simple getters.
mstarzinger@chromium.org [Tue, 10 Sep 2013 15:03:17 +0000 (15:03 +0000)]
Remove V8_WARN_UNUSED_RESULT for simple getters.

R=bmeurer@chromium.org

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

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

10 years agoUse raw-to-handle trampoline in [Get/Set]HiddenPropertiesHashTable.
mstarzinger@chromium.org [Tue, 10 Sep 2013 14:33:06 +0000 (14:33 +0000)]
Use raw-to-handle trampoline in [Get/Set]HiddenPropertiesHashTable.

R=danno@chromium.org

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

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

10 years agoGet rid of most uses of 'Temporary macro' HEAP
dcarney@chromium.org [Tue, 10 Sep 2013 14:30:36 +0000 (14:30 +0000)]
Get rid of most uses of 'Temporary macro' HEAP

R=svenpanne@chromium.org
BUG=

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

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

10 years agothread isolate for DebugMessage
dcarney@chromium.org [Tue, 10 Sep 2013 14:26:07 +0000 (14:26 +0000)]
thread isolate for DebugMessage

R=svenpanne@chromium.org
BUG=

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

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

10 years agoARM: replace RegExpCEntryStub with DirectCEntryStub.
rodolph.perfetta@gmail.com [Tue, 10 Sep 2013 13:50:26 +0000 (13:50 +0000)]
ARM: replace RegExpCEntryStub with DirectCEntryStub.

RegExpCEntryStub is therefore removed.

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

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

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

10 years agoFix clang C++11 compiler warning.
bmeurer@chromium.org [Tue, 10 Sep 2013 13:39:53 +0000 (13:39 +0000)]
Fix clang C++11 compiler warning.

TBR=svenpanne@chromium.org

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

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

10 years agoRevert TranscendentalCacheStub changes in r16615.
olivf@chromium.org [Tue, 10 Sep 2013 13:28:21 +0000 (13:28 +0000)]
Revert TranscendentalCacheStub changes in r16615.

BUG=
R=mstarzinger@chromium.org

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

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

10 years agoMove ToInt conversions to the MacroAssembler for x64
olivf@chromium.org [Tue, 10 Sep 2013 12:37:30 +0000 (12:37 +0000)]
Move ToInt conversions to the MacroAssembler for x64

+ Prevent truncating TaggedToI from bailing out.

(This is a port of r16464)

BUG=
R=titzer@chromium.org

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

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

10 years agoFix MSVC compiler warning after commit r16612.
bmeurer@chromium.org [Tue, 10 Sep 2013 11:33:14 +0000 (11:33 +0000)]
Fix MSVC compiler warning after commit r16612.

TBR=mstarzinger@chromium.org

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

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

10 years agoInitialize forgotten Isolate member.
svenpanne@chromium.org [Tue, 10 Sep 2013 11:32:15 +0000 (11:32 +0000)]
Initialize forgotten Isolate member.

R=bmeurer@chromium.org

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

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

10 years agoIntroduce a RandonNumberGenerator class. Refactor the random/private_random uses...
bmeurer@chromium.org [Tue, 10 Sep 2013 11:13:55 +0000 (11:13 +0000)]
Introduce a RandonNumberGenerator class. Refactor the random/private_random uses in Isolate/Context.

The RandomNumberGenerator is a pseudorandom number generator
with 48-bit state. It is properly seeded using either

(1) the --random-seed if specified, or
(2) the entropy_source function if configured, or
(3) /dev/urandom if available, or
(4) falls back to Time and TimeTicks based seeding.

Each Isolate now contains a RandomNumberGenerator, which replaces
the previous private_random_seed.

Every native context still has its own random_seed. But this random
seed is now properly initialized during bootstrapping,
instead of on-demand initialization. This will allow us to cleanup
and speedup the HRandom implementation quite a lot (this is delayed
for a followup CL)!

Also stop messing with the system rand()/random(), which should
not be done from a library anyway! We probably re-seeded the
libc rand()/random() after the application (i.e. Chrome) already
seeded it (with better entropy than what we used).

Another followup CL will replace the use of the per-isolate
random number generator for the address randomization and
thereby get rid of the Isolate::UncheckedCurrent() usage in
the platform code.

TEST=cctest/test-random-number-generator,cctest/test-random
R=mstarzinger@chromium.org

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

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

10 years agoHeapProfiler: very slow ~4min "take snapshot time" for 80MB gmail heap.
loislo@chromium.org [Tue, 10 Sep 2013 11:12:35 +0000 (11:12 +0000)]
HeapProfiler: very slow ~4min "take snapshot time" for 80MB gmail heap.

The reason of that is a number of cons strings in the app.
The app constructs a json string and as a result v8 heap has
a very long chain of cons strings.

Profiler counts all these strings as plain String objects and
assign the content of the strings as node names.

It required O(n^2) time and O(n^2) memory.

Solution: I introduced two new types, kConsString and kSliced string.
They do not use the content of the string for names. So the problem disappeared.

The heap profiler usability problem will be solved on Blink side.

BUG=285770
R=yangguo@chromium.org

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

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

10 years agoRemove unused method HType::IsTagged().
titzer@chromium.org [Tue, 10 Sep 2013 11:11:26 +0000 (11:11 +0000)]
Remove unused method HType::IsTagged().

BUG=
R=bmeurer@chromium.org

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

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

10 years agoFix concurrent osr.
yangguo@chromium.org [Tue, 10 Sep 2013 11:09:22 +0000 (11:09 +0000)]
Fix concurrent osr.

InstallOptimizedCode aquires ownership on the compilation info and deletes
it on return, tearing down the attached zone.  The OptimizingCompiler
object is a zone object allocated in just that zone, so it also gets
deleted.  Effectively, InstallOptimizedCode cleans up when it's done, so
the OptimizingCompiler object it receives is invalidated afterwards.

R=titzer@chromium.org
BUG=

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

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

10 years agoAdd a ResourceConstraint for the embedder to specify that V8 is running on a memory...
svenpanne@chromium.org [Tue, 10 Sep 2013 10:57:00 +0000 (10:57 +0000)]
Add a ResourceConstraint for the embedder to specify that V8 is running on a memory constrained device.

This enables us to specialize certain operations such that we limit memory
usage on low-memory devices, without reducing performance on devices which
are not memory constrained.

BUG=chromium:280984
R=svenpanne@chromium.org

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

Patch from Ross McIlroy <rmcilroy@chromium.org>.

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

10 years agoMove Maybe template into v8.h so it can be used by SetResourceConstraints
svenpanne@chromium.org [Tue, 10 Sep 2013 10:53:33 +0000 (10:53 +0000)]
Move Maybe template into v8.h so it can be used by SetResourceConstraints

BUG=
R=svenpanne@chromium.org

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

Patch from Ross McIlroy <rmcilroy@chromium.org>.

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

10 years agorestore persistent dtor
dcarney@chromium.org [Tue, 10 Sep 2013 09:24:53 +0000 (09:24 +0000)]
restore persistent dtor

R=svenpanne@chromium.org
BUG=

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

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

10 years agoRemove HandleScope default ctor.
svenpanne@chromium.org [Tue, 10 Sep 2013 06:43:23 +0000 (06:43 +0000)]
Remove HandleScope default ctor.

BUG=chromium:236173
R=bmeurer@chromium.org, svenpanne@chromium.org

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

Patch from Marja Hölttä <marja@chromium.org>.

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

10 years agoUse PAGE_NOACCESS for guard pages in Windows.
bmeurer@chromium.org [Tue, 10 Sep 2013 05:54:15 +0000 (05:54 +0000)]
Use PAGE_NOACCESS for guard pages in Windows.

Up until now we used PAGE_GUARD for guard pages in Windows, which
will raise a STATUS_GUARD_PAGE_VIOLATION exception on first access
and grant regular access afterwards. This behavior is required to
implement automatic stack checking, or more generally to implement
applications that monitor the growth of large dynamic data structures.

However, this is not what we want for our guard pages, which are
used as a security mechanism. What we really want is PAGE_NOACCESS
here, which is the Windows-equivalent of PROT_NONE that we use on
all other platforms.

R=cdn@chromium.org

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

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