dcarney@chromium.org
02c02fe567
Reland r18714 'Unify calling to GenerateFastApiCallBody before stubbing it'
...
TBR=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/144543004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-23 08:14:00 +00:00
bmeurer@chromium.org
ea0c68df5a
Add jarin to OWNERS file.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/129873023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-23 07:55:58 +00:00
bmeurer@chromium.org
0999eec017
Fix compilation on x64 architectures
...
Contributed by Mathias Bynens <mathiasb@opera.com>.
BUG=v8:3110
LOG=Y
R=bmeurer@chromium.org , jarin@chromium.org
Review URL: https://codereview.chromium.org/143003007
Patch from Mathias Bynens <mathiasb@opera.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-23 06:31:05 +00:00
danno@chromium.org
f9ff6bf015
Add missing OWNERs
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/143943006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18758 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 15:36:00 +00:00
dslomov@chromium.org
2f005e1384
Fix clang build.
...
See http://blog.llvm.org/2009/12/dreaded-two-phase-name-lookup.html .
TBR=rossberg@chromium.org
Review URL: https://codereview.chromium.org/134643025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 15:06:36 +00:00
verwaest@chromium.org
c478b6dc60
Ensure we don't overwrite transitions in SetPropertyIgnoreAttributes.
...
BUG=326155
LOG=y
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/134733011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 14:02:00 +00:00
jochen@chromium.org
9ba4b74e1d
Fix invalid memory access when initializing the command line in d8
...
BUG=none
R=dcarney@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/143983012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18753 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 13:59:05 +00:00
bmeurer@chromium.org
e5f1ac1ded
Get rid of the unused native code StringAddStub.
...
BUG=v8:2990
LOG=n
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/144023009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 13:48:05 +00:00
palfia@homejinni.com
787aa693e3
MIPS: Add missing cctests of DoubleToIStub (r16322).
...
BUG=
R=jkummerow@chromium.org , plind44@gmail.com
Review URL: https://codereview.chromium.org/143453003
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18751 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 13:44:00 +00:00
verwaest@chromium.org
f30330325e
Reland (and fix) "Add hydrogen support for ArrayPop, and remove the handwritten call stubs."
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/144913003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18749 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 13:22:58 +00:00
hpayer@chromium.org
1474d0510f
Increase the number of allocations in OptimizedPretenuringdoubleArrayLiterals test to make sure that pretenuring decisions are not flaky on the tests bots.
...
BUG=
Review URL: https://codereview.chromium.org/129783006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 12:59:25 +00:00
bmeurer@chromium.org
c06d248248
Refactor fast path for empty constant strings in BinaryOp.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/143003005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 12:30:00 +00:00
dslomov@chromium.org
33d7e64b51
ES6: Implement Object.setPrototypeOf
...
This reverts commit bdc89ae76c15f3ef2626f8849744500248aec3ba.
This is a revert of the revert with test/webkit updated as needed.
Original CL Description:
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/144193005
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 12:15:57 +00:00
hpayer@chromium.org
b704d49176
Remove globale pretenuring mode from runtime.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/132003002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 12:07:14 +00:00
svenpanne@chromium.org
b4949cfd62
Fixed floor-of-div optimization.
...
We removed an HDiv by hand which was still used by an HChange. The
solution is letting dead code removal do the cleanup.
Removed a fragile "optimization" (looking through an HChange), too,
this obviously never triggered and is hard to get right given all our
global invariants and state/type/... changes.
The repro is a bit tricky, because you need inlining to make our
representations and types disagree in this case.
LOG=y
BUG=334708
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/143903016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 11:54:51 +00:00
machenbach@chromium.org
83f9562393
Prepare push to trunk. Now working on version 3.24.22.
...
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/144023007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 10:50:37 +00:00
mvstanton@chromium.org
1b3280c491
Revert "Add hydrogen support for ArrayPop, and remove the handwritten call stubs."
...
This reverts commit r18709, due to deopt fuzzer issue.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/143983010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 10:41:23 +00:00
mvstanton@chromium.org
717161a0e1
Disable concurrent sweeping, pending investigation of failures.
...
TBR=hpayer@chromium.org
Review URL: https://codereview.chromium.org/141653013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 09:14:44 +00:00
hpayer@chromium.org
66a7fc78b8
ResetAllAllocationSitesDependentCode is not changing dependent code, assert removed.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/138163014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18727 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 08:46:39 +00:00
palfia@homejinni.com
87b7fdf46b
MIPS: Zonify types in compiler frontend
...
Port r18719 (13303b7a)
Original commit message:
Clean up some zone/isolate handling in AST and its visitors on the way.
(Based on https://codereview.chromium.org/103743004/ )
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/143873005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 22:31:31 +00:00
hpayer@chromium.org
3271acd764
Fix x64 breakage.
...
BUG=
Review URL: https://codereview.chromium.org/144263002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 19:40:25 +00:00
hpayer@chromium.org
1d8c83e7ab
Enable concurrent sweeping. Added some extra debugging checks for concurrent sweeping.
...
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/138903009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 19:30:27 +00:00
plind44@gmail.com
ae65c83822
MIPS: Stay in fast enum case if the empty_slow_element_dictionary is used.
...
Port r18705 (78b4ea3)
Original commit message:
This fixes slow for-in over frozen objects.
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/144023002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 17:48:57 +00:00
mvstanton@chromium.org
796a244bea
Revert "Unify calling to GenerateFastApiCallBody before stubbing it"
...
This reverts commit r18714 for breaking webkit tests with an assert.
TBR=dcarney@chromium.org
Review URL: https://codereview.chromium.org/144143002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18720 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 17:04:17 +00:00
rossberg@chromium.org
0d906a8bdb
Zonify types in compiler frontend
...
Clean up some zone/isolate handling in AST and its visitors on the way.
(Based on https://codereview.chromium.org/103743004/ )
R=jkummerow@chromium.org , titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/102563004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 16:22:52 +00:00
jochen@chromium.org
fb0c43f0ca
Only refill free lists for spaces that are being swept
...
BUG=v8:3104
R=hpayer@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/143953005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 16:19:04 +00:00
mvstanton@chromium.org
c472ee85f8
Array constructor shouldn't require a Cell, just an AllocationSite.
...
The Array constructor has a needless dependency on an input argument
that is a Cell. It uses this to walk through to an AllocationSite.
The dependency hampers future work. Instead, pass the AllocationSite
as input to the Array constructor.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/140963004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 16:04:39 +00:00
dcarney@chromium.org
058c5c9f40
Unify calling to GenerateFastApiCallBody before stubbing it
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/142973005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 15:06:46 +00:00
rossberg@chromium.org
80195df5d8
Silence another VS warning
...
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/143973004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 14:41:48 +00:00
rossberg@chromium.org
928d71f83b
Retry landing "Implement zone-allocated types"
...
Works around apparent scoping bug in VS, the only change to before being a method rename in the test suite:
--- a/test/cctest/test-types.cc
+++ b/test/cctest/test-types.cc
@@ -153,7 +153,7 @@ struct ZoneRep {
return reinterpret_cast<ZoneList<ZoneType*>*>(AsTagged(t));
}
- static Zone* Region(Zone* zone, Isolate* isolate) { return zone; }
+ static Zone* ToRegion(Zone* zone, Isolate* isolate) { return zone; }
};
@@ -168,7 +168,7 @@ struct HeapRep {
static Object* AsConstant(Handle<Type> t) { return Box::cast(*t)->value(); }
static FixedArray* AsUnion(Handle<Type> t) { return FixedArray::cast(*t); }
- static Isolate* Region(Zone* zone, Isolate* isolate) { return isolate; }
+ static Isolate* ToRegion(Zone* zone, Isolate* isolate) { return isolate; }
};
@@ -183,7 +183,7 @@ struct Tests : Rep {
isolate(CcTest::i_isolate()),
scope(isolate),
zone(isolate),
- T(Rep::Region(&zone, isolate), isolate) {
+ T(Rep::ToRegion(&zone, isolate), isolate) {
}
static void CheckEqual(TypeHandle type1, TypeHandle type2) {
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/143693003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 14:14:12 +00:00
jochen@chromium.org
c3383698ee
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: http://v8.googlecode.com/svn/branches/bleeding_edge@18710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 12:48:10 +00:00
verwaest@chromium.org
2d9a4eb355
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: http://v8.googlecode.com/svn/branches/bleeding_edge@18709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 12:42:24 +00:00
machenbach@chromium.org
1864f7388e
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: http://v8.googlecode.com/svn/branches/bleeding_edge@18708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 12:41:25 +00:00
jochen@chromium.org
7b3b9bd316
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: http://v8.googlecode.com/svn/branches/bleeding_edge@18707 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 11:48:51 +00:00
jochen@chromium.org
6b1ae170b9
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: http://v8.googlecode.com/svn/branches/bleeding_edge@18706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 11:41:18 +00:00
verwaest@chromium.org
342b534e7e
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: http://v8.googlecode.com/svn/branches/bleeding_edge@18705 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 11:20:11 +00:00
bmeurer@chromium.org
4bae658948
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: http://v8.googlecode.com/svn/branches/bleeding_edge@18704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 10:35:20 +00:00
machenbach@chromium.org
5a272e8659
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: http://v8.googlecode.com/svn/branches/bleeding_edge@18701 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 09:01:39 +00:00
machenbach@chromium.org
63cd984538
[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: http://v8.googlecode.com/svn/branches/bleeding_edge@18700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 07:58:54 +00:00
palfia@homejinni.com
e1d9313ce8
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: http://v8.googlecode.com/svn/branches/bleeding_edge@18699 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-20 23:08:52 +00:00
machenbach@chromium.org
3be4500877
[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: http://v8.googlecode.com/svn/branches/bleeding_edge@18698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-20 19:05:31 +00:00
titzer@chromium.org
5771b0975a
Fix representation requirement in HReturn.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/143523002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-20 19:00:11 +00:00
verwaest@chromium.org
9f64f43a1c
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: http://v8.googlecode.com/svn/branches/bleeding_edge@18696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-20 17:09:24 +00:00
jochen@chromium.org
c970c1cb6f
Update Isolate::RequestGarbageCollection after r18691
...
BUG=none
R=hpayer@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/143403002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18695 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-20 15:44:03 +00:00
hpayer@chromium.org
62ef558ddb
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: http://v8.googlecode.com/svn/branches/bleeding_edge@18691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-20 14:14:07 +00:00
jochen@chromium.org
e06d47307d
Explicitly initialize MarkCompactCollector and ExternalStringTable
...
BUG=none
R=dcarney@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/143063003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-20 11:57:56 +00:00
rmcilroy@chromium.org
6eb9e02b00
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: http://v8.googlecode.com/svn/branches/bleeding_edge@18688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-20 11:30:48 +00:00
dslomov@chromium.org
5b7b4b99b7
Revert "ES6: Implement Object.setPrototypeOf"
...
This reverts commit r18685 for breaking WebKit tests.
TBR=arv@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-20 10:59:07 +00:00
dslomov@chromium.org
1e3a14da44
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: http://v8.googlecode.com/svn/branches/bleeding_edge@18685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-20 10:38:01 +00:00
dcarney@chromium.org
f93f8ded96
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: http://v8.googlecode.com/svn/branches/bleeding_edge@18683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-20 09:52:54 +00:00