- 13 Feb, 2018 5 commits
-
-
Benedikt Meurer authored
The idea here is that in case the `thenable` is a JSPromise and `then` is the initial `Promise.prototype.then` method, and the @@species lookup chain is intact, we can skip creating the temporary promise and the closures (with the shared context), and instead directly call into our PerformPromiseThen. This is sound since - given above mentioned conditions - our short-cut PerformPromiseThen(thenable, undefined, undefined, promise_to_resolve) is not observably different from the actual resolve, reject = CreateResolvingFunctions(promise_to_resolve) result_capability = NewPromiseCapability(%Promise%) PerformPromiseThen(thenable, resolve, reject, result_capability) except through PromiseHooks (and potentially via the async stack traces). So we disable the fast-path if either promise hooks are enabled or the debugger is active for now. This improves the performance on the wikipedia benchmark by 20-25% and the bluebird-doxbee benchmark by around 20%. Bug: v8:7253 Change-Id: I23c92ad365c2b71d65057573f2d8febe2afe00b0 Reviewed-on: https://chromium-review.googlesource.com/911800 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#51261}
-
Benedikt Meurer authored
This introduces dedicated builtins - FulfillPromise, - RejectPromise, and - ResolvePromise, which perform the corresponding operations from the language specification, and removes the redundant entry points and the excessive inlining of these operations into other builtins. We also add the same logic on the C++ side, so that we don't need to go into JavaScript land when resolving/rejecting from the API. The C++ side has a complete implementation, including full support for the debugger and the current PromiseHook machinery. This is to avoid constantly crossing the boundary for those cases, and to also simplify the CSA side (and soon the TurboFan side), where we only do the fast-path and bail out to the runtime for the general handling. On top of this we introduce %_RejectPromise and %_ResolvePromise, which are entry points used by the bytecode and parser desugarings for async functions, and also used by the V8 Extras API. Thanks to this we can uniformly optimize these in TurboFan, where we have corresponding operators JSRejectPromise and JSResolvePromise, which currently just call into the builtins, but middle-term can be further optimized, i.e. to skip the "then" lookup for JSResolvePromise when we know something about the resolution. In TurboFan we can also already inline the default PromiseCapability [[Reject]] and [[Resolve]] functions, although this is not as effective as it can be right now, until we have inlining support for the Promise constructor (being worked on by petermarshall@ right now) and/or SFI based CALL_IC feedback. Overall this change is meant as a refactoring without significant performance impact anywhere; it seems to improve performance of simple async functions a bit, but otherwise is neutral. Bug: v8:7253 Change-Id: Id0b979f9b2843560e38cd8df4b02627dad4b6d8c Reviewed-on: https://chromium-review.googlesource.com/911632Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51260}
-
Sergiy Byelozyorov authored
This information is useful to know whom to assign bugs to when these tests are crashing on our infrastructure. R=petermarshall@chromium.org No-Try: true Change-Id: Ia165e0236602cae73e144011537d642e3535fa6b Reviewed-on: https://chromium-review.googlesource.com/908563 Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#51259}
-
Sergiy Byelozyorov authored
R=sergiyb@google.com No-Try: true Bug: chromium:616879 Change-Id: If52f419c7447c88313526fceed10e7dd2e89b10c Reviewed-on: https://chromium-review.googlesource.com/913948 Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org> Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#51258}
-
Sergiy Byelozyorov authored
TBR=machenbach@chromium.org No-Try: true Bug: chromium:616879 Change-Id: I49d3f12216cdc2d26761e8f82fef18512d8eb6fd Reviewed-on: https://chromium-review.googlesource.com/915141 Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org> Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#51257}
-
- 12 Feb, 2018 30 commits
-
-
Wez authored
The next Fuchsia SDK roll changes the signature and types associated with the zx_thread_read_state() API, so we temporarily need backward- compatibility shims while we roll the SDK/Chromium/V8. Bug: chromium:707030 Change-Id: I419a65bbb631a1ef0d7d5044b07d4cbbac08970f Reviewed-on: https://chromium-review.googlesource.com/914695 Commit-Queue: Wez <wez@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#51256}
-
Camillo Bruni authored
Bug: chromium:808192 Change-Id: I80136d291d5c21c311903bffc96d86d109f5cdc9 Reviewed-on: https://chromium-review.googlesource.com/902103 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#51255}
-
Adam Klein authored
This pretenuring was added in https://codereview.chromium.org/5220007, back when it was necessary in order to allow use of the closure as a "constant function" property. This should no longer be the case, and the pretenuring causes some unfortunate downstream effects. This patch removes the parser's setting of this bit. If it doesn't cause regressions on the perf bots, followup CLs will remove the rest of the support for this feature. Bug: v8:7442 Change-Id: I27c43dd4293ce5de921be6c78571e712778d138a Reviewed-on: https://chromium-review.googlesource.com/914610Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#51254}
-
Franziska Hinkelmann authored
Change-Id: Ic0e513e61e3bd1a8ac8f06a1f81c27d35a7d29af Reviewed-on: https://chromium-review.googlesource.com/911249Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Franziska Hinkelmann <franzih@chromium.org> Cr-Commit-Position: refs/heads/master@{#51253}
-
Ben L. Titzer authored
R=bradnelson@chromium.org Bug: chromium:810973 Change-Id: I818c17ef03b27df72976048b1873fc3f3a368900 Reviewed-on: https://chromium-review.googlesource.com/914330Reviewed-by: Brad Nelson <bradnelson@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51252}
-
Mathias Bynens authored
Intent to ship: https://groups.google.com/d/msg/v8-users/f6t2VJha_3o/fzJjpahaCgAJ Bug: v8:6530 Change-Id: I380ac947df9fe6ca7deb3315540388fc923810ea Reviewed-on: https://chromium-review.googlesource.com/912869Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#51251}
-
Camillo Bruni authored
Most of the users of these api methods manually ensure that the returned values are Strings. With an additional flag we can easily ensure that already in V8 and avoid needless api roundtrips. Bug: v8:7358 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I62165d44084abc9f07f5bdaace5105847edca60a Reviewed-on: https://chromium-review.googlesource.com/901248Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Franziska Hinkelmann <franzih@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#51250}
-
Gabriel Charette authored
This is a follow-up to https://chromium-review.googlesource.com/904662 as I forgot this callsite there. The perf tests still haven't recovered from decreasing the worker count by 1 to account for main thread (crbug.com/809961) and I assume this line is at fault. If this is correct, it also indicates ConcurrentMarking as a great area to focus since a single extra worker appears to be making a significant difference. R=mlippautz@chromium.org Bug: chromium:809961, chromium:808028 Change-Id: I9df933a4193fb25ea4e857f589e2164c8a2859b4 Reviewed-on: https://chromium-review.googlesource.com/911670Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Gabriel Charette <gab@chromium.org> Cr-Commit-Position: refs/heads/master@{#51249}
-
Caitlin Potter authored
Implements the change outlined in https://github.com/tc39/ecma262/pull/890, which has been ratified and pulled into the specification. In particular, template callsite objects are no longer kept in a global, eternal Map, but are instead associated with their callsite, which can be collected. This prevents a memory leak incurred by TaggedTemplate calls. Changes, summarized: - Remove the TemplateMap and TemplateMapShape objects, instead caching template objects in the feedback vector. - Remove the `hash` member of TemplateObjectDescriptor, and the Equals method (used by TemplateMap) - Add a new FeedbackSlotKind (kTemplateObject), which behaves similarly to FeedbackSlotKind::kLiteral, but prevents eval caching. This ensures that a new feedback vector is always created for eval() containing tagged templates, even when the CompilationCache is used. - GetTemplateObject bytecode now takes a feedback index, and only calls into the runtime if the feedback is Smi::kZero (uninitialized). BUG=v8:3230, v8:2891 R=littledan@chromium.org, yangguo@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I7827bc148d3d93e2b056ebf63dd624da196ad423 Reviewed-on: https://chromium-review.googlesource.com/624564 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#51248}
-
Junliang Yan authored
some time the output of these two could be the same if machine is fast enough. Change-Id: I1d9c0191657abae3d053517d45059065df2d44dc Reviewed-on: https://chromium-review.googlesource.com/911873Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#51247}
-
Sergiy Byelozyorov authored
TBR=sergiyb@chromium.org No-Try: true Bug: chromium:616879 Change-Id: I9570a07f3a1626ca981a22cca2fb1da45e82e738 Reviewed-on: https://chromium-review.googlesource.com/913333 Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org> Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#51246}
-
Yang Guo authored
R=jgruber@chromium.org Bug: v8:5510 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ic0ba012ed7ff66f034c5a54554b2ab36d1d70d2c Reviewed-on: https://chromium-review.googlesource.com/911110Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Commit-Queue: ปอ คับ <misspor061853@gmail.com> Cr-Commit-Position: refs/heads/master@{#51245}
-
Andreas Haas authored
According to the spec, if an imported function gets exported, the exported function has to be identical to to imported function. With this CL we initialize the list of potential js_wrappers_ with all wasm function we imported. Therefore no new wrappers are generated for these functions. R=clemensh@chromium.org Bug: v8:7364 Change-Id: Ibcd47d8fcc4c2fb5740d57ea547fbd01c2a4e80a Reviewed-on: https://chromium-review.googlesource.com/901626 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#51244}
-
Michael Achenbach authored
This cleans up mb_config.pyl and strips it from: - remaining gyp_defines entries and other mention of gyp - all redundant 'gn_' prefixes and configs These changes are possible after https://crrev.com/c/911073 Bug: chromium:772804 Change-Id: I702405cc97ef2cc14b2c2cc5870c8315dde8342a Reviewed-on: https://chromium-review.googlesource.com/912830Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#51243}
-
Clemens Hammacher authored
Currently, the LiftoffCompiler can bail out on unsupported instructions, but the LiftoffAssembler can not. This makes it difficult to iteratively implement the platform specific part of the assembler. With this CL, also the assembler can bail out if an unimplemented assembler method is called. This allows to test already implemented methods. R=ahaas@chromium.org CC=sreten.kovacevic@mips.com Bug: v8:6600 Change-Id: Ieb7abc2188266bb93c40fe55fd6ee0e5b1e0d220 Reviewed-on: https://chromium-review.googlesource.com/909390 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#51242}
-
Camillo Bruni authored
Change-Id: I48118d9e1240da7608ec33ab1855cdf3914d795a Bug: v8:7310 No-try: true Reviewed-on: https://chromium-review.googlesource.com/913489 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#51241}
-
Michael Achenbach authored
The corresponding gclient variables are set now via: https://crrev.com/c/913368 Bug: chromium:772804 Change-Id: I9c96bde3e6cc88d84a320c00d3316a91c48749f7 Reviewed-on: https://chromium-review.googlesource.com/913351Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#51240}
-
Michael Achenbach authored
The test is slower on msan than its own anticipated runtime, which the test internally measures. TBR=danno@chromium.org NOTRY=true Bug: v8:7439 Change-Id: Iba08f589697bcf17b1f4d2cedb1313ff9a34c082 Reviewed-on: https://chromium-review.googlesource.com/913468Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#51239}
-
Stephan Herhut authored
When collecting stack frame information during a profiler tick event, we apply a filter on the instructions at the current pc to avoid collecting (wrong) stack frames while a frame is being setup/torn down. While this detection makes sense for compiled JavaScript code, it also filters out ticks in the C++ code base of v8. This change only applies the filter if the pc lies within a region that could potentially contain compiled JavaScript code. Change-Id: I8c8d8d70823abcdc2c5ae0ebf78a5198ec855a79 Reviewed-on: https://chromium-review.googlesource.com/912470Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Stephan Herhut <herhut@chromium.org> Cr-Commit-Position: refs/heads/master@{#51238}
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: Ifa641523a384a55fc9565d9447c6365cffbde4d1 Reviewed-on: https://chromium-review.googlesource.com/911904Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#51237}
-
Michael Achenbach authored
This reverts commit 9808093e. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20debug/builds/19149 Original change's description: > Update test configurations for code serializer > > Update test configurations on the bots to test for serializing > after execute (--cache=after-execute) and producing full code > cache (--cache=full-code-cache) options. We no longer need > to test serializing before execute (--cache=code) on the bots. > > Bug: v8:7302 > Change-Id: I123b07028d9231f6da6145b72b62b9ee31352388 > Reviewed-on: https://chromium-review.googlesource.com/869931 > Commit-Queue: Mythri Alle <mythria@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51235} TBR=machenbach@chromium.org,yangguo@chromium.org,mythria@chromium.org Change-Id: I47e03101804194c21b0edf418b744b0ccb66cbf6 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7302 Reviewed-on: https://chromium-review.googlesource.com/913134Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#51236}
-
Mythri authored
Update test configurations on the bots to test for serializing after execute (--cache=after-execute) and producing full code cache (--cache=full-code-cache) options. We no longer need to test serializing before execute (--cache=code) on the bots. Bug: v8:7302 Change-Id: I123b07028d9231f6da6145b72b62b9ee31352388 Reviewed-on: https://chromium-review.googlesource.com/869931 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#51235}
-
Sergiy Byelozyorov authored
TBR=sergiyb@chromium.org Bug: chromium:811115 Change-Id: Ic8625399bcef73d562946d1af1d78198636f98ff Reviewed-on: https://chromium-review.googlesource.com/913128Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#51234}
-
Michael Achenbach authored
This was removed on the infra side: https://crrev.com/c/912831 TBR=sergiyb@chromium.org Bug: chromium:772804 Change-Id: Icf0a33c2c1294edbc957c7e0e4aa78268997ae10 Reviewed-on: https://chromium-review.googlesource.com/913210Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#51233}
-
Dan Elphick authored
Adds a function to call Builtins::kToObject returning a JSReceiver. Also changes all previous uses of CallBuiltin(Builtins:kToObject to use it. Also fixed a case in builtins-object-gen.cc, where the result of ToObject is cast (unchecked so it doesn't crash) to a JSObject before actually checking it is a JSObject. Change-Id: I3b1ff50babc3b3cbf44d56970099d105f7a66d34 Reviewed-on: https://chromium-review.googlesource.com/906778 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51232}
-
Andreas Haas authored
Apparently the fuzzer tries to create functions with more 130000 parameters, which is too much for TurboFan. For returns I use the wasm limit because only wasm uses multiple returns. R=clemensh@chromium.org Bug: chromium:811070 Change-Id: Ib9a55439c1da8e82ef5f35ffb2e79cab8d4a9018 Reviewed-on: https://chromium-review.googlesource.com/913268Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#51231}
-
Clemens Hammacher authored
Before doing an indirect call, we always have to call {PrepareCall}. Thus move this code out into platform-independent code. This also slightly simplifies the API for {CallIndirect}. R=ahaas@chromium.org Bug: v8:6600 Change-Id: Id88ae5a9e73d1b6526131a5789205eda12b660de Reviewed-on: https://chromium-review.googlesource.com/911369 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#51230}
-
Ross McIlroy authored
Moves generation of speculation poison to be based on the PC target vs the actual PC being executed. The speculation poison is generated in the prologue of the generated code if CompilationInfo::kGenerateSpeculationPoison is set. The result is stored in a known register, which can then be read using the SpeculationPoison machine node. Currently we need to ensure the SpeculationPoison node is scheduled right after the code prologue so that the poison register doesn't get clobbered. This is currently not verified, however it's only use is in RawMachineAssembler where it is manually scheduled early. The Ignition bytecode handlers are updated to use this speculation poison rather than one generated by comparing the target bytecode. BUG=chromium:798964 Change-Id: I2a3d0cfc694e88d7a8fe893282bd5082f693d5e2 Reviewed-on: https://chromium-review.googlesource.com/893160 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#51229}
-
Sergiy Byelozyorov authored
R=mvstanton@chromium.org Bug: chromium:810410 Change-Id: I366c0cb3a8726a0d4e1072aa0332b2a9235b120b Reviewed-on: https://chromium-review.googlesource.com/912870Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#51228}
-
Sigurd Schneider authored
This fixes a bug which causes the call count to change when changing the speculation mode. Bug: v8:7127 Change-Id: Icb43bd9ac392a5be4df154cb1e5cd4365013efc4 Reviewed-on: https://chromium-review.googlesource.com/911575Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#51227}
-
- 10 Feb, 2018 3 commits
-
-
Yang Guo authored
R=ulan@chromium.org Bug: v8:7402 Change-Id: Ia9d79723ebf63d30528b0d8e639555d08be38531 Reviewed-on: https://chromium-review.googlesource.com/899063Reviewed-by: Alexei Filippov <alph@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#51226}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/c1972dd..792040c Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/e653c4b..c60b98d Rolling v8/third_party/instrumented_libraries: https://chromium.googlesource.com/chromium/src/third_party/instrumented_libraries/+log/b7578b4..b745ddc Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/7c6255f..a695c30 TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org Change-Id: Ifa08a03d8102a15f608cf5dbea7910faf8b3169b Reviewed-on: https://chromium-review.googlesource.com/912537Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#51225}
-
Adam Klein authored
d8's fragile path manipulation code requires that backslashes are replaced with slashes before further processing. NormalizePath() is the function that does this, and it's called in almost all the required cases. But because of Clusterfuzz runs tests with an absolute URL on the commandline, there was one case that slipped through. This patch closes that gap. No test added since this only reproduces under Clusterfuzz, not in running mjsunit tests. Bug: chromium:784012 Change-Id: Ie699e93ff1acb79edfe25ce59d576e9f7bd8c022 Reviewed-on: https://chromium-review.googlesource.com/912325Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#51224}
-
- 09 Feb, 2018 2 commits
-
-
Ben L. Titzer authored
This is a purely cosmetic change. Rename all local variables and parameters of type CallDescriptor* to "call_descriptor". For locals that are now named "call_descriptor", use auto upon initialization, following the Google style guide (https://google.github.io/styleguide/cppguide.html#auto). Note: fields in structs and classes were not renamed in this CL. R=clemensh@chromium.org,mstarzinger@chromium.org,jarin@chromium.org Change-Id: Ic6f7afdba12f7b97741b098a9d0e0f58c41c587e Reviewed-on: https://chromium-review.googlesource.com/909866 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#51223}
-
Benedikt Meurer authored
Extend the current OOB support for typed arrays to also handle the negative integer indices in the fast-path. This is safe because in ECMAScript we never look up integer indexed properties (including negative indices) on typed arrays in the prototype chain. This reduces the performance cliff shown in the benchmark on the relevant bug from console.timeEnd: Runtime deopt, 596.185000 console.timeEnd: Runtime deopt, 1444.289000 console.timeEnd: Runtime deopt, 1445.191000 console.timeEnd: Runtime deopt, 1443.008000 to console.timeEnd: Runtime deopt, 590.017000 console.timeEnd: Runtime deopt, 784.899000 console.timeEnd: Runtime deopt, 792.428000 console.timeEnd: Runtime deopt, 786.740000 which corresponds to a 2x improvement overall. It's not for free, especially not in this benchmark, but the cliff isn't as bad as it was previously. Bug: v8:7027 Change-Id: Icf8a7ee87bb7ebc54f82c1b9166fc5e78c12bc0e Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/911574Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51222}
-