- 04 May, 2018 16 commits
-
-
Ben L. Titzer authored
This CL factors the parts of the JSGraph that only depend on the machine part of JSGraph into a separate base class, MachineGraph. This helps separate the two layers and also allows the MachineGraph to be constructed without an Isolate, which is needed for fully asynchronous compilation, a goal for WASM. R=mstarzinger@chromium.org CC=jarin@chromium.org, mvstanton@chromium.org BUG=v8:7721 Change-Id: Ie8bc3de40159332645dcb3cadcee581e1bf9830a Reviewed-on: https://chromium-review.googlesource.com/1043746Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#52990}
-
Clemens Hammacher authored
Add binop tests for div and rem of i32 and i64. The test is extended to handle traps, and to check that the value of local variables is not affected by the operation. R=titzer@chromium.org Bug: v8:6600, chromium:839800 Change-Id: I1a4cbc40bd399666d9831d021afb96e0c53a9f64 Reviewed-on: https://chromium-review.googlesource.com/1044166Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52989}
-
Michael Achenbach authored
Bug: chromium:830557 Change-Id: I99bfa92f46a03782232e6949dd437afb5a3f6c26 Reviewed-on: https://chromium-review.googlesource.com/1043866Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#52988}
-
Clemens Hammacher authored
In order to get more test coverage (also on ClusterFuzz), stage Liftoff and tier up behind --future. R=hablich@chromium.org CC=titzer@chromium.org Bug: v8:6600 Change-Id: I718e17957b26f60aa4c002333035f693344806e0 Reviewed-on: https://chromium-review.googlesource.com/1042385Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Hablich <hablich@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52987}
-
Wez authored
The Promoted* prefix was used to refer both to the total number of old generation objects, and to the delta of objects moved from the new to old generations. PromotedTotalSize() is also renamed, to reflect the actual calculation it performs Bug: chromium:837583 Change-Id: Id27a0661618257ef64eb469a83bb49c0e8ce6923 Reviewed-on: https://chromium-review.googlesource.com/1042314 Commit-Queue: Wez <wez@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#52986}
-
Michael Starzinger authored
This is a reland of a0c57368 Original change's description: > [wasm] Maintain link from Instance to Module. > > This moves the link from a {WasmInstanceObject} to its corresponding > {WasmModuleObject} into the right place and also makes it strong. This > ensures that an instance always keeps the underlying module alive and > hence removes the situation of an "orphaned instance". > > R=clemensh@chromium.org > > Change-Id: Id59f6a49740af8ef0248679c3d2c696bb9776944 > Reviewed-on: https://chromium-review.googlesource.com/1041691 > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52942} Change-Id: I9854400bfc1d22bd258f17118fcb7460cdc3acd5 Reviewed-on: https://chromium-review.googlesource.com/1043786Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52985}
-
Daniel Clifford authored
- In debug builds, 'assert(<expr>)' evaluates and aborts execution if the provided Torque expression is false at runtime. assert(<expr>) supports the same set of expressions protocols as Toruqe's if statement, i.e. both bool values and BranchIf- style tests. Upon failure, the assertion prints the Torque source code of the failed expression, not the generated CSA code. - 'unreachable' calls CSA's Unreachable() and signals to Torque that code execution cannot continue (i.e. its statement returns the 'never' type). In debug builds, the line number and position of the statement are printed before breaking. - 'debug' calls CSA's DebugBreak(). In debug builds, the line number and position of the 'debug' are printed before breaking. Change-Id: I4efd052536bb402c097a0d5f7be56e154b5b3676 Reviewed-on: https://chromium-review.googlesource.com/1042570 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#52984}
-
Toon Verwaest authored
Instead rely on the scope info containing the name as well. Change-Id: Ie1f96ea023a793b11209510566f6831b1dfd40ab Reviewed-on: https://chromium-review.googlesource.com/1042567 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52983}
-
Miran.Karic authored
The CL fixes the mips port in the CL [debug] introduced runtime side effect check (7a2c3713), that caused several test failures. BUG= Change-Id: Ia1b45fd57d7b77c912562c97f7fc6bf2aa378fe2 Reviewed-on: https://chromium-review.googlesource.com/1030193Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com> Commit-Queue: Miran Karić <miran.karic@mips.com> Cr-Commit-Position: refs/heads/master@{#52982}
-
Toon Verwaest authored
Bug: v8:7066 Change-Id: Icfcb40b2048997c158fba5f3e250145bed4ca1e3 Reviewed-on: https://chromium-review.googlesource.com/1042386 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52981}
-
Wez authored
Change-Id: I58f3eb9259822650a3b31010213e3df030821be2 Reviewed-on: https://chromium-review.googlesource.com/1042187Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Wez <wez@chromium.org> Cr-Commit-Position: refs/heads/master@{#52980}
-
Michael Starzinger authored
This makes sure that allocations of {HeapNumber} objects happening in the JS-to-Wasm and Wasm-to-JS wrappers are ordered with respect to changes of the {trap_handler::IsThreadInWasm} predicate. Otherwise the compiler can (and will) move the allocations across changes of this predicate and cause safety checks to fire. R=clemensh@chromium.org Change-Id: I5366ec0c184929fbd5b60c827d9908fb6ca1d91a Reviewed-on: https://chromium-review.googlesource.com/1042399 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52979}
-
Clemens Hammacher authored
The grow_memory opcode basically just executes a runtime call, but needs to check a condition first, and convert to and from Smi. R=titzer@chromium.org Bug: v8:6600 Change-Id: If7d62a8bb0ca6d02bd47ef6048cc65da502b002b Reviewed-on: https://chromium-review.googlesource.com/1042185 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#52978}
-
Clemens Hammacher authored
On arm64, we had {RegisterBase::bit} (defined in assembler.h) and {CPURegister::bit} (defined in assembler-arm.h). {CPURegister} inherits from {RegisterBase}. The two methods methods have different behaviour on the special {no_reg}, which is only relied on in very few places. This CL fixes these places to avoid the use of {no_reg}, and removes the overwritten method. R=mstarzinger@chromium.org CC=rodolph.perfetta@arm.com Change-Id: I859cc0d4ffc48fae018ee262f3e5403774db87a8 Reviewed-on: https://chromium-review.googlesource.com/1042188Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Rodolph Perfetta <rodolph.perfetta%arm.com@gtempaccount.com> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52977}
-
Erik Luo authored
Side effect free whitelist now - supports 'typeof' when it performs Load operations - runtime checks for Array.p.splice Bug: v8:7588 Change-Id: I45bcd705f8d3f2d2ee61f018566439bf56d1bcbc Reviewed-on: https://chromium-review.googlesource.com/1037926Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Erik Luo <luoe@chromium.org> Cr-Commit-Position: refs/heads/master@{#52976}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/34746fc..55b398a Rolling v8/third_party/android_ndk: https://chromium.googlesource.com/android_ndk/+log/635bc38..5cd8631 Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/978be74..153134e TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org Change-Id: Id123826d5fd7df1c53f2e2bb36591c9e29e20833 Reviewed-on: https://chromium-review.googlesource.com/1043431Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#52975}
-
- 03 May, 2018 24 commits
-
-
Jakob Kummerow authored
Since 94ce16b7, when loading an iterator from null or undefined, we generate the error message "x is not iterable" instead of the unwieldy "Cannot read property 'Symbol(Symbol.iterator)' of undefined". However Runtime::GetObjectProperty, which is used as slow path by LoadICs, did not check for this case, leading to different messages being generated depending on IC state. Bug: chromium:823130 Change-Id: Ie98500b97efef401aac9880b9af47d58c3c2825d Reviewed-on: https://chromium-review.googlesource.com/1042951Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#52974}
-
Junliang Yan authored
Port 519bd47f Original Commit Message: With the exception of the InterpreterEntryTrampoline, all builtins are now isolate-independent and can be embedded into the binary. This CL updates the corresponding list and also contains a few smallish tweaks to support having these builtins off the heap: * wasm: copy the off-heap builtin, not its trampoline. * Code::contains: support off-heap builtins. * JSFunction::is_compiled: compare builtin index instead of identity (this is relevant during mksnapshot when we transition from the on-heap builtin to its off-heap representation + the trampoline). * Remove old DCHECKs. * A few tweaks in macro-assembler ports that have snuck in recently. R=jgruber@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Ib16ce35f5ebdade42720f536ac521c79e7c46778 Reviewed-on: https://chromium-review.googlesource.com/1042927Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#52973}
-
Junliang Yan authored
This is a reland of dfdc3135 Original change's description: > PPC/s390: [interpreter] correctly advance over debug scaling prefixes. > > Port 7a07d74b > > R=yangguo@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com > BUG= > LOG=N > > Change-Id: I99553fde819cbdc8a12df5b82d9d7230ba4ef8b3 > Reviewed-on: https://chromium-review.googlesource.com/1042355 > Commit-Queue: Junliang Yan <jyan@ca.ibm.com> > Reviewed-by: Joran Siu <joransiu@ca.ibm.com> > Cr-Commit-Position: refs/heads/master@{#52970} Change-Id: I012e79ef5fbff37a8ded8c8cf5d4aaf324cd6ccb Reviewed-on: https://chromium-review.googlesource.com/1043026Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#52972}
-
Junliang Yan authored
This reverts commit dfdc3135. Reason for revert: <INSERT REASONING HERE> Original change's description: > PPC/s390: [interpreter] correctly advance over debug scaling prefixes. > > Port 7a07d74b > > R=yangguo@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com > BUG= > LOG=N > > Change-Id: I99553fde819cbdc8a12df5b82d9d7230ba4ef8b3 > Reviewed-on: https://chromium-review.googlesource.com/1042355 > Commit-Queue: Junliang Yan <jyan@ca.ibm.com> > Reviewed-by: Joran Siu <joransiu@ca.ibm.com> > Cr-Commit-Position: refs/heads/master@{#52970} TBR=yangguo@chromium.org,michael_dawson@ca.ibm.com,jyan@ca.ibm.com,joransiu@ca.ibm.com Change-Id: I04fadaa81a6dd124811c002ab4ffa61e3785b717 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/1043025Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#52971}
-
Junliang Yan authored
Port 7a07d74b R=yangguo@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I99553fde819cbdc8a12df5b82d9d7230ba4ef8b3 Reviewed-on: https://chromium-review.googlesource.com/1042355 Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#52970}
-
Junliang Yan authored
Port ab9e0124 Original Commit Message: Original CL: https://crrev.com/c/1018468 During code generation, we generate self-references (i.e. references to the Code object currently being generated) as references to a temporary handle. When the final Code object has been allocated, the handle's location is fixed up and RelocInfo iteration fixes up all references embedded in the generated code. This adds support for this mechanism to the builtins constants table builder. CodeObject() is now a new handle pointing to a dedicated self-reference marker in order to distinguish between self-references and references to undefined. In Factory::NewCode, we patch up the constants table. R=jgruber@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Iba0f4435125b9d6c3fda7fc3e9836494b6eb6f45 Reviewed-on: https://chromium-review.googlesource.com/1042216Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#52969}
-
Junliang Yan authored
Port a9db2c74 R=marja@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:5402,v8:7570 LOG=N Change-Id: Ife3c7463066eb747c27c1479c76106b51e568f92 Reviewed-on: https://chromium-review.googlesource.com/1042451Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#52968}
-
Camillo Bruni authored
This is a preparatory CL to find a potential regression on x86. Bug: chromium:835558 Change-Id: I3859b59d1497d4b7447ad38ee352cf4bbdeb4502 Reviewed-on: https://chromium-review.googlesource.com/1027842 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#52967}
-
Michael Achenbach authored
TBR=santa Change-Id: I3841ddfd3de67dfe7f18d4f0d36c68d8b83da651 Reviewed-on: https://chromium-review.googlesource.com/1042574Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#52966}
-
Bill Budge authored
- Separates measuring from wasm::SerializeNativeModule so caller can allocate or reserve the buffer memory. Call site thus avoid one unnecessary copy. Bug: chromium:719007 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I50412c0c0279114dcdc1aead810ad39e7c4e2a6e Reviewed-on: https://chromium-review.googlesource.com/1039183 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52965}
-
Vincent Belliard authored
Bug: v8:6600 Change-Id: I1d8447349f73985653d3124c2b76d8756b0bf30a Reviewed-on: https://chromium-review.googlesource.com/1040673 Commit-Queue: Vincent Belliard <vincent.belliard@arm.com> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52964}
-
Vincent Belliard authored
Define and use TurboAssembler::AssertUnreachable Bug: v8:6600 Change-Id: I6901896ea4fd7e0fe24dd76a1afbb409a24a2994 Reviewed-on: https://chromium-review.googlesource.com/1040766 Commit-Queue: Vincent Belliard <vincent.belliard@arm.com> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52963}
-
Vincent Belliard authored
Bug: v8:6600 Change-Id: I9e4b4770286cb08e83dd5dbf9b5ae5cfd7d4d411 Reviewed-on: https://chromium-review.googlesource.com/1040649 Commit-Queue: Vincent Belliard <vincent.belliard@arm.com> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52962}
-
Vincent Belliard authored
Bug: v8:6600 Change-Id: If52fd4600c178354cb0631d062be71d19cc10a89 Reviewed-on: https://chromium-review.googlesource.com/1040669 Commit-Queue: Vincent Belliard <vincent.belliard@arm.com> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52961}
-
jgruber authored
Temporarily skip this test until it can be fixed. TBR=machenbach@chromium.org No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7718 Change-Id: I04b6c47b72ed041b2b22669187b8afbcc0c05ff6 Reviewed-on: https://chromium-review.googlesource.com/1042398 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#52960}
-
Vincent Belliard authored
Bug: v8:6600 Change-Id: Ia494d7fefee2dc6ae6f31ea73e35c0921953c2c0 Reviewed-on: https://chromium-review.googlesource.com/1040666 Commit-Queue: Vincent Belliard <vincent.belliard@arm.com> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52959}
-
Camillo Bruni authored
This should reduce the probability of running out of stack space while logging a fatal error message. Additionally this CL distinguishes the error OOM error message when there is no isolate available on the background thread. Bug: chromium:839166 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I17e929f322dda20127fbf86a6154af5460e53490 Reviewed-on: https://chromium-review.googlesource.com/1041964Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#52958}
-
Hannes Payer authored
Bug: chromium:829771 Change-Id: I9e71e6cbba347dd6951e5415332e5178df9b5122 Reviewed-on: https://chromium-review.googlesource.com/1041685 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#52957}
-
Clemens Hammacher authored
{kCopiedStub} is not used any more since https://crrev.com/c/1012024. R=mstarzinger@chromium.org Change-Id: Idb0049f7d0bb0215cef902daba49591596f93668 Reviewed-on: https://chromium-review.googlesource.com/1042225Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52956}
-
Benoît Lizé authored
As with other code size stats, this doesn't distinguish between live and dead objects, and doesn't scan the young generation. Also make ExternalString::is_short() const. Bug: chromium:837659 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I72815edb719ba61d9727e226ff1da0fc4af22a24 Reviewed-on: https://chromium-review.googlesource.com/1032994 Commit-Queue: Benoit L <lizeb@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#52955}
-
Bill Budge authored
Change-Id: I6bc23527f63e86ecde228c85d499c55278ff555e Reviewed-on: https://chromium-review.googlesource.com/1041949 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52954}
-
Ben L. Titzer authored
R=clemensh@chromium.org CC=ahaas@chromium.org Change-Id: Ibcbc5e43e7095d9783f49ad2c3f27338100c4fdf Reviewed-on: https://chromium-review.googlesource.com/1039489 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52953}
-
Toon Verwaest authored
There are likely cleanups that can be done after this CL: - context-related functions in the interpreter and compiler take ScopeInfo as well as ScopeType and slot-count as input. The latter 2 should be directly derived from the former. We should be able to drop FunctionContextParameters. - ContextExtension is probably not needed anymore, since we now always have the correct scope_info directly in the SCOPE_INFO_INDEX slot. Bug: v8:7066 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ie1f6134c686a9f2183e54730d9cdd598a9e5ab67 Reviewed-on: https://chromium-review.googlesource.com/785151 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52952}
-
Marja Hölttä authored
BUG=v8:7490 Change-Id: I10f5339f3d7e634934d59d744334a045276fbed6 Reviewed-on: https://chromium-review.googlesource.com/1041906Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#52951}
-