- 17 Jul, 2017 26 commits
-
-
Michael Lippautz authored
Bug: chromium:738865 Change-Id: I4c8aa8c90ba401200222d95d6395c022fc023a71 Reviewed-on: https://chromium-review.googlesource.com/574535 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46715}
-
Ross McIlroy authored
BUG=chromium:743622 Change-Id: Ic29a39d5976425eda2358c7e5ace0efa1b78a718 Reviewed-on: https://chromium-review.googlesource.com/574604Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46714}
-
Mircea Trofin authored
Added a flag, process_size, to collect the maximum memory size used by a test run. Bug: Change-Id: I5d659ff03bfcf7ab4a868aafbda3303ffcb9fa78 Reviewed-on: https://chromium-review.googlesource.com/542415 Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46713}
-
Ben Noordhuis authored
Add a default clause to the switch statement in debug::GetBuiltin() and abort if it is reached. Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I8895497b64ccd3b8eb23d281b8bca4405a5c3959 Reviewed-on: https://chromium-review.googlesource.com/574172Reviewed-by: Jochen Eisinger <jochen@chromium.org> Commit-Queue: Ben Noordhuis <info@bnoordhuis.nl> Cr-Commit-Position: refs/heads/master@{#46712}
-
Andreas Haas authored
This is the ia32 implementation of the CL https://codereview.chromium.org/2763593002 Original message: [wasm][arm] Add an additional stack check for functions with big frames. Stack overflow checks are typically implemented as part of the TurboFan graph of a function. This means that the stack check code is executed after frame construction. When a frame is too big, though, there may not be enough space on the stack anymore to throw the stack overflow exception after frame construction. With this CL we do an additional stack check before frame construction for functions with big frames. As discussed offline with mstarzinger, I do this change currently only for WebAssembly. This CL contains only the changes for arm. I will do the other platforms in separate CLs. Bug:v8:6318 R=neis@chromium.org, titzer@chromium.org Change-Id: Ibeedc5c4c4571cffd3a9c58016ddc44b64e2bf02 Reviewed-on: https://chromium-review.googlesource.com/568305 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46711}
-
Michael Starzinger authored
This makes sure Runtime_ArrayBufferNeuter fails gracefully on array buffers that are non-neuterable. Note that this runtime function is whitelisted on ClusterFuzz and otherwise only used for testing. R=cbruni@chromium.org BUG=chromium:743215,v8:6534 Change-Id: I5069e615468f8789bf4fd87bb1e093a18bfd0347 Reviewed-on: https://chromium-review.googlesource.com/574168Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46710}
-
Yang Guo authored
R=petermarshall@chromium.org Change-Id: If181ed625015105f8bbabf29a9db3cfcf090b80a Reviewed-on: https://chromium-review.googlesource.com/574235Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#46709}
-
Michael Lippautz authored
Bug: chromium:738865 Change-Id: Icc3e292ded7f4097ef266d8db80f273a412a8b92 Reviewed-on: https://chromium-review.googlesource.com/565718 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46708}
-
Ivica Bogosavljevic authored
InstructionSelector::VisitInt32Mul TEST=cctest/test-run-machops/RunInt32MulAndInt32AddP,mjsunit/asm/int32mod-constant Bug: Change-Id: Iaccfc0d0c981e7c7e2f8b06ff3812fe60d1f85d3 Reviewed-on: https://chromium-review.googlesource.com/574367Reviewed-by: Miran Karić <Miran.Karic@imgtec.com> Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Cr-Commit-Position: refs/heads/master@{#46707}
-
Daniel Clifford authored
Bug=chromium:740784 LOG=N Change-Id: I61fe1b07426d0b1e5131687c9ce99a8dbfa09781 Reviewed-on: https://chromium-review.googlesource.com/574175 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46706}
-
Michael Starzinger authored
This removes a special case for {IfSuccess} control projections from the effect-control linearizer that is no longer needed now that such control projections only appear in pairs. R=jarin@chromium.org Change-Id: I4d872ad301d09e7424b249fb7c4eb70353a9d3ff Reviewed-on: https://chromium-review.googlesource.com/574228Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46705}
-
Clemens Hammacher authored
This replaces four heap allocations by one stack allocated value. R=mstarzinger@chromium.org Change-Id: I7d00968d7bddadb51d7c7b1f3bc5253e54c8a3f9 Reviewed-on: https://chromium-review.googlesource.com/574025 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46704}
-
Ulan Degenbaev authored
If the incremental marker discovers more marking work and the concurrent marking tasks have already exited, then new concurrent marking tasks are scheduled to help the main thread marker. BUG=chromium:694255 Change-Id: I559af62790e6034b23a412d3308ba8b6ae3d27c9 Reviewed-on: https://chromium-review.googlesource.com/574170Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46703}
-
Leszek Swirski authored
This reverts commit a2fcdc7c. Reason for revert: Large regressions in RCS (https://chromeperf.appspot.com/group_report?bug_id=740126) Original change's description: > [runtime] Move profiler ticks from SFI to feedback vector > > Instead of counting profiler ticks on the shared function info (which is > shared between native contexts), count them on the feedback vector > (which is not). This allows us to continue pushing optimization > decisions off the SFI, onto the feedback vector. > > Note that a side-effect of this is that ICs don't have to walk the stack > to reset profiler ticks, as they can access the feedback vector directly > from their feedback nexus. > > Change-Id: I232ae9e759fca75cd89d393148a4ff42caa2646f > Reviewed-on: https://chromium-review.googlesource.com/544888 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46411} TBR=rmcilroy@chromium.org,leszeks@chromium.org,ishell@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: Id587e4172e300c420f93c49744a2a0e66696edf8 Reviewed-on: https://chromium-review.googlesource.com/574227 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#46702}
-
Georgia Kouveli authored
Some of the benchmarks were pointing to the wrong test functions. Bug: Change-Id: I6f7850feec1da61bea7b8c1ac03c00d75400f458 Reviewed-on: https://chromium-review.googlesource.com/574023Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Cr-Commit-Position: refs/heads/master@{#46701}
-
jgruber authored
Bug: v8:6000 Change-Id: I2853d44d8bcf34b28630594cc9c2782046bd4b28 Reviewed-on: https://chromium-review.googlesource.com/573900Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46700}
-
Martyn Capewell authored
Most of these functions have become unusued due to Crankshaft's removal, so delete them. Bug: Change-Id: If4724c78a0b5c7b6179b22eb4068acd95dfdd29e Reviewed-on: https://chromium-review.googlesource.com/571011Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Martyn Capewell <martyn.capewell@arm.com> Cr-Commit-Position: refs/heads/master@{#46699}
-
Clemens Hammacher authored
There are wasm tests which are supposed to fail, but they fail for the wrong reason (because blocks do not declare their type). This CL fixes this, and changes the error output to contain the expected and observed results for better debuggability. R=titzer@chromium.org Change-Id: Ibbd7883e43677a91f858575578586c9e9d1641d5 Reviewed-on: https://chromium-review.googlesource.com/571810Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46698}
-
Michael Lippautz authored
Bug: chromium:738865 Change-Id: If710b60d33eea94bff7b621910006c2d941a7670 Reviewed-on: https://chromium-review.googlesource.com/571900Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46697}
-
Jaroslav Sevcik authored
Change-Id: Ib233e9801d5deed1acde36620d033d19957319d0 Bug: v8:6604 Reviewed-on: https://chromium-review.googlesource.com/573781Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#46696}
-
Michael Achenbach authored
This is for infra-side: https://chromium-review.googlesource.com/c/573544 NOTRY=true Bug: chromium:726584 Change-Id: I0dbe8cf8e107ad13d284dd2347935a225261abe8 Reviewed-on: https://chromium-review.googlesource.com/573545 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46695}
-
Michael Starzinger authored
This makes the runtime rely on the {HasBytecodeArray} predicate to determine whether code generated by TurboFan was build without any deoptimization support, as opposed to {asm_function}. R=rmcilroy@chromium.org BUG=v8:6589 Change-Id: Id124bed47a5fa02d31ff8fd3eee561b2df6c9226 Reviewed-on: https://chromium-review.googlesource.com/571786Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46694}
-
Yang Guo authored
Objects created during bootstrapping do not need a transition tree except for elements kind transitions. R=ishell@chromium.org Bug: v8:6596 Change-Id: I237b8b2792f201336e1c9731c815095dd06bc182 Reviewed-on: https://chromium-review.googlesource.com/571750Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#46693}
-
Jaroslav Sevcik authored
In many cases, this is performance neutral because we can fall off the JavaScript monomorphic fast path for the hash lookup. Once we store the hash code in known fixed position, this should get much faster. Change-Id: I3bb52ee6482fe2c35b7abe70c1d0c21935c6cc1d Reviewed-on: https://chromium-review.googlesource.com/566679 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46692}
-
Jaroslav Sevcik authored
Change-Id: Ie59254ff0790a2db70c1f620f287f8de6387ad23 Bug: v8:5717 Reviewed-on: https://chromium-review.googlesource.com/573543Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#46691}
-
agrieve authored
BUG=chromium:738469 Review-Url: https://codereview.chromium.org/2975133002 Cr-Commit-Position: refs/heads/master@{#46690}
-
- 15 Jul, 2017 1 commit
-
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/9cb83ca..63efa35 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/90038ee..af47a93 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/f6f6b65..844603c TBR=machenbach@chromium.org,hablich@chromium.org Change-Id: I114ee4d225032558289521a6ec2ff5a25898d9df Reviewed-on: https://chromium-review.googlesource.com/572529Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#46689}
-
- 14 Jul, 2017 13 commits
-
-
Wez authored
Previous Fuchsia SDK versions provide an empty header file, for convenience, but this is no longer the case. Change-Id: Ica8d23cc38664b3ebe7093606da4c669d6043c73 Reviewed-on: https://chromium-review.googlesource.com/571763Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Wez <wez@chromium.org> Cr-Commit-Position: refs/heads/master@{#46688}
-
Alexey Kozyatinskiy authored
Goal of this CL: explicit return from non-async function has position after return expression as return position (will unblock [1]). BytecodeArrayBuilder has SetStatementPosition and SetExpressionPosition methods. If one of these methods is called then next generated bytecode will get passed position. It's general treatment for most cases. Unfortunately it doesn't work for Returns: - debugger requires source positions exactly on kReturn bytecode in stepping implementation, - BytecodeGenerator::BuildReturn and BytecodeGenerator::BuildAsyncReturn generates more then one bytecode and general solution will put return position on first generated bytecode, - it's not easy to split BuildReturn function into two parts to allow something like following in BytecodeGenerator::VisitReturnStatement since generated bytecodes are actually controlled by execution_control(). ..->BuildReturnPrologue(); ..->SetReturnPosition(stmt); ..->Return(); In this CL we pass ReturnStatement through ExecutionControl and use it for position when we emit return bytecode right here. So this CL only will improve return position for returns inside of non-async functions, I'll address async functions later. [1] https://chromium-review.googlesource.com/c/543161/ Change-Id: Iede512c120b00c209990bf50c20e7d23dc0d65db Reviewed-on: https://chromium-review.googlesource.com/560738 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46687}
-
erikchen authored
v8 now uses the same SDK as Chromium, even when built as a standalone project. The deployment target override has no effect. Bug: chromium:740693 Change-Id: I089f74d5ad1590ff7167564f83b0110620a92ef9 Reviewed-on: https://chromium-review.googlesource.com/565887Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Erik Chen <erikchen@chromium.org> Cr-Commit-Position: refs/heads/master@{#46686}
-
Wez authored
TBR: machenbach, hablich, kozyatinskiy Change-Id: Id5cbcc1260b69a68dded46651471bd1cfa57d3a3 Reviewed-on: https://chromium-review.googlesource.com/571114Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Wez <wez@chromium.org> Cr-Commit-Position: refs/heads/master@{#46685}
-
Ross McIlroy authored
Changes the ShouldUseFullCodegen to use the flags on the literal instead of the SharedFunctionInfo. Also moves the setting of the SFI flags based on the literal to be in the final stage of unoptimized compilation since they are no longer needed on the SFI during compilation. This is in preparation to enable shared function infos to be created after bytecode generation (to enable off-thread bytecode generation). BUG=v8:5203, v8:6409 Change-Id: I15754979a704123b56dad9e1dfd5c3bb468b85c7 Reviewed-on: https://chromium-review.googlesource.com/570249 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46684}
-
Caitlin Potter authored
SuspendFlags was originally used by the suspend operation to determine which field to record the bytecode offset of a suspended generator, and the value the generator was resumed with. For async generators, await operations would use a separate field, in order to preserve the previous yield input value. This was important to ensure `function.sent` continued to function correctly. As function.sent is being retired, this allows the removal of support for that. Given that this was the only real need for SuspendFlags in the first place (with other uses tacked on as a hack), this involves several other changes as well: - Modification of MacroAssembler AssertGeneratorObject. No longer accepts a SuspendFlags parameter to determine which type of check to perform. - Removal of `flags` operand from SuspendGenerator bytecode, and the GeneratorStore js-operator. - Removal of `flags` parameter from ResumeGeneratorTrampoline builtins. - Removal of Runtime functions, interpreter intrinsics and AccessBuilders associated with the [[await_input_or_debug_pos]] field in JSAsyncGeneratorObject, as this field no longer exists. - Addition of a new `Yield` AST node (subclass of Suspend) in order to prevent the need for the other SuspendFlag values. BUG=v8:5855 TBR=bmeurer@chromium.org Change-Id: Iff2881e4742497fe5b774915e988c3d9d8fbe487 Reviewed-on: https://chromium-review.googlesource.com/570485 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46683}
-
Ben L. Titzer authored
R=clemensh@chromium.org Bug: Change-Id: I0fb6bdba7462acd1a6f86a9a378238dcb466a9e1 Reviewed-on: https://chromium-review.googlesource.com/571012Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46682}
-
Daniel Clifford authored
Change-Id: I2056ab047b7c3e8ab00632fa13c67a7ea779f749 Reviewed-on: https://chromium-review.googlesource.com/571811Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#46681}
-
Enrico Bacis authored
Returning a double from ToFloat64 could lead to problems. If value_ has the bit representation of a signaling NaN (sNaN), then returning it as double can cause the signaling bit to flip, and value_ is returned as a quiet NaN (qNaN). The usage of the Double wrapper also, makes the function ToFloat64AsInt redundant, since the Double wrapper already has the AsUint64() method, which returns an uint64_t. R=ahaas@chromium.org Change-Id: I1e627b97b2fb6110fc702fe58f2b83eb343e9ca2 Reviewed-on: https://chromium-review.googlesource.com/563215 Commit-Queue: Enrico Bacis <enricobacis@google.com> Reviewed-by: Martyn Capewell <martyn.capewell@arm.com> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#46680}
-
Clemens Hammacher authored
This is a reland of 5648aad5. Previous compile error should be fixed by disabling strict aliasing assumptions on gyp: https://chromium-review.googlesource.com/c/571806 Original change's description: > [wasm] Don't store global handles in the interpreter > > Storing global handles in the interpreter is dangerous, because the > global handles are strong roots into the heap. The interpreter itself is > referenced from the heap via a Managed. Hence the interpreter keeps the > instance alive, while the instance keeps the Managed alive. So the GC > will never collect them. > > This CL refactors this to only store the handle to the instance object > while executing in the interpreter, and clearing it when returning. > It also removes the cache of import wrappers, as it should not be > performance critical, but keeps lots of objects alive. If it turns out > to be performance critical, we will have to reintroduce such a cache > stored in the WasmDebugInfo object. > > R=titzer@chromium.org > CC=ahaas@chromium.org > > Bug: chromium:610330 > Change-Id: I54b489dadc16685887c0c1a98da6fd0df5ad7cbb > Reviewed-on: https://chromium-review.googlesource.com/567058 > Reviewed-by: Ben Titzer <titzer@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46629} TBR=titzer@chromium.org Bug: chromium:610330 Change-Id: Ic7836b1b1a044a89f2138f0c76f92acd3a1b2f2b Reviewed-on: https://chromium-review.googlesource.com/570578 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46679}
-
Clemens Hammacher authored
In gn, strict aliasing is disabled anyway. Enabling it for gyp can cause the compilation to fail on bots that still use gyp, or (even worse) can lead to miscompilation because the compiler exploits strict aliasing assumptions. R=machenbach@chromium.org Bug: chromium:628560 Change-Id: Ib756b8126a10d52f8c807ceda42dfc6dbda80ea6 Reviewed-on: https://chromium-review.googlesource.com/571806Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46678}
-
Ross McIlroy authored
We should never try to compile unoptimized code for a function with AsmWasm data, since it either shouldn't have been created, or should be cleared before we reach here, so remove the check. Also change the check for optimizing using bytecode to be a check on whether the function HasBytecode. BUG=v8:5203, v8:6409 Change-Id: I472b123bb370f7929555e6162af02173834d01a1 Reviewed-on: https://chromium-review.googlesource.com/569969Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46677}
-
Maya Lekova authored
Bug: v8:6558, v8:6557 Change-Id: If708d21d7ac4a02470dd547837443e74f9022cd9 Reviewed-on: https://chromium-review.googlesource.com/571783Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Maya Lekova <mslekova@google.com> Cr-Commit-Position: refs/heads/master@{#46676}
-