verwaest@chromium.org [Tue, 21 May 2013 12:59:48 +0000 (12:59 +0000)]
Zap map value in the stub-cache on clear.
The empty_string is a valid key for keyed loads and stores.
BUG=
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15565002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14732
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Tue, 21 May 2013 12:17:04 +0000 (12:17 +0000)]
fix arm simulator after 14725
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
15484006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14731
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 21 May 2013 12:03:49 +0000 (12:03 +0000)]
Make sure we register extensions only once. Removed unused member variable.
V8::Initialize() can be called from various threads simultaneously, so
everything should be done only once per process or within the Isolate. For
registering extensions, we do the former now.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
15564002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14730
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 21 May 2013 11:24:20 +0000 (11:24 +0000)]
Disable flaky test after r14723.
R=svenpanne@chromium.org
BUG=v8:2628
TEST=cctest/test-cpu-profiler/SampleWhenFrameIsNotSetup
Review URL: https://codereview.chromium.org/
15415007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14729
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 21 May 2013 11:20:24 +0000 (11:20 +0000)]
Don't create new maps in CurrentMapForDeprecated.
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15358005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14728
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Tue, 21 May 2013 10:45:58 +0000 (10:45 +0000)]
Remove unneeded argument from Parser::GetSymbol
Parser::GetSymbol can't actually fail, so no need for the bool* ok
argument or the CHECK_OK in callers.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
15421007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14727
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 21 May 2013 09:25:57 +0000 (09:25 +0000)]
Make Runtime_Abort print to stderr instead of stdout.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
15298005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14726
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Tue, 21 May 2013 06:36:24 +0000 (06:36 +0000)]
new style of property/function callbacks
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
12494012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14725
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rodolph.perfetta@gmail.com [Fri, 17 May 2013 15:38:14 +0000 (15:38 +0000)]
ARM: Smi refactoring and improvements.
Refactoring:
* consistent use of SmiTag/Untag
* added a few Smi macros and helpers
Improvements
* small optimisations (e.g. merging untag and cmp #0)
* added fixed point to double conversion instructions for simpler conversions
More on the last point: a Smi can be seen as a fixed point number with the
a one bit fractional part. Fixed to double instructions allow us to convert
a Smi to a double without untagging.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/
15085026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14724
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Fri, 17 May 2013 15:10:25 +0000 (15:10 +0000)]
Allow for no samples in test-cpu-profiler/SampleWhenFrameIsNotSetup
The test should only check that there are no sample stacks that never possible in the JS code being profiled.
BUG=v8:2628
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
14845018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14723
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Fri, 17 May 2013 13:54:12 +0000 (13:54 +0000)]
Reduce register pressure in some runtime functions
Hoped to cure the spurious 3% regression we saw on beloved chromium-rel-win7-dual/sunspider after http://code.google.com/p/v8/source/detail?r=14236
R=mstarzinger@chromium.org
BUG=chromium:233441
Review URL: https://codereview.chromium.org/
15297004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14722
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Fri, 17 May 2013 13:37:26 +0000 (13:37 +0000)]
Prepare push to trunk. Now working on version 3.19.3.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
15295007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14719
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Fri, 17 May 2013 12:33:48 +0000 (12:33 +0000)]
Turning off optimize-constructed-arrays to investigate a WebKit/bindings issue.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
15303002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14718
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 17 May 2013 10:46:42 +0000 (10:46 +0000)]
MIPS: Unify deoptimizer for JavaScript frames.
Port r14715 (
84633474)
Original commit message:
This unifies the translation of an optimized frame to a full JavaScript
frame. Only the frame's context and fp register as well as alignment
padding are different on each architecture and can be factored out.
BUG=
Review URL: https://codereview.chromium.org/
15291002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14717
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Fri, 17 May 2013 08:56:45 +0000 (08:56 +0000)]
Fix transition test to support allocation site info.
BUG=
Review URL: https://codereview.chromium.org/
15270002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14716
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 17 May 2013 08:27:56 +0000 (08:27 +0000)]
Unify deoptimizer for JavaScript frames.
This unifies the translation of an optimized frame to a full JavaScript
frame. Only the frame's context and fp register as well as alignment
padding are different on each architecture and can be factored out.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
14843020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14715
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 17 May 2013 06:58:06 +0000 (06:58 +0000)]
Fill in one-word-fillers for the unused property fields.
BUG=chromium:240056
Review URL: https://chromiumcodereview.appspot.com/
15247003
Patch from Toon Verwaest <verwaest@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14714
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 17 May 2013 03:16:20 +0000 (03:16 +0000)]
Fix bugs in rewriting combined with attributes and accessors
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
14843023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14713
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 17 May 2013 01:10:09 +0000 (01:10 +0000)]
MIPS: Implement yield* (delegating yield)
Port r14669 (
b64ce42a)
Original commit message:
Ideally this would have been implemented via desugaring at parse-time,
but yield* is an expression, and its desugaring includes statements like
while and try/catch. We'd have to have BlockExpression in the AST to
support that, and it's not worth it for this feature.
So instead we implement all of the logic in
FullCodeGenerator::VisitYield. Delegating yield AST nodes now have a
try handler index, for the try/catch. Otherwise the implementation is
straightforward.
BUG=
Review URL: https://codereview.chromium.org/
15210004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14712
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Thu, 16 May 2013 16:34:56 +0000 (16:34 +0000)]
Revert "Simplifying GC heuristics, deleted old generation allocation limit."
This reverts commit
14731029.
BUG=
Review URL: https://codereview.chromium.org/
14750013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14711
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Thu, 16 May 2013 14:27:39 +0000 (14:27 +0000)]
Fix code gen bug on arm and mips; SeqStringSetChar overwrites a register; Add better default PrintDataTo for HInstruction
BUG=
Review URL: https://codereview.chromium.org/
14895019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14710
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Thu, 16 May 2013 11:57:23 +0000 (11:57 +0000)]
Remove one more unneccessary conversion to double.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
15204002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14709
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Thu, 16 May 2013 11:55:50 +0000 (11:55 +0000)]
Remove d8 implementation of ArrayBuffer and typed arrays.
R=rossberg@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=14706
Review URL: https://codereview.chromium.org/
14654011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14708
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Thu, 16 May 2013 11:54:25 +0000 (11:54 +0000)]
Revert "Remove d8 implementation of ArrayBuffer and typed arrays."
This reverts commit r14706.
That commit had a stale change from another change list.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14707
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Thu, 16 May 2013 11:48:03 +0000 (11:48 +0000)]
Remove d8 implementation of ArrayBuffer and typed arrays.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
14654011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14706
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 16 May 2013 11:19:37 +0000 (11:19 +0000)]
Implement Array.observe and emit splice change records for ArrayPush
Review URL: https://codereview.chromium.org/
14978007
Patch from Rafael Weinstein <rafaelw@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14705
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olivf@chromium.org [Thu, 16 May 2013 10:59:17 +0000 (10:59 +0000)]
Encapsulating Type information in the CompareICStub
Encapsulate type information in a convenient wrapper instead of storing it in a naked bitfield. This especially facilitates transitioning to a new state and converting from/to the extraICState representation. Additionally cleaning up ToBooleanICStub::Types for consistency.
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
14862009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14704
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Thu, 16 May 2013 10:00:05 +0000 (10:00 +0000)]
Simplifying GC heuristics, deleted old generation allocation limit.
BUG=
Review URL: https://codereview.chromium.org/
14731029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14703
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 16 May 2013 09:44:59 +0000 (09:44 +0000)]
Cleaned up deopt output a bit.
Be a bit more consistent it what is printed. Removed the now superfluous
"*** DEOPT"-like output.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
14612012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14702
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Thu, 16 May 2013 09:21:19 +0000 (09:21 +0000)]
Increase old generation space significantly if we observe a high promotion rate.
BUG=
Review URL: https://codereview.chromium.org/
15104004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14701
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Thu, 16 May 2013 08:39:24 +0000 (08:39 +0000)]
Put preservation of optimized code map behind a flag.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
15119004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14700
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Wed, 15 May 2013 22:45:46 +0000 (22:45 +0000)]
MIPS: Fix debug mode test failures.
This commit fixes a couple of debug mode test failures,
which were introduced by commit 14600.
TEST=mjsunit/mirror-number,mjsunit/mirror-object
BUG=
Review URL: https://codereview.chromium.org/
15179005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14699
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Wed, 15 May 2013 22:09:40 +0000 (22:09 +0000)]
Re-land Notifier.prototype.performChange + tests
Fixes the debug check failure on sorting an object with an array __proto__.
Original Issue: https://codereview.chromium.org/
14779011/
TBR=adamk@chromium.org
Review URL: https://codereview.chromium.org/
14977015
Patch from Rafael Weinstein <rafaelw@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14698
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Wed, 15 May 2013 18:47:48 +0000 (18:47 +0000)]
Revert "Implement Object.getNotifier(obj).performChange()" (r14696)
Reverts r14696 because it caused debug assertion failures when running
test/mjsunit/harmony/object-observe.js
TBR=rossberg
Review URL: https://codereview.chromium.org/
15203002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14697
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Wed, 15 May 2013 17:44:45 +0000 (17:44 +0000)]
Implement Object.getNotifier(obj).performChange()
R=rossberg,adamk,arv
BUG=
Review URL: https://codereview.chromium.org/
14779011
Patch from Rafael Weinstein <rafaelw@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14696
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 15 May 2013 16:09:25 +0000 (16:09 +0000)]
Preserve optimized code map during GCs weakly.
This change preserves the contents of optimized code maps during GCs but
treats the references in this cache weakly. It uses infrastructure from
code flushing to maintain a list of all caches.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
14794007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14695
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Wed, 15 May 2013 15:57:58 +0000 (15:57 +0000)]
Revert "GeneratorFunction() makes generator instances"
This reverts r14684 because of blink LayoutTest failures in
inspector/debugger/debugger-pause-in-internal.html.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
14619040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14694
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Wed, 15 May 2013 15:23:53 +0000 (15:23 +0000)]
Preallocate transitioned maps for TypedArrays.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
15172003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14693
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Wed, 15 May 2013 15:17:01 +0000 (15:17 +0000)]
With flag optimize-constructed-arrays on, ARM and MIPS suffered a performance degrade due to incorrect code in GenerateRecordCallTarget().
The CL also enables flag optimize-constructed-arrays.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
14772043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14692
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olivf@chromium.org [Wed, 15 May 2013 14:24:47 +0000 (14:24 +0000)]
Add a HBreak instruction for debugging
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
14997008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14691
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 15 May 2013 14:04:44 +0000 (14:04 +0000)]
Shift additional_index by element_shift_size, not shift_size.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
14629021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14690
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 15 May 2013 14:03:42 +0000 (14:03 +0000)]
Slight improvement of object printer for maps.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
14969030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14689
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Wed, 15 May 2013 13:22:05 +0000 (13:22 +0000)]
GeneratorFunction() makes generator instances
The current specification has GeneratorFunction() be like Function(),
except that it makes generator instances. This commit implements that
behavior. It also fills in a piece of the implementation where
otherwise calling GeneratorFunction or GeneratorFunctionPrototype would
cause an abort because they have no code.
R=mstarzinger@chromium.org, rossberg@chromium.org
TEST=mjsunit/harmony/generators-iteration
TEST=mjsunit/harmony/generators-runtime
BUG=v8:2355
BUG=v8:2680
Review URL: https://codereview.chromium.org/
14857009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14684
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 15 May 2013 13:14:24 +0000 (13:14 +0000)]
Fix build failure on Linux since r14681.
R=danno@chromium.org, svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
14969025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14683
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 15 May 2013 13:09:57 +0000 (13:09 +0000)]
Remove use_system_v8 logic from the mainline gyp file
Re-upload of https://codereview.chromium.org/
14872005/
BUG=chromium:226860
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
15001031
Patch from Paweł Hajdan Jr. <phajdan.jr@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14682
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 15 May 2013 12:29:13 +0000 (12:29 +0000)]
Provide BitField64 utility class.
R=svenpanne@chromium.org
TEST=cctest/test-conversions/BitField64
Review URL: https://codereview.chromium.org/
14643004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14681
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 15 May 2013 11:08:59 +0000 (11:08 +0000)]
Simplifying GC heuristics, deleted old generation limit factor.
Review URL: https://codereview.chromium.org/
15114003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14680
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 15 May 2013 10:54:24 +0000 (10:54 +0000)]
Ignore failing flaky profiler test.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
14899010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14679
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Wed, 15 May 2013 10:52:06 +0000 (10:52 +0000)]
Function constructor should avoid String.prototype methods
Replace a use of .indexOf with a call to StringIndexOf. As always,
lexical scoping to the rescue.
R=mstarzinger@chromium.org
TEST=mjsunit/regress/regress-2686
BUG=v8:2686
Review URL: https://codereview.chromium.org/
14668013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14678
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 15 May 2013 09:04:10 +0000 (09:04 +0000)]
Ensure all maps gathered from the ICs are updated if deprecated.
Add ASSERT to SmallMapList::Add to ensure no deprecated maps are ever added.
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
15179004
Patch from Toon Verwaest <verwaest@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14675
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 15 May 2013 08:59:28 +0000 (08:59 +0000)]
Various minor cctest fixes to make ASAN a bit happier.
* Running with ASAN needs more stack, so don't set resource constraints too
tight.
* Checking boot time memory usage doesn't make sense when running with ASAN,
it eats tons of memory for itself.
* Fixed a malloc/delete[] mismatch: Not surprisingly, the pointer wrapped by
a SmartArrayPointer should better be allocated by, well, NewArray...
Even with these 3 fixes, we still have a few failures when running our test
suite with ASAN. Most of them are either timeouts or failures caused by greatly
increased stack usage.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
15096011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14674
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Wed, 15 May 2013 00:57:19 +0000 (00:57 +0000)]
MIPS: Error found in test262 on ARM: BinaryOpStub could call out to a built-in and push parameters without an enclosing frame.
Port r14665 (15349aa)
This corrupted stackwalking.
BUG=
Review URL: https://codereview.chromium.org/
14850023
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14673
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Wed, 15 May 2013 00:02:40 +0000 (00:02 +0000)]
MIPS: Ensure that soft-deopts don't count against opt_count
Port r14658 (12c49bd)
This makes sure that Crankshaft doesn't disable optimization to early on hot functions that still contain unexecuted code without type information.
BUG=
Review URL: https://codereview.chromium.org/
15005008
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14672
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Tue, 14 May 2013 23:54:39 +0000 (23:54 +0000)]
Fix Win64 compilation after r14670
TBR=jkummerow@chromium.org
BUG=v8:2628
Review URL: https://codereview.chromium.org/
15133007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14671
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Tue, 14 May 2013 22:51:33 +0000 (22:51 +0000)]
Skip samples where top function's stack frame is not setup properly
Stack iterator takes return address based on the frame pointer (ebp) and detects JS frames based on value at fp + StandardFrameConstants::kMarkerOffset. So in order the iterator to work correctly this values should be already setup for the current function. Stack frame is constructed at the very beginning of JS function code and destroyed before return. If sample is taken before before the frame construction is completed or after it was destroyed the stack iterator will wrongly think that FP points at the current functions frame base and will skip callers frame. To avoid this we mark code ranges where stack frame doesn't exist and completely ignore such samples.
This fixes cctest/test-cpu-profiler/CollectCpuProfile flakiness.
BUG=v8:2628
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
14253015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14670
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Tue, 14 May 2013 16:26:56 +0000 (16:26 +0000)]
Implement yield* (delegating yield)
Ideally this would have been implemented via desugaring at parse-time,
but yield* is an expression, and its desugaring includes statements like
while and try/catch. We'd have to have BlockExpression in the AST to
support that, and it's not worth it for this feature.
So instead we implement all of the logic in
FullCodeGenerator::VisitYield. Delegating yield AST nodes now have a
try handler index, for the try/catch. Otherwise the implementation is
straightforward.
R=rossberg@chromium.org
BUG=v8:2355
TEST=mjsunit/harmony/generators-iteration
Review URL: https://codereview.chromium.org/
14582007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14669
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Tue, 14 May 2013 16:17:26 +0000 (16:17 +0000)]
Revert mistakenly committed r14667 and r14666.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14668
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Tue, 14 May 2013 15:59:37 +0000 (15:59 +0000)]
Avoid loading "iter" twice.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14667
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Tue, 14 May 2013 15:59:25 +0000 (15:59 +0000)]
Implement yield* (delegating yield)
Ideally this would have been implemented via desugaring at parse-time,
but yield* is an expression, and its desugaring includes statements like
while and try/catch. We'd have to have BlockExpression in the AST to
support that, and it's not worth it for this feature.
So instead we implement all of the logic in
FullCodeGenerator::VisitYield. Delegating yield AST nodes now have a
try handler index, for the try/catch. Otherwise the implementation is
straightforward.
R=mstarzinger@chromium.org
BUG=v8:2355
TEST=mjsunit/harmony/generators-iteration
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14666
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Tue, 14 May 2013 15:30:55 +0000 (15:30 +0000)]
Error found in test262 on ARM: BinaryOpStub could call out to a built-in and push parameters without an enclosing frame. This corrupted stackwalking.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
14813029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14665
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Tue, 14 May 2013 15:03:27 +0000 (15:03 +0000)]
Avoid convertion to double when it is not needed.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
15162002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14664
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Tue, 14 May 2013 13:10:52 +0000 (13:10 +0000)]
Improve dead code elimination by transitively marking live code and removing all dead code. Replace unreachable phi removal algorithm with the new dead code elimination pass, which is more thorough.
Review URL: https://codereview.chromium.org/
14676011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14661
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 14 May 2013 12:56:53 +0000 (12:56 +0000)]
Remove HIsNilAndBranch (it's now unused)
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
14971005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14660
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 14 May 2013 12:04:04 +0000 (12:04 +0000)]
Don't use anonymous types declared in an anonymous union.
They are a non-standard extension (probably in C1X, IIRC), but clang is unhappy
with them when -Wnested-anon-types is enabled, which seems to be implied by
-pedantic.
With this change and the previous fix for clang, we are now -Werror clean, even
on clang 3.3.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
14850016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14659
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 14 May 2013 11:45:33 +0000 (11:45 +0000)]
Ensure that soft-deopts don't count against opt_count
This makes sure that Crankshaft doesn't disable optimization to early on hot functions that still contain unexecuted code without type information.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
14738009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14658
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 14 May 2013 11:02:20 +0000 (11:02 +0000)]
Fixed linkage for Is template.
With static linkage, clang 3.3 is unhappy about unused functions
template <> inline bool Is<JSFunction>(Object* obj)
template <> inline bool Is<JSArray>(Object* obj)
in any compilation unit apart from acessors.cc.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
14836014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14657
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 14 May 2013 08:13:25 +0000 (08:13 +0000)]
Prepare push to trunk. Now working on version 3.19.2.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15159002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14654
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Tue, 14 May 2013 06:53:46 +0000 (06:53 +0000)]
BinaryOpStub::GenerateSmiStub() on 32bit would erroneously patch the IC in case of a gc requirement. Brought the behavior into line with ARM and x64. Also some cleanup to label names.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
15102006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14653
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Tue, 14 May 2013 00:28:45 +0000 (00:28 +0000)]
MIPS: Only flush SharedFunctionInfo optimized code cache when necessary
Port r14650 (
d045fbd3)
BUG=
Review URL: https://codereview.chromium.org/
15035007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14652
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Tue, 14 May 2013 00:28:01 +0000 (00:28 +0000)]
MIPS: Elide hole checks on KeyedLoads of holey double arrays
Port r14630 (
124d01e7)
Original commit message:
Improves NavierStokes by about 5%
BUG=
Review URL: https://codereview.chromium.org/
14762012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14651
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 13 May 2013 19:22:18 +0000 (19:22 +0000)]
Only flush SharedFunctionInfo optimized code cache when necessary
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
14604007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14650
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Mon, 13 May 2013 17:36:26 +0000 (17:36 +0000)]
Don't flush code for generator functions.
R=mstarzinger@chromium.org
BUG=v8:2681
TEST=mjsunit/regress/regress-2681
Review URL: https://codereview.chromium.org/
14731023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14649
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Mon, 13 May 2013 16:32:32 +0000 (16:32 +0000)]
Enable harmony_typed_arrays for shared build of d8.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
14927014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14648
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Mon, 13 May 2013 14:18:43 +0000 (14:18 +0000)]
Enable native implementation of array buffer and typed arrays in d8 and tests.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
15059009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14646
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Mon, 13 May 2013 14:18:05 +0000 (14:18 +0000)]
stop using AsciiValue
TBR=svenpanne@chomium.org
BUG=
Review URL: https://codereview.chromium.org/
15129002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14645
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 13 May 2013 13:48:15 +0000 (13:48 +0000)]
Consistently assume that arithmetic operations can overflow unless one can prove the opposite.
Previously, HDiv never had its CanOverflow flag cleared and HMod had
inverted logic (compared to HAdd, HSub and HMul). Minor cleanups on the way.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
14617015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14644
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 13 May 2013 13:20:47 +0000 (13:20 +0000)]
Fix Win64 build
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
14978005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14639
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 13 May 2013 11:58:10 +0000 (11:58 +0000)]
Fix missing hole check for loads from Smi arrays when all uses are changes
BUG=chromium:233737
Review URL: https://codereview.chromium.org/
14978004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14638
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 13 May 2013 11:51:49 +0000 (11:51 +0000)]
Print range and type for phis, too.
To comply with c1visualizer syntax, the format for ranges and types has changed
slightly. Furthermore, the format for phi uses has been changed a bit for more
consistency, too.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
14882006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14637
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 13 May 2013 11:10:31 +0000 (11:10 +0000)]
Improve trace_opt output to help find compilation problems
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
14978003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14636
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 13 May 2013 10:59:00 +0000 (10:59 +0000)]
Prevent flushing of code that was set with %SetCode.
This makes sure that shared function infos that break the one-to-one
mapping to code are marked as un-flushable. Otherwise enqueuing through
the GC meta-data field in the code object doesn't work.
R=rossberg@chromium.org
TEST=cctest/test-api/Threading4
Review URL: https://codereview.chromium.org/
14710015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14635
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 13 May 2013 07:35:26 +0000 (07:35 +0000)]
Elide hole checks on KeyedLoads of holey double arrays
Improves NavierStokes by about 5%
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
15014020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14630
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 13 May 2013 07:32:38 +0000 (07:32 +0000)]
Fixed constant folding in HMod.
We have to check for overflow before attempting to do a modulo operation,
otherwise Crankshaft itself segfaults on some platforms, e.g. ia32. Added tests
even for division, where the problem doesn't show up, just to be sure...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
14617014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14629
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 10 May 2013 22:48:41 +0000 (22:48 +0000)]
MIPS: Track heap objects.
Port r14625 (
bfb25ed8)
BUG=
Review URL: https://codereview.chromium.org/
15102002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14628
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 10 May 2013 22:47:49 +0000 (22:47 +0000)]
MIPS: Call to the right slow method.
Port r14608 (
339e0877)
BUG=
Review URL: https://codereview.chromium.org/
14980008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14627
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 10 May 2013 17:43:04 +0000 (17:43 +0000)]
Return failure when allocating maps fails.
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
14707011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14626
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 10 May 2013 17:17:50 +0000 (17:17 +0000)]
Track heap objects.
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
14996004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14625
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 10 May 2013 14:04:51 +0000 (14:04 +0000)]
Add Persistent::ClearAndLeak.
This will be relevant after Persistent is changed to Dispose itself when
destructed. With Persistent::ClearAndLeak, Blink can take the ownership of the
object pointed by a Persistent and avoid it getting destructed.
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
15023010
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14624
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 10 May 2013 13:50:10 +0000 (13:50 +0000)]
Fix bogus arguments length check in StringLocaleCompare.
R=rossberg@chromium.org
TEST=test262/15.5.4.9_3
Review URL: https://codereview.chromium.org/
14972015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14623
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Fri, 10 May 2013 13:21:24 +0000 (13:21 +0000)]
Revert r14610 because of test-262 failures.
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
14838012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14622
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 10 May 2013 13:04:42 +0000 (13:04 +0000)]
MIPS: Fix NaN handling for start and end indexes in ArraySlice.
Casting NaN to int is unpredictable, on different architectures it produces different int value.
TEST=test262/S15.4.4.10_A2.1_T2, test262/S15.4.4.10_A2.2_T2
BUG=
Review URL: https://codereview.chromium.org/
14812014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14621
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 10 May 2013 13:00:43 +0000 (13:00 +0000)]
Update Test262 harness to recent version.
R=rossberg@chromium.org
TEST=test262
Review URL: https://codereview.chromium.org/
14644015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14620
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Fri, 10 May 2013 12:59:20 +0000 (12:59 +0000)]
Remove separate maps for function instances
ES3 specified that functions created via Function() would have
enumerable prototypes, unlike function literals. For this reason, V8
has always had two prototypes for functions: "function_map" for
literals, and "function_instance_map" for "function instances": those
functions created by Function().
However, since 2009 or so, both maps have been the same! Both have had
writable, non-enumerable prototypes. Moreover, ES5 changed to specify
that function instances would have non-enumerable prototypes.
This patch removes the separate maps for function instances in sloppy
and strict mode.
R=mstarzinger@chromium.org
TEST=mjsunit/function-prototype
BUG=
Review URL: https://codereview.chromium.org/
14829005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14619
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 10 May 2013 12:48:53 +0000 (12:48 +0000)]
Deprecate the version of Context::New which returns a Persistent.
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
15059016
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14618
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 10 May 2013 12:45:14 +0000 (12:45 +0000)]
Robustification: Always assign an environment to LModI when a deopt is possible.
Currently things only work because of a very fragile interaction between minus
zero propagation and range analysis.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
14904008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14617
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 10 May 2013 12:19:34 +0000 (12:19 +0000)]
Clear new-space promotion if the type is smi.
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15098002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14616
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 10 May 2013 11:32:13 +0000 (11:32 +0000)]
Cleaned up Crankshaft pipeline a bit.
Two tiny changes:
* Some phases were missing an HPhase, which was added, so we can now see all
phases in the visualizer output.
* Consistently test commandline flags directly in the pipeline, making it
clearer which parts are optional and which are not.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
15074005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14615
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 10 May 2013 10:39:16 +0000 (10:39 +0000)]
Skip flaky regress-crbug-160010 regression test.
R=ulan@chromium.org
BUG=chromium:160010
TEST=mjsunit/regress/regress-crbug-160010
Review URL: https://codereview.chromium.org/
14908006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14614
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 10 May 2013 09:52:08 +0000 (09:52 +0000)]
Remove obsolete HArrayLiteral instruction.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
14847013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14613
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 10 May 2013 09:47:05 +0000 (09:47 +0000)]
Remove obsolete HObjectLiteral instruction.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
14972008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14612
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00