mstarzinger [Wed, 3 Jun 2015 11:32:25 +0000 (04:32 -0700)]
Fix arrow functions requiring context without slots.
This fixes a corner-case where arrow functions that require a context
allocate none, because there are no additional slots allocated. Note
that this didn't happen with true function scopes because they always
had at least the receiver slot.
The outcome was a context chain that no longer was in sync with the
scope chain, hence context slot loads were bogus. This is observable
using the DYNAMIC_LOCAL optimization in all compilers.
R=rossberg@chromium.org,wingo@igalia.com
TEST=mjsunit/harmony/regress/regress-4160
BUG=v8:4160
LOG=N
Review URL: https://codereview.chromium.org/
1146063006
Cr-Commit-Position: refs/heads/master@{#28788}
bmeurer [Wed, 3 Jun 2015 11:24:14 +0000 (04:24 -0700)]
[turbofan] Don't lower to NumberModulus unless the inputs are numbers.
The IC for modulus is usually way faster than converting the inputs to
numbers and doing a Float64Mod on them.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1170433002
Cr-Commit-Position: refs/heads/master@{#28787}
bmeurer [Wed, 3 Jun 2015 11:23:06 +0000 (04:23 -0700)]
[x64] Smi zero can be used as an immediate.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1150853009
Cr-Commit-Position: refs/heads/master@{#28786}
ulan [Wed, 3 Jun 2015 11:07:24 +0000 (04:07 -0700)]
Add ARM64 suppport to grokdump.py
Constants are taken from chromium/src/google_breakpad/common/minidump_cpu_arm64.h
BUG=
Review URL: https://codereview.chromium.org/
1149293005
Cr-Commit-Position: refs/heads/master@{#28785}
mstarzinger [Wed, 3 Jun 2015 10:46:58 +0000 (03:46 -0700)]
[turbofan] Make the verifier a little bit more cooperative.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1155723005
Cr-Commit-Position: refs/heads/master@{#28784}
jochen [Wed, 3 Jun 2015 10:27:46 +0000 (03:27 -0700)]
Remove usage of to-be-deprecated APIs from v8 core
Also turn on the macro to disable to-be-deprecated APIs for core
BUG=v8:4134
R=vogelheim@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1162363005
Cr-Commit-Position: refs/heads/master@{#28783}
bmeurer [Wed, 3 Jun 2015 08:31:15 +0000 (01:31 -0700)]
[date] Refactor the %_DateField intrinsic to be optimizable.
Previously the %_DateField intrinsic would also check the object and
throw an exception if you happen to pass something that is not a valid
JSDate, which (a) violates our policy for instrinsics and (b) is hard to
optimize in TurboFan (even Crankshaft has a hard time, but there we will
never inline the relevant builtins, so it doesn't show up). The throwing
part is now a separate intrinsics %_ThrowIfNotADate that throws an
exception in full codegen and deoptimizes in Crankshaft, which means the
code for the current use cases is roughly the same (modulo some register
renamings/gap moves).
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
1167813003
Cr-Commit-Position: refs/heads/master@{#28782}
hpayer [Wed, 3 Jun 2015 08:14:47 +0000 (01:14 -0700)]
VisitObject should use MarkObject.
BUG=
Review URL: https://codereview.chromium.org/
1151993005
Cr-Commit-Position: refs/heads/master@{#28781}
jochen [Wed, 3 Jun 2015 07:41:28 +0000 (00:41 -0700)]
Also allocate small typed arrays on heap when initialized from an array-like
This means something like new Float32Array([23, 42]) will be allocated on heap.
BUG=v8:3996
R=bmeurer@chromium.org,mstarzinger@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/
1144393003
Cr-Commit-Position: refs/heads/master@{#28780}
michael_dawson [Wed, 3 Jun 2015 07:23:15 +0000 (00:23 -0700)]
AIX: fix another may be uninitialized failure
fix two additional cases in heap.cc where the AIX
compiler is now reporting that a variable may be
uninitialized.
R=svenpanne@chromium.org, mbrandy@us.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1157053007
Cr-Commit-Position: refs/heads/master@{#28779}
sejunho [Wed, 3 Jun 2015 07:09:21 +0000 (00:09 -0700)]
Just clear semi-space mark bits once before Scavenge
Both PrepareForScavenge and ResetAllocationInfo clear semi-space mark bits before Scavenge. Doing this once is good enough.
BUG=
Review URL: https://codereview.chromium.org/
1158623003
Cr-Commit-Position: refs/heads/master@{#28778}
bmeurer [Wed, 3 Jun 2015 05:29:30 +0000 (22:29 -0700)]
Revert of Implement %TypedArray%.prototype.{reduce,reduceRight} (patchset #3 id:40001 of https://codereview.chromium.org/
1154423014/)
Reason for revert:
Breaks Win32 mjsunit/harmony/typedarray-reduce, see http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20nosnap%20-%20shared/builds/7121/steps/Check/logs/typedarray-reduce for details.
Original issue's description:
> Implement %TypedArray%.prototype.{reduce,reduceRight}
>
> This patch implements the last two methods on TypedArrays. These
> were previously committed and led to a test failure.
>
> BUG=v8:3578
> LOG=Y
> R=adamk
>
> Committed: https://crrev.com/
95d779ecc9816ac20c1565bebeeac6a1ef29f1c7
> Cr-Commit-Position: refs/heads/master@{#28773}
TBR=adamk@chromium.org,dehrenberg@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3578
Review URL: https://codereview.chromium.org/
1162043008
Cr-Commit-Position: refs/heads/master@{#28777}
bmeurer [Wed, 3 Jun 2015 05:10:44 +0000 (22:10 -0700)]
[turbofan] Use reference equal to zero instead of a smi check.
In typed lowering we can use the ReferenceEqual simplified operator
instead of ObjectIsSmi to check for context extensions. This generates
the desired code.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
1163963003
Cr-Commit-Position: refs/heads/master@{#28776}
mstarzinger [Wed, 3 Jun 2015 05:03:57 +0000 (22:03 -0700)]
[turbofan] Ship TF for computed property names.
R=bmeurer@chromium.org
BUG=v8:4158
LOG=N
Review URL: https://codereview.chromium.org/
1162353002
Cr-Commit-Position: refs/heads/master@{#28775}
v8-autoroll [Wed, 3 Jun 2015 05:02:49 +0000 (22:02 -0700)]
Update V8 DEPS.
Rolling v8/tools/clang to
12a1473d6de70775c77726b62aed18bfd56818c1
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1166643004
Cr-Commit-Position: refs/heads/master@{#28774}
dehrenberg [Wed, 3 Jun 2015 05:01:31 +0000 (22:01 -0700)]
Implement %TypedArray%.prototype.{reduce,reduceRight}
This patch implements the last two methods on TypedArrays. These
were previously committed and led to a test failure.
BUG=v8:3578
LOG=Y
R=adamk
Review URL: https://codereview.chromium.org/
1154423014
Cr-Commit-Position: refs/heads/master@{#28773}
bmeurer [Wed, 3 Jun 2015 03:02:26 +0000 (20:02 -0700)]
Revert of Embedded constant pools. (patchset #12 id:220001 of https://codereview.chromium.org/
1131783003/)
Reason for revert:
Breaks Linux nosnap cctest/test-api/FastReturnValuesWithProfiler, see http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug%20-%202/builds/609/steps/Check/logs/FastReturnValuesWithP..
Original issue's description:
> Add support for Embedded Constant Pools for PPC and Arm
>
> Embed constant pools within their corresponding Code
> objects.
>
> This removes support for out-of-line constant pools in favor
> of the new approach -- the main advantage being that it
> eliminates the need to allocate and manage separate constant
> pool array objects.
>
> Currently supported on PPC and ARM. Enabled by default on
> PPC only.
>
> This yields a 6% improvment in Octane on PPC64.
>
> R=danno@chromium.org, svenpanne@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
> BUG=chromium:478811
> LOG=Y
>
> Committed: https://crrev.com/
a9404029343d65f146e3443f5280c40a97e736af
> Cr-Commit-Position: refs/heads/master@{#28770}
TBR=rmcilroy@chromium.org,ishell@chromium.org,rodolph.perfetta@arm.com,mbrandy@us.ibm.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:478811
Review URL: https://codereview.chromium.org/
1155703006
Cr-Commit-Position: refs/heads/master@{#28772}
bbudge [Tue, 2 Jun 2015 22:56:00 +0000 (15:56 -0700)]
Add SIMD 128 alignment support to Heap.
Adds SIMD 128 alignment sizes and masks.
Adds support in Heap for SIMD alignments and fills.
Reworks cctest so that each test independently aligns its allocation address, rather than depending on the previous tests ending state. Adds test cases for SIMD.
LOG=N
BUG=v8:4124
Committed: https://crrev.com/
4347d56a6919ae06a70e4a4a8b2f1179cf47bc7e
Cr-Commit-Position: refs/heads/master@{#28767}
Review URL: https://codereview.chromium.org/
1159453004
Cr-Commit-Position: refs/heads/master@{#28771}
mbrandy [Tue, 2 Jun 2015 22:50:00 +0000 (15:50 -0700)]
Add support for Embedded Constant Pools for PPC and Arm
Embed constant pools within their corresponding Code
objects.
This removes support for out-of-line constant pools in favor
of the new approach -- the main advantage being that it
eliminates the need to allocate and manage separate constant
pool array objects.
Currently supported on PPC and ARM. Enabled by default on
PPC only.
This yields a 6% improvment in Octane on PPC64.
R=danno@chromium.org, svenpanne@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=chromium:478811
LOG=Y
Review URL: https://codereview.chromium.org/
1131783003
Cr-Commit-Position: refs/heads/master@{#28770}
arv [Tue, 2 Jun 2015 22:04:25 +0000 (15:04 -0700)]
[es6] Super call in arrows and eval
This splits the SuperReference AST node into SuperPropertyReference and
SuperCallReference. The super call reference node consists of three
unresolved vars to this, new.target and this_function. These gets
declared when the right function is entered and if it is in use. The
variables gets assigned in FullCodeGenerator::Generate.
This is a revert of the revert
88b1c9170a0293cbcc8bdaf57fbe12744b48d7e8
BUG=v8:3768
LOG=N
R=wingo@igalia.com, adamk@chromium.org
Review URL: https://codereview.chromium.org/
1168513004
Cr-Commit-Position: refs/heads/master@{#28769}
bbudge [Tue, 2 Jun 2015 21:13:14 +0000 (14:13 -0700)]
Revert of Add SIMD 128 alignment support to Heap. (patchset #3 id:40001 of https://codereview.chromium.org/
1159453004/)
Reason for revert:
Breaks Linux - arm64 - sim - MSAN
TBR=jochen
Original issue's description:
> Add SIMD 128 alignment support to Heap.
> Adds SIMD 128 alignment sizes and masks.
> Adds support in Heap for SIMD alignments and fills.
> Reworks cctest so that each test independently aligns its allocation address, rather than depending on the previous tests ending state. Adds test cases for SIMD.
>
> LOG=N
> BUG=v8:4124
TBR=hpayer@chromium.org,jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4124
Review URL: https://codereview.chromium.org/
1169453003
Cr-Commit-Position: refs/heads/master@{#28768}
bbudge [Tue, 2 Jun 2015 20:40:17 +0000 (13:40 -0700)]
Add SIMD 128 alignment support to Heap.
Adds SIMD 128 alignment sizes and masks.
Adds support in Heap for SIMD alignments and fills.
Reworks cctest so that each test independently aligns its allocation address, rather than depending on the previous tests ending state. Adds test cases for SIMD.
LOG=N
BUG=v8:4124
Review URL: https://codereview.chromium.org/
1159453004
Cr-Commit-Position: refs/heads/master@{#28767}
dehrenberg [Tue, 2 Jun 2015 18:58:12 +0000 (11:58 -0700)]
Implement %TypedArray%.prototype.{toString,toLocaleString,join}
Implementations factored out from Array. Tests are derived from
normal array toString tests.
BUG=v8:3578
LOG=Y
R=adamk
Review URL: https://codereview.chromium.org/
1166623004
Cr-Commit-Position: refs/heads/master@{#28766}
mbrandy [Tue, 2 Jun 2015 17:36:49 +0000 (10:36 -0700)]
PPC: Refine '[strong] create strong array literals'
R=dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1156823003
Cr-Commit-Position: refs/heads/master@{#28765}
mbrandy [Tue, 2 Jun 2015 17:35:22 +0000 (10:35 -0700)]
PPC: Build ObjectLiteral constant properties in the numbering phase.
Port
450002f3a105d4bb17fd3b1a9d9d54464c01d200
Original commit message:
It's necessary to do this in order to know how many type feedback vector slots
we should allocate for the object literal.
R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1166473004
Cr-Commit-Position: refs/heads/master@{#28764}
titzer [Tue, 2 Jun 2015 15:00:55 +0000 (08:00 -0700)]
[test] Refactor call-tester to use c-signature.h.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1146173005
Cr-Commit-Position: refs/heads/master@{#28763}
verwaest [Tue, 2 Jun 2015 11:52:30 +0000 (04:52 -0700)]
Handle Delete of element with LookupIterator
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/
1157093003
Cr-Commit-Position: refs/heads/master@{#28762}
mstarzinger [Tue, 2 Jun 2015 11:47:13 +0000 (04:47 -0700)]
[turbofan] Ship TF for class literals.
R=bmeurer@chromium.org
BUG=v8:4158
LOG=N
Review URL: https://codereview.chromium.org/
1158883006
Cr-Commit-Position: refs/heads/master@{#28761}
conradw [Tue, 2 Jun 2015 11:46:04 +0000 (04:46 -0700)]
[strong] create strong array literals
Copied, with permission, from https://codereview.chromium.org/
1151853003/
Initial patch set is an unmodified copy, rebased on top of related fixes from
https://codereview.chromium.org/
1158933002/
Subsequent patch sets contain fixes for remaining bugs in the CL.
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/
1152093003
Cr-Commit-Position: refs/heads/master@{#28760}
ishell [Tue, 2 Jun 2015 11:29:22 +0000 (04:29 -0700)]
Mark proxy map as unstable during proxy fixing (freezing, sealing or preventing extensions).
BUG=chromium:493568
LOG=N
Review URL: https://codereview.chromium.org/
1158023003
Cr-Commit-Position: refs/heads/master@{#28759}
verwaest [Tue, 2 Jun 2015 11:24:52 +0000 (04:24 -0700)]
Remove Execution::CharAt
BUG=
Review URL: https://codereview.chromium.org/
1143153004
Cr-Commit-Position: refs/heads/master@{#28758}
verwaest [Tue, 2 Jun 2015 11:10:50 +0000 (04:10 -0700)]
Use LookupIterator for GetElementAttributes and friends
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/
1153583006
Cr-Commit-Position: refs/heads/master@{#28757}
ishell [Tue, 2 Jun 2015 11:00:45 +0000 (04:00 -0700)]
Filter out store/slots buffer entries that point into raw data objects.
This is just a workaround till we found the root cause of the issue, there must be no slots for data object recorded.
BUG=chromium:454297
LOG=N
Review URL: https://codereview.chromium.org/
1106983004
Cr-Commit-Position: refs/heads/master@{#28756}
martyn.capewell [Tue, 2 Jun 2015 10:57:40 +0000 (03:57 -0700)]
[arm64] Use ubfiz in ARM64 instruction selector
Select ubfiz for (x & mask) << imm where mask is contiguous and imm is non-zero.
BUG=
Review URL: https://codereview.chromium.org/
1161643003
Cr-Commit-Position: refs/heads/master@{#28755}
verwaest [Tue, 2 Jun 2015 10:42:16 +0000 (03:42 -0700)]
Use GetProperty for getting elements.
This also fixes issues with
- kMaxUint32 being a valid length but not index cornercases
- exotic integer objects masking "exotic indexes" even though its in the prototype chain
- concating of holey sloppy arguments
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/
1159433003
Cr-Commit-Position: refs/heads/master@{#28754}
mstarzinger [Tue, 2 Jun 2015 10:36:21 +0000 (03:36 -0700)]
[turbofan] Ship TF for dynamic lookup slots.
R=bmeurer@chromium.org
BUG=v8:4131
LOG=N
Review URL: https://codereview.chromium.org/
1152173011
Cr-Commit-Position: refs/heads/master@{#28753}
ishell [Tue, 2 Jun 2015 10:29:12 +0000 (03:29 -0700)]
GlobalDictionary now stores PropertyDetails in PropertyCells.
BUG=
Review URL: https://codereview.chromium.org/
1156993018
Cr-Commit-Position: refs/heads/master@{#28752}
rossberg [Tue, 2 Jun 2015 10:15:06 +0000 (03:15 -0700)]
Fix redundant map allocation
R=bmeurer@chromium.org
BUG=chromium:492022,v8:3956
LOG=N
Review URL: https://codereview.chromium.org/
1159623008
Cr-Commit-Position: refs/heads/master@{#28751}
mstarzinger [Tue, 2 Jun 2015 09:37:49 +0000 (02:37 -0700)]
[turbofan] Optimized lowering of DYNAMIC_GLOBAL lookup slot loads.
This adds handling of JSLoadDynamicGlobal nodes to JSTypedLowering to
perform extension checks and an inline fast path. The fast path is a
global variable load from the global object.
R=bmeurer@chromium.org
BUG=v8:4131
LOG=N
Review URL: https://codereview.chromium.org/
1150723005
Cr-Commit-Position: refs/heads/master@{#28750}
mvstanton [Tue, 2 Jun 2015 09:35:21 +0000 (02:35 -0700)]
Build ObjectLiteral constant properties in the numbering phase.
It's necessary to do this in order to know how many type feedback vector slots
we should allocate for the object literal.
BUG=
Review URL: https://codereview.chromium.org/
1165463007
Cr-Commit-Position: refs/heads/master@{#28749}
chunyang.dai [Tue, 2 Jun 2015 09:07:13 +0000 (02:07 -0700)]
X87: [turbofan] First step towards sanitizing for-in and making it optimizable.
port
e2e47f30be06e6ea6b8a3cc90138381914ecd07d (r28711)
original commit message:
[turbofan] First step towards sanitizing for-in and making it optimizable.
In a nutshell: The FILTER_KEY builtin is gone, and was replaced by a
simple runtime call to ForInFilter, which does everything and is even
cheaper (because FILTER_KEY used to call into the runtime anyway).
And ForInFilter returns either the name or undefined, which makes it
possible to remove the control flow construction from the AstGraphBuilder,
and thereby make both the initialization and the per-loop code of for-in
optimizable later (in typed lowering).
BUG=
Review URL: https://codereview.chromium.org/
1144143005
Cr-Commit-Position: refs/heads/master@{#28748}
bmeurer [Tue, 2 Jun 2015 08:50:46 +0000 (01:50 -0700)]
[turbofan] Enable typed lowering of string addition.
Unfortunately StringAdd is not pure in V8 because we might throw an
exception if the resulting string length is outside the valid bounds, so
there's no point in having a simplified StringAdd operator.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1164743002
Cr-Commit-Position: refs/heads/master@{#28747}
bmeurer [Tue, 2 Jun 2015 06:18:23 +0000 (23:18 -0700)]
[turbofan] Specify better type for FixedArray::length field.
This avoids redundant smi checks when using the length of a FixedArray,
which is always a positve smi.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1162163003
Cr-Commit-Position: refs/heads/master@{#28746}
v8-autoroll [Tue, 2 Jun 2015 04:07:28 +0000 (21:07 -0700)]
Update V8 DEPS.
Rolling v8/tools/clang to
dc542e2b87607a399e0c107b78990aba11f5af48
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1143213004
Cr-Commit-Position: refs/heads/master@{#28745}
arv [Mon, 1 Jun 2015 23:40:46 +0000 (16:40 -0700)]
[es6] Stage array spread
BUG=v8:3018
LOG=N
Review URL: https://codereview.chromium.org/
1165653003
Cr-Commit-Position: refs/heads/master@{#28744}
adamk [Mon, 1 Jun 2015 23:16:27 +0000 (16:16 -0700)]
Fix Map/Set creation via the API with nosnap build
The Map and Set maps get overwritten when collection.js executes, so in
a nosnap build we have to wait until it runs before we grab the maps.
To facilitate that, store the functions in the native context as well.
Review URL: https://codereview.chromium.org/
1161363002
Cr-Commit-Position: refs/heads/master@{#28743}
erikcorry [Mon, 1 Jun 2015 22:46:54 +0000 (15:46 -0700)]
Cosmetic changes to tests to make it easier to concatenate them.
When compiling on a laptop I like to concatenate the small test files.
This makes a big difference to compile times. These changes make that
easier.
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1163803002
Cr-Commit-Position: refs/heads/master@{#28742}
conradw [Mon, 1 Jun 2015 22:43:50 +0000 (15:43 -0700)]
[strong] fix strong object exception messages
A mistake in a recent CL has messed up the error messages for strong object
semantics.
BUG=
LOG=N
Review URL: https://codereview.chromium.org/
1166433007
Cr-Commit-Position: refs/heads/master@{#28741}
caitpotter88 [Mon, 1 Jun 2015 18:34:55 +0000 (11:34 -0700)]
Revert of [es6] implement default parameters via desugaring (patchset #19 id:380001 of https://codereview.chromium.org/
1127063003/)
Reason for revert:
Broken on arm64
Original issue's description:
> [es6] implement default parameters via desugaring
>
> Stage 1 implementation:
>
> - Parameters can't be referenced before initialized (from left-to-right)
> - SingleNameBindings only, no support for BindingPatterns
>
> Known issues:
>
> - Incorrect scoping (parameter expressions may reference variables declared in function body)
> - Function arity is untouched
> - Hole-checking needs work
> - Rest parameters are broken when mixed with optional arguments
>
> BUG=v8:2160
> LOG=N
> R=arv@chromium.org, rossberg@chromium.org
>
> Committed: https://crrev.com/
892c85485881f8be2f17bd83238980f858126576
> Cr-Commit-Position: refs/heads/master@{#28739}
TBR=rossberg@chromium.org,wingo@igalia.com,arv@chromium.org,dslomov@chromium.org,adamk@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:2160
Review URL: https://codereview.chromium.org/
1163853002
Cr-Commit-Position: refs/heads/master@{#28740}
caitpotter88 [Mon, 1 Jun 2015 17:10:39 +0000 (10:10 -0700)]
[es6] implement default parameters via desugaring
Stage 1 implementation:
- Parameters can't be referenced before initialized (from left-to-right)
- SingleNameBindings only, no support for BindingPatterns
Known issues:
- Incorrect scoping (parameter expressions may reference variables declared in function body)
- Function arity is untouched
- Hole-checking needs work
- Rest parameters are broken when mixed with optional arguments
BUG=v8:2160
LOG=N
R=arv@chromium.org, rossberg@chromium.org
Review URL: https://codereview.chromium.org/
1127063003
Cr-Commit-Position: refs/heads/master@{#28739}
ishell [Mon, 1 Jun 2015 17:07:25 +0000 (10:07 -0700)]
Enum DictionaryEntryType removed.
Dictionary customization should be implemented in respective shape class.
Review URL: https://codereview.chromium.org/
1160813009
Cr-Commit-Position: refs/heads/master@{#28738}
ishell [Mon, 1 Jun 2015 16:24:59 +0000 (09:24 -0700)]
Starting using GlobalDictionary for global objects instead of NameDictionary.
Review URL: https://codereview.chromium.org/
1165603002
Cr-Commit-Position: refs/heads/master@{#28737}
nodir [Mon, 1 Jun 2015 16:19:37 +0000 (09:19 -0700)]
/infra-config directory
Added /infra with chrome-infra specific files.
/infra/project-config/cr-buildbucket.cfg defines v8 buckets on cr-buildbucket.appspot.com
R=tandrii@chromium.org, machenbach@chromium.org, sergiyb@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1161143002
Cr-Commit-Position: refs/heads/master@{#28736}
arv [Mon, 1 Jun 2015 16:10:08 +0000 (09:10 -0700)]
Revert of [es6] Super call in arrows and eval (patchset #5 id:100001 of https://codereview.chromium.org/
1146863007/)
Reason for revert:
Fails
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug%20-%201/builds/579/steps/Check/logs/super
Original issue's description:
> [es6] Super call in arrows and eval
>
> This splits the SuperReference AST node into SuperPropertyReference and
> SuperCallReference. The super call reference node consists of three
> unresolved vars to this, new.target and this_function. These gets
> declared when the right function is entered and if it is in use. The
> variables gets assigned in FullCodeGenerator::Generate.
>
> BUG=v8:3768
> LOG=N
> R=wingo@igalia.com, adamk@chromium.org
>
> Committed: https://crrev.com/
673c0516ab96f24343bbb26e0afc2846b5a679df
> Cr-Commit-Position: refs/heads/master@{#28731}
TBR=wingo@igalia.com,adamk@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3768
Review URL: https://codereview.chromium.org/
1161243005
Cr-Commit-Position: refs/heads/master@{#28735}
mbrandy [Mon, 1 Jun 2015 15:59:47 +0000 (08:59 -0700)]
PPC: [turbofan] First step towards sanitizing for-in and making it optimizable.
Port
e2e47f30be06e6ea6b8a3cc90138381914ecd07d
Original commit message:
In a nutshell: The FILTER_KEY builtin is gone, and was replaced by a
simple runtime call to ForInFilter, which does everything and is even
cheaper (because FILTER_KEY used to call into the runtime anyway).
And ForInFilter returns either the name or undefined, which makes it
possible to remove the control flow construction from the AstGraphBuilder,
and thereby make both the initialization and the per-loop code of for-in
optimizable later (in typed lowering).
R=bmeurer@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1160973004
Cr-Commit-Position: refs/heads/master@{#28734}
titzer [Mon, 1 Jun 2015 15:54:53 +0000 (08:54 -0700)]
[turbofan] Tester improvements; use CSignature and simplify ReturnValueTraits.
R=bmeurer@chromium.org,mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1150083006
Cr-Commit-Position: refs/heads/master@{#28733}
ishell [Mon, 1 Jun 2015 15:43:24 +0000 (08:43 -0700)]
Introducing GlobalDictionary, a backing store for global objects.
This updates Dictionary classes hierarchy and introduces GlobalDictionary class but it is not used yet.
Review URL: https://codereview.chromium.org/
1163673003
Cr-Commit-Position: refs/heads/master@{#28732}
arv [Mon, 1 Jun 2015 15:02:31 +0000 (08:02 -0700)]
[es6] Super call in arrows and eval
This splits the SuperReference AST node into SuperPropertyReference and
SuperCallReference. The super call reference node consists of three
unresolved vars to this, new.target and this_function. These gets
declared when the right function is entered and if it is in use. The
variables gets assigned in FullCodeGenerator::Generate.
BUG=v8:3768
LOG=N
R=wingo@igalia.com, adamk@chromium.org
Review URL: https://codereview.chromium.org/
1146863007
Cr-Commit-Position: refs/heads/master@{#28731}
erikcorry [Mon, 1 Jun 2015 14:54:04 +0000 (07:54 -0700)]
Tiny fix to grokdump heap stats printer
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1164693002
Cr-Commit-Position: refs/heads/master@{#28730}
jochen [Mon, 1 Jun 2015 14:22:58 +0000 (07:22 -0700)]
Reland "Re-enable on-heap typed array allocation"
R=mstarzinger@chromium.org
BUG=v8:3996
LOG=y
Review URL: https://codereview.chromium.org/
1144143006
Cr-Commit-Position: refs/heads/master@{#28729}
arv [Mon, 1 Jun 2015 14:06:14 +0000 (07:06 -0700)]
Fix issue with --print-ast and class expressions
Make sure that --print-ast works even when the class expression has no
name.
This also updates the printer to print the properties of the class
literal.
BUG=v8:4138
LOG=N
R=rossberg
Review URL: https://codereview.chromium.org/
1165613003
Cr-Commit-Position: refs/heads/master@{#28728}
mstarzinger [Mon, 1 Jun 2015 13:36:02 +0000 (06:36 -0700)]
Fix bogus insertion of filler in LO-space by String#replace.
R=hpayer@chromium.org
TEST=mjsunit/regress/regress-crbug-493779
BUG=chromium:493779
LOG=N
Review URL: https://codereview.chromium.org/
1163793002
Cr-Commit-Position: refs/heads/master@{#28727}
bmeurer [Mon, 1 Jun 2015 11:41:21 +0000 (04:41 -0700)]
[turbofan] First steps towards optimizing for-in loops.
This is basically a port of the majority of optimizations that are
applied to for-in in full codegen. But it is not done during graph
building, but instead during typed lowering, which way less adhoc than
what the other compilers do.
Review URL: https://codereview.chromium.org/
1155313008
Cr-Commit-Position: refs/heads/master@{#28726}
mstarzinger [Mon, 1 Jun 2015 11:40:13 +0000 (04:40 -0700)]
[turbofan] Disable optimization of dynamic lookup slots.
Note that this essentially disables optimization of "with" as well.
R=hablich@chromium.org
BUG=chromium:491897,chromium:491018
LOG=N
Review URL: https://codereview.chromium.org/
1158343003
Cr-Commit-Position: refs/heads/master@{#28725}
conradw [Mon, 1 Jun 2015 11:39:01 +0000 (04:39 -0700)]
[strong] Implement per-object restrictions behaviour of delete operator
Implements the strong mode proposal's restrictions on the behaviour of the
delete operator for strong objects.
Setting the strong bit is still wip, so this change will only affect those
objects that have the bit correctly set. The tests reflect this, and will be
expanded as more objects can be marked as strong.
Attempt 2, last version did not work with API.
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/
1156573002
Cr-Commit-Position: refs/heads/master@{#28724}
bmeurer [Mon, 1 Jun 2015 10:58:51 +0000 (03:58 -0700)]
Revert of Re-enable on-heap typed array allocation (patchset #1 id:1 of https://codereview.chromium.org/
1166433004/)
Reason for revert:
Win32 breakage
Original issue's description:
> Re-enable on-heap typed array allocation
>
> BUG=v8:3996
> R=mstarzinger@chromium.org
> LOG=y
>
> Committed: https://crrev.com/
f91df1f25dec4f1982c40af6118da8b699777475
> Cr-Commit-Position: refs/heads/master@{#28722}
TBR=mstarzinger@chromium.org,jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3996
Review URL: https://codereview.chromium.org/
1158193004
Cr-Commit-Position: refs/heads/master@{#28723}
jochen [Mon, 1 Jun 2015 10:07:09 +0000 (03:07 -0700)]
Re-enable on-heap typed array allocation
BUG=v8:3996
R=mstarzinger@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/
1166433004
Cr-Commit-Position: refs/heads/master@{#28722}
dusan.milosavljevic [Mon, 1 Jun 2015 09:47:42 +0000 (02:47 -0700)]
MIPS64: Fix lithium arithmetic operations for integers to sign-extend result.
TEST=mjsunit/asm/double-lo
BUG=
Review URL: https://codereview.chromium.org/
1161713003
Cr-Commit-Position: refs/heads/master@{#28721}
chunyang.dai [Mon, 1 Jun 2015 09:21:50 +0000 (02:21 -0700)]
X87: Make KeyedStores from a sloppy arguments array use a handler.
port
3a1d7335cf6a623f39c306e0bc0e82ccccc54818 (r28683)
original commit message:
This finishes up work begun by CL (https://codereview.chromium.org/
546683003/) some months ago.
BUG=
Review URL: https://codereview.chromium.org/
1163603003
Cr-Commit-Position: refs/heads/master@{#28720}
chunyang.dai [Mon, 1 Jun 2015 09:11:28 +0000 (02:11 -0700)]
X87: [crankshaft] Record inlined shared function infos instead of closures.
port
388e791df91c299507d62f91bc4f618a4dc80276 (r28672).
original commit message:
The list of inlined functions is used in exactly two places - for live
edit and to prevent code flushing for inlined functions - and those are
fine with SharedFunctionInfo and don't require a closure.
This is one additional step towards inlining based on SharedFunctionInfo
instead of JSFunction.
BUG=
Review URL: https://codereview.chromium.org/
1143003003
Cr-Commit-Position: refs/heads/master@{#28719}
chunyang.dai [Mon, 1 Jun 2015 09:04:41 +0000 (02:04 -0700)]
X87: VectorICs: allocating slots for store ics in ast nodes.
port
5450fc07ba07615a70f5ed8379dc23c3275d6fe3 (r18659)
original commit message:
Also adapt code generation to pass the slot to the
store/keyed-store ic. AST nodes ObjectLiteral, Assignment,
ForEach, Call and CountOperation now include one or more
feedback vector ic slot ids.
BUG=
Review URL: https://codereview.chromium.org/
1155383003
Cr-Commit-Position: refs/heads/master@{#28718}
chunyang.dai [Mon, 1 Jun 2015 08:55:20 +0000 (01:55 -0700)]
X87: [es6] Support super.property in eval and arrow functions
port
44e9810345cea9bfd6861905bc6856db7db5a25c (r28644)
original commit message:
When we enter a method that needs access to the [[HomeObject]]
we allocate a local variable `.home_object` and assign it the
value from the [[HomeObject]] private symbol. Something along
the lines of:
method() {
var .home_object = %ThisFunction()[home_object_symbol];
...
}
BUG=
Review URL: https://codereview.chromium.org/
1158543004
Cr-Commit-Position: refs/heads/master@{#28717}
chunyang.dai [Mon, 1 Jun 2015 08:53:06 +0000 (01:53 -0700)]
X87: Move hash code from hidden string to a private symbol
port
eca5b5d7abc0a9028cb9832087fbf2ed59dadf92 (r28622).
original commit message:
* Hash code is now just done with a private own symbol instead of the hidden string, which predates symbols.
* In the long run we should do all hidden properties this way and get rid of the
hidden magic 0-length string with the zero hash code. The advantages include
less complexity and being able to do things from JS in a natural way.
* Initially, the performance of weak set regressed, because it's a little harder
to do the lookup in C++. Instead of heroics in C++ to make things faster I
moved some functionality into JS and got the performance back. JS is supposed to be good at looking up named properties on objects.
* This also changes hash codes of Smis so that they are always Smis.
Performance figures are in the comments to the code review. Summary: Most of js-perf-test/Collections is neutral. Set and Map with object keys are 40-50% better. WeakMap is -5% and WeakSet is +9%.
In the code review comments is a patch with an example of the heroics we could do in C++ to make lookup faster (I hope we don't have to do this. Instead of checking for the property, then doing a new
In a similar vein we could give the magic zero hash code to the hash code
symbol. Then when we look up the hash code we would sometimes see the table
with all the hidden properties. This dual use of the field for either the hash
code or the table with all hidden properties and the hash code is rather ugly,
and this CL gets rid of it. I'd be loath to bring it back. On the benchmarks quoted above it's slightly slower than moving the hash code lookup to JS like in this CL.
One worry is that the benchmark results above are more monomorphic than real
world code, so may be overstating the performance benefits of moving to JS. I
think this is part of a general issue we have with handling polymorphic code in
JS and any solutions there will benefit this solution, which boils down to
regular property access. Any improvement there will lift all boats.
BUG=
Review URL: https://codereview.chromium.org/
1153963010
Cr-Commit-Position: refs/heads/master@{#28716}
chunyang.dai [Mon, 1 Jun 2015 08:45:20 +0000 (01:45 -0700)]
X87: Move work to omit unnecessary ObjectLiteral stores to the numbering pass.
port
32de677805877bbf8d697926e09c23963a27e191 (r29615)
original commit message:
The reason is that this information will be needed to compute the number of
vector ic slots done at numbering time.
BUG=
Review URL: https://codereview.chromium.org/
1165693002
Cr-Commit-Position: refs/heads/master@{#28715}
hablich [Mon, 1 Jun 2015 07:40:02 +0000 (00:40 -0700)]
For Micro-benchmarks for 'with'
R=arv@chromium.org, mstarzinger@chromium.org
BUG=v8:4131
LOG=n
Review URL: https://codereview.chromium.org/
1153363002
Cr-Commit-Position: refs/heads/master@{#28714}
mstarzinger [Mon, 1 Jun 2015 07:35:06 +0000 (00:35 -0700)]
[turbofan] New operator for loads of DYNAMIC_[GLOBAL,LOCAL].
This introduces two new operators for loads of variables bound to
Variable::LOOKUP locations. Currently they all still lower to runtime
calls, but will allow optimization during typed lowering.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1155103004
Cr-Commit-Position: refs/heads/master@{#28713}
jochen [Mon, 1 Jun 2015 07:26:38 +0000 (00:26 -0700)]
Also expose DefineOwnProperty
In contrast to CreateDataProperty, this will always call out to JS
BUG=475206
R=adamk@chromium.org,verwaest@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/
1167473002
Cr-Commit-Position: refs/heads/master@{#28712}
bmeurer [Mon, 1 Jun 2015 07:20:50 +0000 (00:20 -0700)]
[turbofan] First step towards sanitizing for-in and making it optimizable.
In a nutshell: The FILTER_KEY builtin is gone, and was replaced by a
simple runtime call to ForInFilter, which does everything and is even
cheaper (because FILTER_KEY used to call into the runtime anyway).
And ForInFilter returns either the name or undefined, which makes it
possible to remove the control flow construction from the AstGraphBuilder,
and thereby make both the initialization and the per-loop code of for-in
optimizable later (in typed lowering).
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1160983004
Cr-Commit-Position: refs/heads/master@{#28711}
michael_dawson [Mon, 1 Jun 2015 06:51:39 +0000 (23:51 -0700)]
Fix compile failure for AIX
Fix another may be uninitialized compile failure on AIX
in src/heap/heap.cc
R=svenpanne@chromium.org, mbrandy@us.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1153233004
Cr-Commit-Position: refs/heads/master@{#28710}
jacob.bramley [Mon, 1 Jun 2015 04:26:27 +0000 (21:26 -0700)]
[arm] Fix detection of architecture versions.
Use __ARM_ARCH_6ZK__ instead of __ARM_ARCH_6KZ__. The architecture is
technically called ARMv6KZ, but GCC has always called it 6ZK.
Clang defines __ARM_ARCH_6K__ for this target, and is unaffected.
BUG=v8:3978
LOG=N
Review URL: https://codereview.chromium.org/
1145973004
Cr-Commit-Position: refs/heads/master@{#28709}
v8-autoroll [Mon, 1 Jun 2015 03:35:59 +0000 (20:35 -0700)]
Update V8 DEPS.
Rolling v8/tools/clang to
ed19e3a88ba8dccc757b6f2e76d06c5d1355cfa3
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1166613002
Cr-Commit-Position: refs/heads/master@{#28708}
erikcorry [Sun, 31 May 2015 10:01:56 +0000 (03:01 -0700)]
Remove spurious prints from GC logging
R=hpayer@chromium.org, szager@chromium.org
TBR=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1149413003
Cr-Commit-Position: refs/heads/master@{#28707}
v8-autoroll [Sun, 31 May 2015 03:23:18 +0000 (20:23 -0700)]
Update V8 DEPS.
Rolling v8/tools/clang to
4a73eedb03ade4ca209eadcf768737ca01bf7b4a
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1163663004
Cr-Commit-Position: refs/heads/master@{#28706}
v8-autoroll [Sat, 30 May 2015 03:25:44 +0000 (20:25 -0700)]
Update V8 DEPS.
Rolling v8/buildtools to
fa660d47fa1a6c649d5c29e001348447c55709e6
Rolling v8/tools/clang to
fbd2e50b735151d7745bca153f7f17ea896dcfb7
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1158313003
Cr-Commit-Position: refs/heads/master@{#28705}
erikcorry [Fri, 29 May 2015 16:24:39 +0000 (09:24 -0700)]
Even without --trace-gc dump the last few GC messages on OOM
If we crash V8 due to out-of-memory then we print the last 3 GCs on
stdout as we crash. Also records the last 3 GCs on the stack so that
it will be part of the minidump.
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1159513003
Cr-Commit-Position: refs/heads/master@{#28704}
titzer [Fri, 29 May 2015 14:05:39 +0000 (07:05 -0700)]
[turbofan] Clean up cctest "framework" for dealing with native calls.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1164603002
Cr-Commit-Position: refs/heads/master@{#28703}
bbudge [Fri, 29 May 2015 13:18:13 +0000 (06:18 -0700)]
Clean up aligned allocation code in preparation for SIMD alignments.
Moves alignment fill calculations into two static Heap methods.
Adds a Heap method to handle the complex case where filler is potentially needed before and after a heap object.
Makes DoubleAlignForDeserialization explicitly fill after an already
aligned object.
LOG=N
BUG=v8:4124
Committed: https://crrev.com/
fcfb080eb9a637f0ae066bed4c45095e60df8a84
Cr-Commit-Position: refs/heads/master@{#28687}
Review URL: https://codereview.chromium.org/
1150593003
Cr-Commit-Position: refs/heads/master@{#28702}
yangguo [Fri, 29 May 2015 12:56:26 +0000 (05:56 -0700)]
Debugger: PreservePositionScope should clear positions inside the scope.
The point of this change is so that when emitting code for a call in
FullCodegen::VisitCall, the statement position is not associated to
any code that loads the function, but to the actual CallIC.
R=mvstanton@chromium.org
BUG=chromium:481896
LOG=N
Review URL: https://codereview.chromium.org/
1157543004
Cr-Commit-Position: refs/heads/master@{#28701}
vogelheim [Fri, 29 May 2015 12:19:40 +0000 (05:19 -0700)]
Fix free-after-free bug in ExternalStreamingStream::ResetToBookmark.
R=jochen@chromium.org
BUG=chromium:470930
LOG=N
Review URL: https://codereview.chromium.org/
1156103015
Cr-Commit-Position: refs/heads/master@{#28700}
ishell [Fri, 29 May 2015 11:37:10 +0000 (04:37 -0700)]
Reland "Fixed a couple of failing DCHECK(has_pending_exception()). (patchset #1 id:1 of https://codereview.chromium.org/
1151373002/ )"
BUG=chromium:491062
LOG=N
Review URL: https://codereview.chromium.org/
1157273002
Cr-Commit-Position: refs/heads/master@{#28699}
conradw [Fri, 29 May 2015 11:33:15 +0000 (04:33 -0700)]
[strong] Implement per-object restrictions behaviour of property freezing
Implements the strong mode proposal's restrictions on changing a strong object's
writable, non-configurable property to non-writable.
Setting the strong bit is still wip, so this change will only affect those
objects that have the bit correctly set. The tests reflect this, and will be
expanded as more objects can be marked as strong.
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/
1142393003
Cr-Commit-Position: refs/heads/master@{#28698}
jarin [Fri, 29 May 2015 10:39:43 +0000 (03:39 -0700)]
Remove the experimental perf jit support until the license is clarified.
BUG=
Review URL: https://codereview.chromium.org/
1148293009
Cr-Commit-Position: refs/heads/master@{#28697}
yangguo [Fri, 29 May 2015 10:05:22 +0000 (03:05 -0700)]
Debugger: consider try-finally scopes not catching wrt debug events.
R=mstarzinger@chromium.org
BUG=chromium:492522
LOG=Y
Review URL: https://codereview.chromium.org/
1154163006
Cr-Commit-Position: refs/heads/master@{#28696}
mstarzinger [Fri, 29 May 2015 09:17:19 +0000 (02:17 -0700)]
[turbofan] Enforce stricter constraints on Throw nodes.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1162633002
Cr-Commit-Position: refs/heads/master@{#28695}
erikcorry [Fri, 29 May 2015 09:04:57 +0000 (02:04 -0700)]
grokdump.py - some support for on-stack HeapStats
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1142343009
Cr-Commit-Position: refs/heads/master@{#28694}
hpayer [Fri, 29 May 2015 08:06:19 +0000 (01:06 -0700)]
Treat links that organize weak objects weakly.
BUG=
Review URL: https://codereview.chromium.org/
1158423002
Cr-Commit-Position: refs/heads/master@{#28693}
bmeurer [Fri, 29 May 2015 06:37:17 +0000 (23:37 -0700)]
[x64] Fix useless deopt in for-in.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1157423003
Cr-Commit-Position: refs/heads/master@{#28692}
rodolph.perfetta [Fri, 29 May 2015 05:31:25 +0000 (22:31 -0700)]
[arm] Fix vmov immediate for ARMv6.
vmov immediate was always emitting movt for some immediates wether or
not the CPU supported ARMv7.
BUG=v8:4019
LOG=n
Review URL: https://codereview.chromium.org/
1160093002
Cr-Commit-Position: refs/heads/master@{#28691}
v8-autoroll [Fri, 29 May 2015 03:33:48 +0000 (20:33 -0700)]
Update V8 DEPS.
Rolling v8/tools/clang to
5413f2a11e1b56c30e28769b9ff1086797c11b28
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1167453002
Cr-Commit-Position: refs/heads/master@{#28690}
arv [Thu, 28 May 2015 18:50:38 +0000 (11:50 -0700)]
Cleanup ast numbering for super.prop in arrows
Follow up to https://codereview.chromium.org/
1135243004
For now we need to call set_base_id in AstNumberingVisitor because
TurboFan needs a bailout id for super.prop in a lot of cases.
BUG=None
LOG=N
R=adamk@chromium.org, mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
1153053005
Cr-Commit-Position: refs/heads/master@{#28689}