String:WriteUtf8: Add REPLACE_INVALID_UTF8 option

This patch makes String::WriteUtf8 replace invalid code points (i.e. unmatched
surrogates) with the unicode replacement character when REPLACE_INVALID_UTF8 is
set.  This is done to avoid creating invalid UTF-8 output which can lead to
compatibility issues with software requiring valid UTF-8 inputs (e.g. the
WebSocket protocol requires valid UTF-8 and terminates connections when invalid
UTF-8 is encountered).

R=dcarney@chromium.org

BUG=

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

Patch from Felix Geisendörfer <haimuiba@gmail.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
ES6: Implement Object.setPrototypeOf

http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.setprototypeof

This just exposes the internal %SetPrototype and adds all the required
type checks as specified.

BUG=v8:2675
LOG=Y
R=dslomov@chromium.org, rossberg@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Revert "ES6: Implement Object.setPrototypeOf"

This reverts commit r18685 for breaking WebKit tests.

TBR=arv@chromium.org

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
DoubleToIStub can't use ip on armv6, because the ubfx impl will clobber it

This previous change broke DoubleToIStub on armv6:
https://code.google.com/p/v8/source/detail?r=16322

The problem is that DoubleToIStub::Generate assumed that it could safely use the ip register, but on armv6 the ubfx implementation will clobber any previous value stored there.  So instead, pick another register.

Test case:
for (var i=0; i<2; i++) {
	v = 4294967295;
	v &= -2;
	print(v)
	}

This should print -2 twice, but on armv6 without this patch, it prints -2 followed by 2046.

This problem causes sunspider's bitops-nsieve-bit, crypto-md5 and crypto-sha1 tests to generate incorrect results (but the results are not checked for validity in sunspider-1.0 as available in chromium, but are checked and reported as incorrect in sunspider-1.0.2).

Thanks to Tomasz Kilarski for helping out with this.

R=bmeurer@chromium.org, rmcilroy@chromium.org

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

Patch from Mostyn Bramley-Moore <mostynb@opera.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Explicitly initialize MarkCompactCollector and ExternalStringTable

BUG=none
R=dcarney@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Enable incremental marking when --expose-gc is turned on.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Update Isolate::RequestGarbageCollection after r18691

BUG=none
R=hpayer@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18695 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Turn ArrayPush into a stub specialized on the elements kind and argc.

BUG=
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix representation requirement in HReturn.

BUG=
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
[Sheriff] Temporarily mark two mjsunit tests as flaky.

The tests are blocking the v8 lkgr. They will be unmarked again after there is infrastructure to disable them on GC stress only.

TBR=mvstanton@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
MIPS: Turn ArrayPush into a stub specialized on the elements kind and argc.

Port r18696 (6e4b51b4)

BUG=
R=gergely@homejinni.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18699 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
[Sheriff] Temporarily mark array-literal-feedback as flaky for GC stress.

The test is blocking the v8 lkgr. It will be unmarked again after there is infrastructure to disable it on GC stress only.

BUG=
TBR=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Prepare push to trunk.  Now working on version 3.24.21.

R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18701 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix invalid type assumption in GenerateNumberToString().

We don't have any type feedback in %_NumberToString(), so it's
a bug to assume Type::Number here.

R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Stay in fast enum case if the empty_slow_element_dictionary is used.
This fixes slow for-in over frozen objects.

BUG=
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18705 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Move the management of the already swept pages to MarkCompactCollector

That way, MCC doesn't need to know about the state the threads are in to
steal free memory from them.

BUG=v8:3104
R=hpayer@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Move the temporary private freelist closer to where it's used

BUG=v8:3104
R=hpayer@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18707 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add infrastructure for skipping tests in GC stress mode.

Also move the GC stress configuration from the buildbot to the test runner.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add hydrogen support for ArrayPop, and remove the handwritten call stubs.
BUG=
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@18709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Rename MarkCompactCollector::StealMemoryFromSweeperThreads to RefillFreeLists

The swept memory is now collected on the foreground thread, so it's not
stealing the memory from the threads anymore

BUG=v8:3104
R=hpayer@chromium.org
LOG=n

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

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