- 21 May, 2019 2 commits
-
-
Toon Verwaest authored
This was already unsupported by the map updated because the condition was manually checked before CanBeInPlaceChangedTo. Since the latter function missed the check, however, new code using the function (json parser) missed the relevant check. Simply move the condition to the function. Bug: chromium:964869 Change-Id: I9424a5706c5f6d637acbf532707da3f1e7d9b55e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622114 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#61703}
-
Andreas Haas authored
This is just for convenience, and actually surprising behavior. R=clemensh@chromium.org Bug: v8:9183 Change-Id: I3316856e63b97bfb06da897c6f8b716bc988aa36 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621932 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61684}
-
- 20 May, 2019 3 commits
-
-
Jaroslav Sevcik authored
This reverts commit ad1fcd43. Reason for revert: Breaks waterfall. Original change's description: > [cleanup] Remove the now-unused deopt_count from feedback vector. > > Bug: v8:9183 > Change-Id: Iceeccc8ab1e4e77b428e7e2feec39bff3317f241 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617675 > Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61665} TBR=mstarzinger@chromium.org,jarin@chromium.org Change-Id: Iea0e6a329f55a3a941f0b976925b2abdf7eece38 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9183 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619867Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61666}
-
Jaroslav Sevcik authored
Bug: v8:9183 Change-Id: Iceeccc8ab1e4e77b428e7e2feec39bff3317f241 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617675 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61665}
-
Benedikt Meurer authored
The invariant is that Map::bit_field2 shouldn't change, and the IsInRetainedMapListBit apparently changes when the map is held weakly from optimized code. This causes TurboFan compilations to change the Map::Hash() result, which in turn causes lookups on the normalized map cache to miss (and maybe other bad consequences). With this change we swap Map::IsInRetainedMapListBit (previously in bit_field2) and Map::HasHiddenPrototypeBit (previously in bit_field3) to address this problem. Bug: chromium:963411, v8:9114, v8:9267 Change-Id: I040a27c37305fa602649750bd93bee40c91fca78 Cq-Include-Trybots: luci.chromium.try:linux-rel,win7-rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619747 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61657}
-
- 17 May, 2019 2 commits
-
-
Mike Stanton authored
Fastpath failed to store the hole on the array left side. Bug: chromium:940274 Change-Id: I1eca7b241030474cf5aed6c68f155a1d22ae553e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617255 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#61618}
-
Santiago Aboy Solanes authored
Fixes the chromium bug 963891 Bug: chromium:963891 Change-Id: Ie90c9581044b7d10dd8fcd73d52bda5fdfead292 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617248Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#61608}
-
- 16 May, 2019 1 commit
-
-
Toon Verwaest authored
Bug: chromium:963568 Change-Id: Icf0d1451dc4976fa18aa42a001d0f7312d3e9fcd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615179 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#61570}
-
- 15 May, 2019 3 commits
-
-
Toon Verwaest authored
Additionally pass WriteBarrierMode while building the object Change-Id: Ibc8ad592f822ee3b046406013cc36ae64f6b099b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613251Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#61547}
-
Toon Verwaest authored
This avoids the need to throw range errors when we run out of stack, limiting us only by available memory. The main parser loop is implemented by two subloops. The first subloop finishes whenever it generates primitive values, empty arrays, or empty objects. If a non-empty object or array is started, the loop continues to parse its first member. The second subloop consumes produced values and either adds them to the parent array or object, or returns it. The second loop finishes whenever a next value needs to be produced. When the loop itself produces a finished array or object, the loop continues. Exceptions are handled by moving the cursor to end-of-input. Upon end-of-input, the first loop sets the continuation to "kFail". That causes the second loop to tear down continuation stack and related handle scopes, resulting in an empty handle. The CL additionally buffers all named properties and elements so we can immediately allocate a correctly shaped object. For object elements we'll take flat array or dictionary encoding depending on what is more efficient. This means that element handles are now allocated in their parent HandleScope, rather than having local handlescopes per-property (of big objects); which is why I've adjusted the handle-count test to not allocate as many properties. In the future it would be nice to not have to allocate (as many) handles since almost everything in the JSON graph will survive JSON parsing... Bug: chromium:710383 Change-Id: Ia3a7fd0ac260fb1c0e5f929276792b2f8e5fc0ca Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1609802Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#61533}
-
Mythri A authored
Bug: v8:8394 Change-Id: I5b4c02f5f36710b3fa15037e1fa1520b759447c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1611798Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#61501}
-
- 14 May, 2019 3 commits
-
-
Benedikt Meurer authored
Previously we had a special, unshared map on the native context that was used for results of builtin iterators, which was different from the map that is created from an object literal like `{value, done}`. This not only leads to unnecessary polymorphism, but also makes it impossible for user defined iterators to take the fast-paths that we have in various places (i.e. in collections or promises). With this change we now properly share the map for `{value, done}` and use that for the builtin iterator result objects, as well as the fast-paths. Drive-by-fix: Remove the restrictions on map caching and transition caching during bootstrapping. This no longer makes sense. Bug: v8:9114, v8:9243 Change-Id: I19eb9071f7ec0ed58f8a6f87eed781bc790174b7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1609794 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#61488}
-
Benedikt Meurer authored
When using the fast-properties optimization for `delete` with constant fields we don't properly invalidate the constness on the original map and might thereby just follow the same transition again later with the same object, effectively violating the constness of that field. This disables the fast-properties optimization for `delete` in case of a field marked as "const" as a quick-fix. We might still want to change the logic to properly invalidate the "const" bit later. Bug: chromium:962588, v8:9233 Change-Id: I1d0a8649d117731a0cd5ebdb4b6d0b22a900f33d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1609796Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61484}
-
Benedikt Meurer authored
For keyed stores to JSArrays we can generally allow the receiver to grow to the necessary size by bumping the magical length property. This works for regular Arrays, but not in the case the prototype chain contains a TypedArray, as that is going to swallow all stores that are considered out-of-bounds for it. We don't wanna deal with that kind of complexity in the IC handlers, so we just refuse to handle that case (also giving TurboFan the signal that it shouldn't attempt to handle growing stores in that case). Bug: chromium:960134, chromium:961709 Change-Id: Ia886de590c32ae51ed4ebe38fc237ed975a635aa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1609790Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61465}
-
- 13 May, 2019 3 commits
-
-
Joyee Cheung authored
Added null check when printing the brand with --print-ast. Bug: chromium:961507, chromium:961508 Original change's description: > [class] implement private method declarations > > This patch implements the declarations of private methods, the access > of private methods would be left to a future patch. > When a private methods declaration is encountered, we now: > > - Create a brand symbol during class evaluation and store it in the > context. > - Create the closures for the private methods > - Load the brand from the context and store it in the instance in the > constructor. > > Design: https://docs.google.com/document/d/1T-Ql6HOIH2U_8YjWkwK2rTfywwb7b3Qe8d3jkz72KwA/edit# > > Bug: v8:8330 > Change-Id: I2d695cbdc8a7367ddc7620d627b318f779d36150 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1568708 > Commit-Queue: Joyee Cheung <joyee@igalia.com> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61387} Change-Id: I3bf465f70c27914c9ec19f3f59ae018b28c9a866 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1605521 Commit-Queue: Joyee Cheung <joyee@igalia.com> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#61459}
-
Mythri A authored
Bug: v8:8394 Change-Id: I593393f30eaa6e87cef52d8b8883010e229cb12a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1609540 Auto-Submit: Mythri Alle <mythria@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#61448}
-
Sigurd Schneider authored
TurboFan truncated null to +0 even in contexts such as -0 == null because it was not handling the TypeCheck correctly. This restricts the type conversion case to not apply truncation in this case (see comment in patch). Change-Id: Ia38ace9608800c8d61988de402a31dd863d9160a Bug: chromium:961237 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1609538Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#61446}
-
- 10 May, 2019 2 commits
-
-
Clemens Hammacher authored
{NativeModule::GetCode} can actually return {nullptr} if no code was compiled yet for a function, e.g. in asm.js where we use lazy compilation. In that case, we must not try to increment the ref count on the nonexisting code object. We had a few errors recently that were hard to reproduce because we do not have a flag to enable code logging. Clusterfuzz managed to accomplish this by passing --trace-ic. In order to test bugs in code logging properly, this CL introduces a new runtime function called "EnableCodeLoggingForTesting". It registers a noop {CodeEventListener} and enables code logging in the wasm engine. We should whitelist this flag in ClusterFuzz to potentially flush out more bugs. R=mstarzinger@chromium.org CC=frgossen@chromium.org Bug: v8:8217, chromium:961129, chromium:961245, chromium:961128 Change-Id: I2f97c109db70b41531d58580b71f6781beeb8dcb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1602700 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61404}
-
Maya Lekova authored
JSInliner class wrongly assumed that all functions passing through JSInliningHeuristic have feedback vectors, but that's not the case when the inlining candidate hasn't been called yet. Bug: chromium:961522 Change-Id: I89c0f2098add19d9b59394f1e7230cbec426119d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1605720Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#61400}
-
- 09 May, 2019 1 commit
-
-
tzik authored
A DCHECK in LookupIterator::name hits when we add a indexed property, as it requires a named property. This replaces it with GetName to avoid the failure. Bug: chromium:959727 Change-Id: I1e98b313ec9257db80460a34d691016acbceb3c9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1597372 Commit-Queue: Taiju Tsuiki <tzik@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#61358}
-
- 08 May, 2019 3 commits
-
-
Toon Verwaest authored
Otherwise (this) will leak into a later this=> making it seem like a valid arrow function head. Bug: chromium:941703 Change-Id: I5c3ff70f1d525ec0da53b401a0bfec4c1ee7812f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1601260 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#61345}
-
Mythri A authored
This is a reland of 289b2576. The fix for failures landed here: https://chromium-review.googlesource.com/c/v8/v8/+/1599388 Original change's description: > [Test] Update tests to work with lazy feedback allocation. > > This adds either %EnsureFeedbackVectorForFunction or > %PrepareFunctionForOptimization to allocate feedback vectors when testing > optimization, allocation sites, IC transitions etc., > > Bug: v8:8394 > Change-Id: I6ad1b6d460e4abda693b326cddb87754e080a0a1 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1593303 > Commit-Queue: Mythri Alle <mythria@chromium.org> > Auto-Submit: Mythri Alle <mythria@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61212} Bug: v8:8394 Change-Id: Idb5bba221d138e6fd73155f959b9e16fc948c709 TBR: rmcilroy@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1599607Reviewed-by:
Mythri Alle <mythria@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Auto-Submit: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#61332}
-
Mythri A authored
Bug: v8:9207 Change-Id: Ie137e8c2395e835d532394495d892ad9b2cfc90d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1601133 Commit-Queue: Mythri Alle <mythria@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Auto-Submit: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#61322}
-
- 07 May, 2019 3 commits
-
-
Benedikt Meurer authored
Generalize the existing work-around in the method `Map::GeneralizeIfCanHaveTransitionableFastElementsKind()` to also go to the most general field representation (in addition to going to the most field type) for objects with transitionable fast elements kinds. That means that we essentially disable field representation tracking for arrays, arguments objects and value wrappers (for which the field type tracking is already disabled). Drive-by-fix: Remove the `constness` parameter to the above mentioned helper method. And fix the printing of the descriptor expectations to properly print the field type. Change-Id: I1bba9415f4bdd2c916f9d105d9120c7071d2c498 Cq-Include-Trybots: luci.chromium.try:linux-rel,win7-rel Doc: http://bit.ly/v8-in-place-field-representation-changes Bug: v8:8749, v8:8865, v8:9114, chromium:959645, chromium:952682 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1598756 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#61284}
-
Peter Marshall authored
This is a reland of ad44c258 Patchset 2 is the original CL Patchset 3 fixes some misuses of FixedArrayBase::length() and adds some DCHECKS to flush out any more misuses. Patchset 4 adds the PPC/S390 port by miladfar@ca.ibm.com. Original change's description: > [typedarray] Make JSTypedArray::length authoritative. > > This is the first step towards full huge typed array support in V8. > Before this change, the JSTypedArray::length and the elements backing > store length (FixedTypedArrayBase::length) were used more or less > interchangeably to determine the number of elements in a JSTypedArray. > > With this change we disentangle these two lengths, and instead make > JSTypedArray::length authoritative. For on-heap typed arrays, the > FixedTypedArrayBase::length will remain the number of elements in the > backing store, but for the off-heap typed arrays, this length will be > set to 0 (matching the fact that the FixedTypedArrayBase instance does > not contain any elements itself). > > This also unifies the JSTypedArray::set_/length() and length_value() > methods to only have JSTypedArray::set_/length() which returns/takes > size_t values. Currently this still requires the values to be in Smi > range, but later we will extend this to allow arbitrary size_t values > (in the safe integer range). > > Bug: v8:4153, v8:7881 > Change-Id: Iff9089130bb31fa9e08e0cf913e7ab52c3dbf107 > Cq-Include-Trybots: luci.chromium.try:linux-blink-rel > Doc: http://doc/1Z-wM2qwvAuxH46e9ivtkYvKzzwYZg8ymm0x0wJaomow > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1543729 > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Ben Titzer <titzer@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60648} Bug: v8:4153, v8:7881, v8:9105 Change-Id: Ic38f833071a723642ebc6f82a4012dbc0878ef98 Cq-Include-Trybots: luci.chromium.try:linux-blink-rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1594435Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#61275}
-
Mythri A authored
This is a reland of d14ed12e with fix for test failures in lite mode. When handling load named properties (without feedback vectors) we used to miss to runtimes if the prototypes aren't set. This was because we wanted to give the prototype a chance to become fast, since most prototypes start in slow mode but move to fast after the initial setup. Though this check is not really useful when we don't have feedback vectors, and once feedback vectors are allocated we will turn the prototypes fast anyway. Bug: v8:8394, v8:8860 Change-Id: I5c7b5061e1d9068c72d6f0eea47517880940a054 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1591772Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#61267}
-
- 04 May, 2019 1 commit
-
-
Ben Smith authored
See the similar fix for memory_copy_wrapper here: https://chromium-review.googlesource.com/c/v8/v8/+/1584326 Bug: chromium:957405 Change-Id: I49e321186e40fd874f10d08e0e5a53aa225cfa19 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1590386Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#61223}
-
- 03 May, 2019 3 commits
-
-
Clemens Hammacher authored
This reverts commit 289b2576. Reason for revert: Fails gc-stress: https://ci.chromium.org/p/v8/builders/ci/V8%20Mac64%20GC%20Stress/7143 Original change's description: > [Test] Update tests to work with lazy feedback allocation. > > This adds either %EnsureFeedbackVectorForFunction or > %PrepareFunctionForOptimization to allocate feedback vectors when testing > optimization, allocation sites, IC transitions etc., > > Bug: v8:8394 > Change-Id: I6ad1b6d460e4abda693b326cddb87754e080a0a1 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1593303 > Commit-Queue: Mythri Alle <mythria@chromium.org> > Auto-Submit: Mythri Alle <mythria@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61212} TBR=rmcilroy@chromium.org,mythria@chromium.org Change-Id: I2a78bfd3ee6102c1d2062957970f425308050d3d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8394 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1594565Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61213}
-
Mythri A authored
This adds either %EnsureFeedbackVectorForFunction or %PrepareFunctionForOptimization to allocate feedback vectors when testing optimization, allocation sites, IC transitions etc., Bug: v8:8394 Change-Id: I6ad1b6d460e4abda693b326cddb87754e080a0a1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1593303 Commit-Queue: Mythri Alle <mythria@chromium.org> Auto-Submit: Mythri Alle <mythria@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#61212}
-
Frederik Gossen authored
Fix function name in error messages thrown by the streaming API. The API functions {WebAssembly.compileStreaming} and {WebAssembly.instantiateStreaming} are now mentioned where needed. Bug: v8:9184 Change-Id: I70b27efe1c027d119fa7b5b9be27988a92304682 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588468Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Frederik Gossen <frgossen@google.com> Cr-Commit-Position: refs/heads/master@{#61202}
-
- 02 May, 2019 1 commit
-
-
Seth Brenith authored
On Windows, expanding the stack by more than 4 KB at a time can cause access violations. This change fixes a few known cases (and includes unit tests for those), and attempts to make stack expansion more consistent overall by using the AllocateStackSpace helper method everywhere we can, even when the offset is a small constant. On arm64, there was already a consistent method for stack pointer manipulation using the Claim and Drop methods, so Claim is updated to touch every page. Bug: v8:9017 Change-Id: I2dbbceeebbdefaf45803e9b621fe83f52234a395 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1570666 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#61186}
-
- 30 Apr, 2019 2 commits
-
-
Frederik Gossen authored
Fix recognition of lazy functions when {--wasm-lazy-compilation} is used. Bug: chromium:956771 Change-Id: I3f9bb25ccf3920a6c3d266876faace8841dcdc61 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585843Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Frederik Gossen <frgossen@google.com> Cr-Commit-Position: refs/heads/master@{#61114}
-
Frederik Gossen authored
Ignore the error type in {assertThrows} only if it was not passed as an argument. If users do not care about the error type they can user the generic type {Error}. Before this change, an undefined error type would simply be ignored. A simple typo could therefore disable the error type assertion without being recognized. Change-Id: I9becfd0bf14dcaa511854e65ff94f94481cc79b0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585855 Commit-Queue: Frederik Gossen <frgossen@google.com> Reviewed-by:
Mathias Bynens <mathias@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61105}
-
- 26 Apr, 2019 1 commit
-
-
Andreas Haas authored
The function {memory_copy_wrapper} is called directly from WebAssembly. Before calling {memory_copy_wrapper} we do not reset the tread-in-wasm flag. On asan builds on Windows this causes the problem observed in the crash report. My theory is the following: asan on Windows uses exceptions to allocate shadow memory lazily. When {memory_copy_wrapper} accesses memory, asan causes an exception to allocate shadow memory. This exception is first caught by the WebAssembly trap handler, which resets the thread-in-wasm flag but then does not handle the exception because it cannot find a proper landing pad. Asan then handles the exception and continues execution. However. the thread-in-wasm flag is not set anymore. A later check of the thread-in-wasm flag then fails. This CL disables asan for {memory_copy_wrapper} and thereby fixes the problem. As indicated above, another solution would be to reset and set the thread-in-wasm flag before and after the call to the C function, respectively. However, we do not do that for other uses of direct calls to C. R=binji@chromium.org Bug: chromium:952342 Change-Id: I2adb2eccf2ac25be58392d21f8f43a04414c7811 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1584326Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#61040}
-
- 25 Apr, 2019 4 commits
-
-
Simon Zünd authored
This is a reland of 3d846115 Reland changes mjsunit.status to skip the regression test on all bots except ASAN. Original change's description: > [typedarray] Fix crash when sorting SharedArrayBuffers > > TypedArray#sort has a fast-path when the user does not provide a > comparison function. This fast-path utilizes std::sort which operates > directly on the raw data. Per spec, std::sort requires the "less than" > operation to be anti-symmetric and transitive. > > When sorting SharedArrayBuffers (SAB) that are concurrently modified during > sorting, the "less than" operator stops being consistent as the > underlying data is constantly modified. This breaks some invariants > in std::sort resulting in infinite loops or straight out segfaults. > > This CL fixes this by copying the data before sorting SABs and > writing the sorted result back. > > Note: The added regression test is tailored for ASAN bots as a > normal build would need too many iterations to consistently crash. > > R=neis@chromium.org, petermarshall@chromium.org > > Bug: v8:9161 > Change-Id: Ic089928652f75865bfdb11e7453806faa6ecb988 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1581641 > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Simon Zünd <szuend@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61004} Bug: v8:9161 Change-Id: Idffc3fbb5f28f4966c8f1ac6770d5b5d6003a7e7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1583726Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#61011}
-
Michael Achenbach authored
This reverts commit 3d846115. Reason for revert: The test hangs flakily on windows: https://ci.chromium.org/p/v8/builders/ci/V8%20Win32/20612 https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20nosnap%20-%20shared/33147 https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20debug/19945 Original change's description: > [typedarray] Fix crash when sorting SharedArrayBuffers > > TypedArray#sort has a fast-path when the user does not provide a > comparison function. This fast-path utilizes std::sort which operates > directly on the raw data. Per spec, std::sort requires the "less than" > operation to be anti-symmetric and transitive. > > When sorting SharedArrayBuffers (SAB) that are concurrently modified during > sorting, the "less than" operator stops being consistent as the > underlying data is constantly modified. This breaks some invariants > in std::sort resulting in infinite loops or straight out segfaults. > > This CL fixes this by copying the data before sorting SABs and > writing the sorted result back. > > Note: The added regression test is tailored for ASAN bots as a > normal build would need too many iterations to consistently crash. > > R=neis@chromium.org, petermarshall@chromium.org > > Bug: v8:9161 > Change-Id: Ic089928652f75865bfdb11e7453806faa6ecb988 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1581641 > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Simon Zünd <szuend@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61004} TBR=neis@chromium.org,petermarshall@chromium.org,szuend@chromium.org Change-Id: I046da3e4228bb1a8a3aa89d9c9d8de11875a9273 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9161 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1583725Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#61007}
-
peterwmwong authored
It shipped in Chrome 73. Bug: v8:6890 Change-Id: Idd8c98cf05a0d6e8fa58c5b0a34d079631f68b1b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1582879Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Mathias Bynens <mathias@chromium.org> Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Cr-Commit-Position: refs/heads/master@{#61005}
-
Simon Zünd authored
TypedArray#sort has a fast-path when the user does not provide a comparison function. This fast-path utilizes std::sort which operates directly on the raw data. Per spec, std::sort requires the "less than" operation to be anti-symmetric and transitive. When sorting SharedArrayBuffers (SAB) that are concurrently modified during sorting, the "less than" operator stops being consistent as the underlying data is constantly modified. This breaks some invariants in std::sort resulting in infinite loops or straight out segfaults. This CL fixes this by copying the data before sorting SABs and writing the sorted result back. Note: The added regression test is tailored for ASAN bots as a normal build would need too many iterations to consistently crash. R=neis@chromium.org, petermarshall@chromium.org Bug: v8:9161 Change-Id: Ic089928652f75865bfdb11e7453806faa6ecb988 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1581641Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#61004}
-
- 24 Apr, 2019 1 commit
-
-
Michael Starzinger authored
R=titzer@chromium.org TEST=mjsunit/regress/regress-9165 BUG=v8:9165 Change-Id: If6d7d56bf164a85675590e69bf9857c11fc1b218 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1578463Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60969}
-
- 23 Apr, 2019 1 commit
-
-
Michael Starzinger authored
The WebAssembly JavaScript Interface specifies[1] that exported functions are not constructors, hence do not have the "prototype" property. This is not true for asm.js exported functions which are expected to look like normal functions (or constructors). [1] https://webassembly.github.io/spec/js-api/index.html#exported-function-exotic-objects R=clemensh@chromium.org TEST=mjsunit/regress/regress-crbug-935800 BUG=chromium:935800 Change-Id: Idecacfb7f5d4668540589af95fd59872334c21a3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1578499 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60943}
-