- 18 Oct, 2018 1 commit
-
-
Marja Hölttä authored
If the user's cleanup function didn't iterate all available WeakCells, we need to schedule the cleanup task again at some point. The previous condition resulted it never being scheduled. BUG=v8:8179 Change-Id: I8f5f4c01d1eb6a3cca8bd21bdc52c38663889882 Reviewed-on: https://chromium-review.googlesource.com/c/1286686 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56772}
-
- 17 Oct, 2018 2 commits
-
-
Michael Lippautz authored
Adds reporting for - V8.GCMarkCompactor as sum of V8 mark-compact events Bug: chromium:843903 Change-Id: I5e8a80c8d1a9c5bf696635b54659ac56403f52d5 Reviewed-on: https://chromium-review.googlesource.com/c/1256764 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56750}
-
Takuto Ikuta authored
This is a preparation CL to remove -Wno-unused-lambda-capture warning suppression. Bug: chromium:681136 Change-Id: If3d16c8a6719bf3135e028ab2bafe850778e31b5 Reviewed-on: https://chromium-review.googlesource.com/c/1286390Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Takuto Ikuta <tikuta@chromium.org> Cr-Commit-Position: refs/heads/master@{#56722}
-
- 16 Oct, 2018 3 commits
-
-
Jakob Kummerow authored
with internal::Address. This is in preparation for the upcoming changes to internal::Object. The public API is unchanged, and there should be no change in behavior either. Most of the casts newly introduced here will disappear again once the migration is complete. Bug: v8:3770 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I2990b06a2511ccc5de3f98fd95a805f30ed589ab Reviewed-on: https://chromium-review.googlesource.com/c/1036612Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#56705}
-
Dan Elphick authored
Change Heap::IterateStrongRoots to never iterate the read-only roots. In doing so remove VISIT_ALL_BUT_READ_ONLY and VISIT_ONLY_STRONG_FOR_SERIALIZATION. All such uses should now use VISIT_ALL and VISIT_ONLY_STRONG. Where ReadOnlyRoots iteration is required, this adds ReadOnlyRoots(isolate)->Iterate() at the call site. Add new begin, end, strong_mutable_roots_begin and strong_mutable_roots_end methods to RootsTable and try and make the existing uses a little more consistent. Bug: v8:8191 Change-Id: Ie9d0f9e5186db418428e2fafd38432b0bd879daa Reviewed-on: https://chromium-review.googlesource.com/c/1278500 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#56672}
-
Florian Sattler authored
Change-Id: Ic8fe43e65fddec16b3c5c029acebda5ba1805e08 Reviewed-on: https://chromium-review.googlesource.com/c/1275812Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#56671}
-
- 15 Oct, 2018 3 commits
-
-
Ulan Degenbaev authored
The race happens when the sweeper is looking up the size of an object that had its map replaced concurrently. The fix is to load the object map using an acquire load so that the sweeper observes the initializing stores of the new map. Bug: v8:8303 Change-Id: Ifaaef06cb815be7d07b6a574085ee61a466bc1d6 Reviewed-on: https://chromium-review.googlesource.com/c/1280310Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56652}
-
Michael Lippautz authored
Callers of the ConcurrentMarking API should check the flags, which they were already mostly doing. Change-Id: Ie273bb740fe6d2b36dfb924ce813670ebd47bf3f Reviewed-on: https://chromium-review.googlesource.com/c/1280307Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56638}
-
Clemens Hammacher authored
Since {Address} is just {uintptr_t}, we can just use the standard {IsAligned} function. R=mlippautz@chromium.org Bug: v8:8238 Change-Id: I260591e88b50855cf327096a07b2c18f0c1e4508 Reviewed-on: https://chromium-review.googlesource.com/c/1280204Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56631}
-
- 12 Oct, 2018 2 commits
-
-
Clemens Hammacher authored
LockGuard is mostly used with Mutex. Since both are defined outside the internal namespace, we often have to write {base::LockGuard<base::Mutex>}. This CL shortens this to {base::MutexGuard} across the code base R=mlippautz@chromium.org Bug: v8:8238 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I020d5933b73aafb98c4b72e3bb2dfd07c979ba73 Reviewed-on: https://chromium-review.googlesource.com/c/1278796Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56612}
-
Benedikt Meurer authored
Change the way we start collecting async stack traces by storing the current microtask as a root instead of trying to make sense of the last frame we see. This makes it possible to use the zero cost async stack traces in Node.js as well (where the last JavaScript frame we see is not the actual async function, but some frame related to the main event loop usually). In addition to the benefit that it now works with Node.js, we can also extend the new machinery to look through (almost arbitrary) promise chains. For example this code snippet ```js (async function() { await Promise.resolve().then(() => console.log(new Error().stack)); })(); ``` can be made to also show the async function frame, even though at the point where the stack trace is collected we don't have any async function on the stack. But instead there's a PromiseReactionJobTask as "current microtask", and we can dig into the chained promise to see where the async execution is going to continue and eventually find the await promise in the chain. This also removes the removes the need to allocate `.generator_object` specially during scope resolution. Bug: v8:7522 Ref: nodejs/node#11865 Tbr: ulan@chromium.org Design-Document: bit.ly/v8-zero-cost-async-stack-traces Change-Id: Ib96cb17c2f75cce083a24e5ba2bbb7914e20d203 Reviewed-on: https://chromium-review.googlesource.com/c/1277505 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#56590}
-
- 11 Oct, 2018 4 commits
-
-
Jakob Kummerow authored
The primary purpose of this is to untangle a circular dependency objects.h -> handles.h -> objects.h. Most compilation units only need message-template.h, without the rest of messages.h. Bonus: change the enum to an enum class for improved type safety. Bug: v8:3770 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I8102c55197a450811de2588a68a08e7f99ea6b9e Reviewed-on: https://chromium-review.googlesource.com/c/1272193 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#56583}
-
Hannes Payer authored
Change-Id: Idc52e3ed6af13b20569a412e98bae0841d32e009 Reviewed-on: https://chromium-review.googlesource.com/c/1254125 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56572}
-
Igor Sheludko authored
... and Heap::root_handle() to RootsTable. This is a preliminary step before moving IsolateData object from Heap to Isolate which is required for pointer-compression friendly heap layout. Bug: v8:8182 Change-Id: Ideacc1c9e4435be7a33db08415ac1ad46e956199 Reviewed-on: https://chromium-review.googlesource.com/c/1273238Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#56552}
-
Igor Sheludko authored
... containing RootsTable, ExternalReferenceTable, builtins array and potentially some other data that can be accessed via the RootRegister. This is a preliminary step before adding support for pointer-compression friendly heap layout. Bug: v8:8182 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I2899f657aaff1351a5304afa0b1a4c5ae4cfc31d Reviewed-on: https://chromium-review.googlesource.com/c/1245426Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#56551}
-
- 10 Oct, 2018 7 commits
-
-
Michael Lippautz authored
This reverts commit fa65063a. Reason for revert: This changes API contract with Blink as some state is destroyed before actually tearing down the Isolate. Flushing the second round tasks then tries to access various state that is already gone on the Blink side. See bugs. Bug: chromium:893944, chromium:893549, chromium:890631 Original change's description: > [heap] Run phantom handle callbacks on tear down > > Pending phantom handle callbacks are not reliably executed if the heap > shuts down. This can cause to memory leaks or other unwanted behaviour, > like in wasm where the NativeModules (held in Managed objects > implemented via phantom handles) unregister from the WasmEngine in the > second-pass callback. This must be executed before tearing down the > WasmEngine. > > This CL fixes this by running pending callback synchronously on heap > tear down. > > R=ulan@chromium.org, mlippautz@chromium.org > > Bug: v8:8208 > Change-Id: I27b630c4d8f1fb12309040ea2179b64eed38710a > Reviewed-on: https://chromium-review.googlesource.com/1249101 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56286} TBR=ulan@chromium.org,mlippautz@chromium.org,clemensh@chromium.org Bug: v8:8208 Change-Id: I4b403fd84473edb8895c3725ff3348574c54247b Reviewed-on: https://chromium-review.googlesource.com/c/1274085 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56542}
-
Michael Lippautz authored
Pass on information about the embedder state using the fact that tasks are run from top level Bug: chromium:893944 Change-Id: I01441778770c5acc784540e496eec5c3fdb87796 Reviewed-on: https://chromium-review.googlesource.com/c/1273048 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56540}
-
Hai Dang authored
The MapIterator protector protects the original iteration behaviors of Map.prototype.keys(), Map.prototype.values(), and Set.prototype.entries(). It does not protect the original iteration behavior of Map.prototype[Symbol.iterator](). The protector is invalidated when: * The 'next' property is set on an object where the property holder is the %MapIteratorPrototype% (e.g. because the object is that very prototype). * The 'Symbol.iterator' property is set on an object where the property holder is the %IteratorPrototype%. Note that this also invalidates the SetIterator protector (see below). The SetIterator protector protects the original iteration behavior of Set.prototype.keys(), Set.prototype.values(), Set.prototype.entries(), and Set.prototype[Symbol.iterator](). The protector is invalidated when: * The 'next' property is set on an object where the property holder is the %SetIteratorPrototype% (e.g. because the object is that very prototype). * The 'Symbol.iterator' property is set on an object where the property holder is the %SetPrototype% OR %IteratorPrototype%. This means that setting Symbol.iterator on a MapIterator object can also invalidate the SetIterator protector, and vice versa, setting Symbol.iterator on a SetIterator object can also invalidate the MapIterator. This is an over- approximation for the sake of simplicity. Bug: v8:7980 Change-Id: I54ad6e4c7f19ccc27d7001f6c4b6c8d6ea4ee871 Reviewed-on: https://chromium-review.googlesource.com/c/1273102Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Hai Dang <dhai@google.com> Cr-Commit-Position: refs/heads/master@{#56530}
-
Marja Hölttä authored
1) As found by the GC fuzzer: missing HandleScopes. 2) The RecordSlot barrier was missing for NativeContext::AddDirtyJSWeakFactory. 3) Need Context::Scope to surround the cleanup function (if it results in an error, we try to get native_context() from Isolate). BUG=v8:8179,v8:8286 Change-Id: I2d995a76770658848e3c9629333bedbc2ef43b82 Reviewed-on: https://chromium-review.googlesource.com/c/1273051Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#56529}
-
Ross McIlroy authored
Change-Id: I405172d79e0cbb043ce369ded625940178344dde Reviewed-on: https://chromium-review.googlesource.com/c/1273104Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#56522}
-
Benedikt Meurer authored
This implements the editorial change in https://github.com/tc39/ecma262/pull/1146 which removes the need to allocate the throwaway promise in await (the throwaway promise was not exposed to user JavaScript anyways, but this spec change allows us to rely on this behavior). Now we still need the throwaway promise for proper before and after events with both DevTools (which might change) and PromiseHooks. So if either DevTools or PromiseHooks is on, we call into %AwaitPromisesInit, which then allocates the throwaway promise and does all the other debugger/hooks related setup. This gives around 7% improvement on the doxbee-async-es2017-native and around 1-2% on the parallel-async-es2017-native benchmarks. Bug: v8:7253, v8:8285 Ref: tc39/ecma262#1146 Tbr: ulan@chromium.org Change-Id: I972ba0538ec8c00808e95b183603025c7e55a6d3 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Reviewed-on: https://chromium-review.googlesource.com/c/1270798 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#56506}
-
Igor Sheludko authored
... and remove Heap::RootCanBeWrittenAfterInitialization() and Heap::RootCanBeTreatedAsConstant() in favour of RootsTable::IsImmortalImmovable(). Bug: v8:8238 Change-Id: I804d06136de9584b8c4940fd8ab9d18fb3ef7980 Reviewed-on: https://chromium-review.googlesource.com/c/1270837 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#56500}
-
- 09 Oct, 2018 8 commits
-
-
Michael Lippautz authored
Change-Id: Ib24a7f2c8c69828c5457595f891dbcb6b2a70296 Reviewed-on: https://chromium-review.googlesource.com/c/1270923Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56499}
-
Michael Lippautz authored
Provide flag to set a deterministic GC schedule. The GC still uses multiple tasks but on a fixed growing strategy. Change-Id: I937cf77ae0b0d1e513d4976a23c7f23a151d77c5 Reviewed-on: https://chromium-review.googlesource.com/c/1270838 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56498}
-
Igor Sheludko authored
Bug: v8:8238 Change-Id: I112b6ec9c32afe03f43670aa3ed572af7525b26b Reviewed-on: https://chromium-review.googlesource.com/c/1270586 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56491}
-
Marja Hölttä authored
Minimal implementation to run a simple example (see test) demonstrating the weakness of WeakCell. - Behind FLAG_harmony_weak_refs - Add WeakFactory & WeakCell, no WeakRef in this version. Spec clarifications: goo.gl/7ujBAk Design doc: goo.gl/nvof2T BUG=v8:8179 Change-Id: Iea2a7a2201e6380644235d190a542ab46e082382 Reviewed-on: https://chromium-review.googlesource.com/c/1238579Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#56483}
-
Igor Sheludko authored
This is a reland of e3a42cfd Original change's description: > [cleanup] Remove Heap::kOldSpaceRoots constant > > ... in favour of RootsTable::IsImmortalImmovable(). > > Bug: v8:8238 > Change-Id: Ic8434a1658b9ba982a93dd268dbfe52a6cc5c6a2 > Reviewed-on: https://chromium-review.googlesource.com/c/1270582 > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56472} TBR=ulan@chromium.org,yangguo@chromium.org Bug: v8:8238 Change-Id: I20edf9c4a596670ad2e6cf1ee87e679ee4a66bee Reviewed-on: https://chromium-review.googlesource.com/c/1270593Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#56480}
-
Maya Lekova authored
This reverts commit e3a42cfd. Reason for revert: Breaking compilation on "V8 Linux - noi18n - debug" bot, see https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20noi18n%20-%20debug/23170 Original change's description: > [cleanup] Remove Heap::kOldSpaceRoots constant > > ... in favour of RootsTable::IsImmortalImmovable(). > > Bug: v8:8238 > Change-Id: Ic8434a1658b9ba982a93dd268dbfe52a6cc5c6a2 > Reviewed-on: https://chromium-review.googlesource.com/c/1270582 > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56472} TBR=ulan@chromium.org,yangguo@chromium.org,ishell@chromium.org Change-Id: I3a160716c9d558f4ab89b45a7257a461733f7273 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8238 Reviewed-on: https://chromium-review.googlesource.com/c/1270588Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#56475}
-
Igor Sheludko authored
... in favour of RootsTable::IsImmortalImmovable(). Bug: v8:8238 Change-Id: Ic8434a1658b9ba982a93dd268dbfe52a6cc5c6a2 Reviewed-on: https://chromium-review.googlesource.com/c/1270582 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56472}
-
Igor Sheludko authored
... by removing entries corresponding to read only roots (which are immortal immovable by definition) and using READ_ONLY_ROOT_LIST explicitly. This CL also renames the list to MUTABLE_IMMORTAL_IMMOVABLE_ROOT_LIST and moves Heap::RootIsImmortalImmovable() to RootsTable::IsImmortalImmovable(). Bug: v8:8238 Change-Id: I3e44a06d7a816955bc3471e788e883fb053b03d9 Reviewed-on: https://chromium-review.googlesource.com/c/1269035Reviewed-by:
Dan Elphick <delphick@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#56466}
-
- 08 Oct, 2018 2 commits
-
-
Michael Lippautz authored
The notification is only used for testing and benchmarking purposes. Announcing low memory is usually done using MemoryPressure API. Bug: chromium:843903 Change-Id: I998018f7f5f3a0d06283aa6010228a9c86f12c39 Reviewed-on: https://chromium-review.googlesource.com/c/1269037Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56454}
-
Hai Dang authored
This is a reland of ef2a19a2. Use AllocateJSArray to avoid allocating an empty fixed array. Original change's description: > Add fast path for spreading primitive strings. > > This improves the performance on primitive strings of > IterableToListWithSymbolLookup, which implements the > CreateArrayFromIterable bytecode. The fast path is only > taken if the string iterator protector is valid (that is, > String.prototype[Symbol.iterator] and > String.prototype[Symbol.iterator]().next are untouched). > > This brings spreading of primitive strings closer to the > performance of the string iterator optimizations. > (see https://docs.google.com/document/d/13z1fvRVpe_oEroplXEEX0a3WK94fhXorHjcOMsDmR-8/). > > Bug: chromium:881273, v8:7980 > Change-Id: Ic8d8619da2f2afcc9346203613a844f62653fd7a > Reviewed-on: https://chromium-review.googlesource.com/1243110 > Commit-Queue: Hai Dang <dhai@google.com> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56329} Bug: chromium:881273, v8:7980 Change-Id: I746c57ddfc300e1032057b5125bc824adf5c2cd3 Reviewed-on: https://chromium-review.googlesource.com/c/1267497 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#56438}
-
- 05 Oct, 2018 2 commits
-
-
Hannes Payer authored
Bug=chromium:852420 Change-Id: Ia810292e4f9592836e7ce734686cadc69328b1c3 Reviewed-on: https://chromium-review.googlesource.com/c/1262475 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56408}
-
Andreas Haas authored
Like https://crrev.com/c/1261145, but I forgot one use in the scavenger. R=ulan@chromium.org Bug: v8:8238 Change-Id: I75a1e1ef8d2bb7dddfc648c0a5b827ad466f0ad3 Reviewed-on: https://chromium-review.googlesource.com/c/1261935Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#56398}
-
- 04 Oct, 2018 4 commits
-
-
Andreas Haas authored
We want to replace all uses of CallOnForegroundThread eventually by the new TaskRunner API so that we can eventually deprecate the old API and remove it. R=ulan@chromium.org Bug: v8:8238 Change-Id: I7e451eddf05f1f7f273c5cfd57d82737380f3f02 Reviewed-on: https://chromium-review.googlesource.com/c/1261145Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#56378}
-
Dan Elphick authored
Adds new VisitModes VISIT_ALL_BUT_READ_ONLY and VISIT_STRONG_FOR_SERIALIZATION. GC-related methods like MarkReachableObjects now now use VISIT_ALL_BUT_READ_ONLY instead of VISIT_ALL. All GC-related VisitModes skip iterating over the read-only roots. All Serializer methods should always use a _FOR_SERIALIZATION value to ensure they do visit the read-only roots. Also adds RootsTable::read_only_roots_begin and end methods. Bug: v8:7464 Change-Id: I468d7ae9f345d9fc0e10837f01dc5b92bd996412 Reviewed-on: https://chromium-review.googlesource.com/c/1256245Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#56368}
-
Clemens Hammacher authored
Often, tasks just need to call a single API method. By implementing such tasks via a lambda, we save a lot of boilerplate. Additionally, since lambdas are defined inside other function bodies, they have access to private methods, which sometimes allows for better encapsulation. This CL introduces {CancelableLambdaTask} and {CancelableIdleLambdaTask} and uses them to replace some custom tasks. More can be refactored later. R=ahaas@chromium.org Bug: v8:8238 Change-Id: I88bd2c9bd57ebc32d082528f2e4251d741a0d021 Reviewed-on: https://chromium-review.googlesource.com/c/1256773 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56367}
-
Maya Lekova authored
This reverts commit ef2a19a2. Reason for revert: Broken layout tests: https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux_chromium_rel_ng/201392 Original change's description: > Add fast path for spreading primitive strings. > > This improves the performance on primitive strings of > IterableToListWithSymbolLookup, which implements the > CreateArrayFromIterable bytecode. The fast path is only > taken if the string iterator protector is valid (that is, > String.prototype[Symbol.iterator] and > String.prototype[Symbol.iterator]().next are untouched). > > This brings spreading of primitive strings closer to the > performance of the string iterator optimizations. > (see https://docs.google.com/document/d/13z1fvRVpe_oEroplXEEX0a3WK94fhXorHjcOMsDmR-8/). > > Bug: chromium:881273, v8:7980 > Change-Id: Ic8d8619da2f2afcc9346203613a844f62653fd7a > Reviewed-on: https://chromium-review.googlesource.com/1243110 > Commit-Queue: Hai Dang <dhai@google.com> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56329} TBR=ulan@chromium.org,neis@chromium.org,sigurds@chromium.org,bmeurer@chromium.org,dhai@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:881273, v8:7980 Change-Id: I4868160b87bdebf9fd2ff346aefd4cdce23681a1 Reviewed-on: https://chromium-review.googlesource.com/c/1261022Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#56365}
-
- 02 Oct, 2018 2 commits
-
-
Michael Achenbach authored
This reverts commit 574daf03. Reason for revert: Seems to break native arm: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Android%20Arm64%20-%20N5X/1051 https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Arm%20GC%20Stress/8462 Original change's description: > [disassembler] Better support for root-relative values > > In particular, recognize builtins' values accesses and direct accesses > to external reference values. For example: > > REX.W leaq rax,[r13+0x47a0] > REX.W leaq rbx,[r13+0x80b0] > > turns into > > REX.W leaq rax,[r13+0x47a0] (builtin (RecordWrite)) > REX.W leaq rbx,[r13+0x80b0] (external value (Isolate::context_address)) > > This CL also extends the via-root-register-accessible region to the > whole Isolate object. > > Bug: v8:8238 > Change-Id: I218d8589690579919cfa01b2f3c3094af0e73c51 > Reviewed-on: https://chromium-review.googlesource.com/1251550 > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56332} TBR=mstarzinger@chromium.org,ishell@chromium.org Change-Id: I28ad24c923f04fffbc2fd5a5d2248740302fae02 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8238 Reviewed-on: https://chromium-review.googlesource.com/1256772Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#56335}
-
Marja Hölttä authored
BUG=v8:5402,v8:8238 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I6cdc27cc8e687e32e08dfbd4f16b014f60ec2747 Reviewed-on: https://chromium-review.googlesource.com/1256243Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#56333}
-