- 07 Nov, 2017 1 commit
-
-
Yang Guo authored
Use (Seeded)NumberDictionary instead. Change-Id: I426cd0a33df7d47fe4fec0c108be5632ef7c0f19 Reviewed-on: https://chromium-review.googlesource.com/756697Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#49179}
-
- 31 Oct, 2017 1 commit
-
-
Benedikt Meurer authored
This adds support to the KeyedLoadIC to ignore out of bounds accesses for Strings and return undefined instead. We add a dedicated bit to the Smi handler to encode the OOB state and have TurboFan generate appropriate code for that case as well. This is mostly useful when programs accidentially access past the length of a string, which was observed and fixed for example in Babel recently, see https://github.com/babel/babel/pull/6589 for details. The idea is to also extend this mechanism to Arrays and maybe other receivers, as reading beyond the length is also often used in jQuery and other popular libraries. Note that this is considered a mitigation for a performance cliff and not a general optimization of OOB accesses. These should still be avoided and handled properly instead. This seems to further improve the babel test on the web-tooling-benchmark by around 1%, because the OOB access no longer turns the otherwise MONOMORPHIC access into MEGAMORPHIC state. Bug: v8:6936, v8:7014 Change-Id: I9df03304e056d7001a65da8e9621119f8e9bb55b Reviewed-on: https://chromium-review.googlesource.com/744022 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#49049}
-
- 24 Oct, 2017 1 commit
-
-
Daniel Clifford authored
Previously, V8's slice was implemented in a combination of C++ and a Javascript fallback. The disadvantage of this approach was that the fast-path required a call through the CEntryStub, which introduced considerable overhead for small arrays with fast elements kinds. Now the implementation primarily uses the CSA to generate both the full spec-complaint implementation as well as fast paths for argument objects and arrays with fast elements kinds. The CSA implementation uses a C++ implementation fallback in select situations where the the complexity of a CSA implementation would be too great and the CEntryStub overhead is not decisive (e.g. slices of dictionary elements arrays). Performance results on semi-random arrays with small number of elements (old vs. new): smi copy: 48.7 ms vs. 12 ms smi slice: 43.5 ms 14.8 ms object copy: 35.5 ms 7.7 ms object slice: 38.7 ms 8.8 ms dictionary slice: 2398.3 ms vs. 5.4 ms fast sloppy arguments slice: 9.6 ms vs. 7.2 ms slow sloppy arguments slice: 28.9 ms vs. 8.5 ms As a bonus, the new implementation is fully spec-compliant and fixes at least one existing bug. The design document for Array.prototype builtin rework can be found at https://goo.gl/wFHe2n Bug: v8:1956,v8:6601,v8:6710,v8:6978 Change-Id: Ia0155bedcf39b4577605ff754f416c2af938efb7 Reviewed-on: https://chromium-review.googlesource.com/574710 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48853}
-
- 23 Oct, 2017 1 commit
-
-
Choongwoo Han authored
- Fix a wrong type casting triggered when a given array's length is zero - Add a regression test case Bug: chromium:777182, chromium:768775 Change-Id: I615b73e9d7bad657c872c96c7a204efe355d8289 Reviewed-on: https://chromium-review.googlesource.com/732865Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#48821}
-
- 19 Oct, 2017 1 commit
-
-
Choongwoo Han authored
Replace GetElement and SetElement to Get and Set, and use CopyElements, which reduces 4x-13x overheads. Bug: chromium:768775 Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I58534b30c2035195c5f4b8f2c04e7c459bdbebaa Reviewed-on: https://chromium-review.googlesource.com/720661Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#48723}
-
- 18 Oct, 2017 1 commit
-
-
Clemens Hammacher authored
This CL fixes all occurences that don't require special OWNER reviews, or can be reviewed by Michi. After this one, we should be able to reenable the readability/check cpplint check. R=mstarzinger@chromium.org Bug: v8:6837, v8:6921 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: Ic81d68d5534eaa795b7197fed5c41ed158361d62 Reviewed-on: https://chromium-review.googlesource.com/721120 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48670}
-
- 13 Oct, 2017 1 commit
-
-
Mathias Bynens authored
New code should use nullptr instead of NULL. This patch updates existing use of NULL to nullptr where applicable, making the code base more consistent. BUG=v8:6928,v8:6921 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I4687f5b96fcfd88b41fa970a2b937b4f6538777c Reviewed-on: https://chromium-review.googlesource.com/718338 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#48557}
-
- 11 Sep, 2017 1 commit
-
-
Benedikt Meurer authored
It's quite common today to use Function#apply together with typed arrays, for example to construct a String from character codes (or code points) within a Uint8Array or Uint16Array, i.e. String.fromCharCode.apply(undefined, uint8array) is seen quite often on the web. But there are other interesting cases like Math.max.apply(undefined, float64array) to compute the maximum value in a Float64Array, which is definitely not the fastest implementation, but quite convenient and readable. Unfortunately these cases hit the super-slow-path of the Function#apply machinery in V8 currently, because Function#apply doesn't have any fast-path for TypedArrays. This CL adds a proper fast-path to CreateListFromArrayLike to the ElementsAccessor, which can be used as long as the typed array that's passed wasn't neutered. With this fast-path in place, the performance on the micro-benchmark mentioned in the issue improves from stringFromCharCode: 6386 ms. stringFromCodePoint: 8752 ms. to stringFromCharCode: 1932 ms. stringFromCodePoint: 4262 ms. which corresponds to a 2.0x-3.3x improvement. Bug: v8:2435 Change-Id: I4d39666e53644b11d5856982b005928e26f296fe Reviewed-on: https://chromium-review.googlesource.com/657405Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#47936}
-
- 05 Sep, 2017 1 commit
-
-
Franziska Hinkelmann authored
The V8 API provides interceptors. They are not part of the EcmaScript specification. But their behavior should be consistent. For example, when an EnumeratorInterceptor is defined, Object.keys(), Object.entries(), and Object.values() should all have the same number of entries. This CL creates consistent behavior among these functions. If a QueryCallback is present, it is used to filter the result from the EnumeratorCallback for enumerable properties. Bug: v8:6627 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I4f4271ddeb99a5e85918148c5033923c149b9468 Reviewed-on: https://chromium-review.googlesource.com/649786Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Franziska Hinkelmann <franzih@chromium.org> Cr-Commit-Position: refs/heads/master@{#47831}
-
- 22 Aug, 2017 1 commit
-
-
Adam Klein authored
It caused crashes in the extension process on Canary. This reverts commit b6059a67. Also revert followup test CL: "[api] Add test for EnumeratorCallback and for...in." as it depends on the logic in the reverted change. This reverts commit 56772de7. Bug: chromium:757371, v8:6627 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Id110128e6dc858a5a60ffc0175e8bb927b90bfc5 Reviewed-on: https://chromium-review.googlesource.com/626720Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#47522}
-
- 18 Aug, 2017 1 commit
-
-
Franziska Hinkelmann authored
The V8 API provides interceptors. They are not part of the EcmaScript specification. But their behavior should be consistent. For example, when an EnumeratorInterceptor is defined, Object.keys(), Object.entries(), and Object.values() should all have the same number of entries. This CL creates consistent behavior among these functions. If a QueryCallback is present, it is used to filter the result from the EnumeratorCallback for enumerable properties. Bug: v8:6627 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ie51e69bb77099d9fafc4b1ea02671eced610edba Reviewed-on: https://chromium-review.googlesource.com/609068Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Franziska Hinkelmann <franzih@chromium.org> Cr-Commit-Position: refs/heads/master@{#47442}
-
- 04 Aug, 2017 1 commit
-
-
Ben L. Titzer authored
Remove the include of frames.h in isolate.h and the include of frames-inl.h from various places, e.g. architecture-specific builtin files. R=yangguo@chromium.org Bug: Change-Id: If8d13188474702fd0b0c298f8e45ef393184b877 Reviewed-on: https://chromium-review.googlesource.com/600212Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#47154}
-
- 02 Aug, 2017 1 commit
-
-
Julien Brianceau authored
Bug: chromium:750830 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: Icab7b5a1c469d5e77d04df8bfca8319784e92af4 Reviewed-on: https://chromium-review.googlesource.com/595655 Commit-Queue: Julien Brianceau <jbriance@cisco.com> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Daniel Ehrenberg <littledan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47072}
-
- 12 Jul, 2017 1 commit
-
-
Clemens Hammacher authored
The problem popped up when passing the constants by reference (https://chromium-review.googlesource.com/c/565141). It's a bit ugly, but, the C++11 standard requires a definition additionally to the existing declaration in the body of the class: 9.4.2/4: If a static data member is of const literal type, its declaration in the class definition can specify a brace-or-equal-initializer in which every initializer-clause that is an assignment-expression is a constant expression. A static data member of literal type can be declared in the class definition with the constexpr specifier; if so, its declaration shall specify a brace-or-equal-initializer in which every initializer-clause that i an assignment-expression is a constant expression. [Note: In both these cases, the member may appear in constant expressions. — end note] The member shall still be defined in a namespace scope if it is odr-used (3.2) in the program and the namespace scope definition shall not contain an initializer. Drive-by: Make the static constants constexpr. R=bmeurer@chromium.org Change-Id: Idc3d20bf2adf31d874c23ff8bfec52437789160a Reviewed-on: https://chromium-review.googlesource.com/567506Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46599}
-
- 10 Jul, 2017 1 commit
-
-
jgruber authored
This adds a convenience method for the common Smi to int conversion pattern. Bug: Change-Id: I7d7b171c36cfec5f6d10c60f1d9c3e06e3aed0fa Reviewed-on: https://chromium-review.googlesource.com/563205 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Andreas Rossberg <rossberg@chromium.org> Cr-Commit-Position: refs/heads/master@{#46516}
-
- 06 Jul, 2017 1 commit
-
-
Camillo Bruni authored
Bug: chromium:737645 Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: Ib02b3082cec82dfbbc48b21609dde7499e87042e Reviewed-on: https://chromium-review.googlesource.com/558868 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46438}
-
- 03 Jul, 2017 1 commit
-
-
Mathias Bynens authored
Commit 26c00f4a improved the names of most FAST_* elements kinds in the enum. This patch updates the matching Has*Elements and Is*ElementsKind method names accordingly. - HasFastSmiElements => HasSmiElements - IsFastSmiElementsKind => IsSmiElementsKind - HasFastObjectElements => HasObjectElements - IsFastObjectElementsKind => IsObjectElementsKind - HasFastSmiOrObjectElements => HasSmiOrObjectElements - IsFastSmiOrObjectElementsKind => IsSmiOrObjectElementsKind - HasFastDoubleElements => HasDoubleElements - IsFastDoubleElementsKind => IsDoubleElementsKind - HasFastHoleyElements => HasHoleyElements - IsFastHoleyElementsKind => IsHoleyElementsKind Additionally, FastHoleyElementsUsage is renamed to HoleyElementsUsage. BUG=v8:6548 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ie8f3d01eb43e909cbc6c372d88c5fbc4dfc2ac04 Reviewed-on: https://chromium-review.googlesource.com/558356Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#46376}
-
- 30 Jun, 2017 2 commits
-
-
Mathias Bynens authored
`IsHoleyElementsKind` doesn’t just check for holeyness — it checks for dictionary elements as well. Its name should reflect that. This patch renames `IsHoleyElementsKind` to `IsHoleyOrDictionaryElementsKind`, which makes it possible to rename `IsFastHoleyElementsKind` to `IsHoleyElementsKind` in a future patch. R=jkummerow@chromium.org, cbruni@chromium.org BUG=v8:6548 Change-Id: Id799fe396442e9810426145359254d60990f8492 Reviewed-on: https://chromium-review.googlesource.com/558344Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#46367}
-
Mathias Bynens authored
The `FAST_` prefix doesn’t make much sense — they’re all just different cases with their own optimizations. Packedness being implicit (e.g. `FAST_ELEMENTS` vs. `FAST_HOLEY_ELEMENTS`) is not ideal, either. This patch renames the FAST elements kinds as follows: - e.g. FAST_ELEMENTS => PACKED_ELEMENTS - e.g. FAST_HOLEY_ELEMENTS => HOLEY_ELEMENTS The following exceptions are left intact, for lack of a better name: - FAST_SLOPPY_ARGUMENTS_ELEMENTS - SLOW_SLOPPY_ARGUMENTS_ELEMENTS - FAST_STRING_WRAPPER_ELEMENTS - SLOW_STRING_WRAPPER_ELEMENTS This makes it easier to reason about elements kinds, and less confusing to explain how they’re used. R=jkummerow@chromium.org, cbruni@chromium.org BUG=v8:6548 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ie7c6bee85583c3d84b730f7aebbd70c1efa38af9 Reviewed-on: https://chromium-review.googlesource.com/556032Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#46361}
-
- 27 Jun, 2017 1 commit
-
-
Toon Verwaest authored
Bug: Change-Id: I56bfd921d63783ddaa74133dde5f3daf776e68ca Reviewed-on: https://chromium-review.googlesource.com/548115 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#46250}
-
- 26 Jun, 2017 1 commit
-
-
Tobias Tebbi authored
Bug: chromium:734314 Change-Id: I4e1bd1264c2c4088ce9fdcdbe3b9e233faa516df Reviewed-on: https://chromium-review.googlesource.com/544990Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#46211}
-
- 23 Jun, 2017 2 commits
-
-
Toon Verwaest authored
Bug: Change-Id: I0415b3946e6efd97c3b2fb770fda7dba265ee8cd Reviewed-on: https://chromium-review.googlesource.com/545000Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#46177}
-
Toon Verwaest authored
Bug: Change-Id: I240356157c71a544d94f8898029d54010b2f4d37 Reviewed-on: https://chromium-review.googlesource.com/544309 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#46173}
-
- 22 Jun, 2017 3 commits
-
-
Toon Verwaest authored
Bug: Change-Id: I45414453378c77f00ba01ca79fd4d84245c5a423 Reviewed-on: https://chromium-review.googlesource.com/544862Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#46143}
-
Toon Verwaest authored
Bug: Change-Id: Iab8fc855808b22a2786476ddc4568f3f474c73d8 Reviewed-on: https://chromium-review.googlesource.com/543079 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#46125}
-
Toon Verwaest authored
Bug: Change-Id: Id05ac179899cfa802575c90ea1745375e2833825 Reviewed-on: https://chromium-review.googlesource.com/542617 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#46117}
-
- 21 Jun, 2017 2 commits
-
-
Toon Verwaest authored
UpdateMaxNumberKey calls are moved to clients, who do have the dictionary-holder. ::Add should basically always UpdateMaxNumberKey. I'm reducing the number of entry points before looking into how to guarantee this. Bug: Change-Id: Iefe8a7fdf7c1e0a6d731bfd948d22849714498a9 Reviewed-on: https://chromium-review.googlesource.com/542895 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#46104}
-
Ulan Degenbaev authored
BUG=chromium:694255 Change-Id: I52237650b2e80428d21acfa2c4993a07d224b8c5 Reviewed-on: https://chromium-review.googlesource.com/542819 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46098}
-
- 12 Jun, 2017 1 commit
-
-
Toon Verwaest authored
Distinguish the compilation caches instead by the shape of the key (cow fixed array map meaning eval or script cache). This allows us to remove the odd "key" argument from Shrink, EnsureCapacity and Rehash. Bug: v8:6474 Change-Id: Ibcad22813063c3a9050da13dc51359f5b59e1254 Reviewed-on: https://chromium-review.googlesource.com/531184Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#45873}
-
- 29 May, 2017 1 commit
-
-
Peter Marshall authored
Bug: chromium:725865 Change-Id: I94006d45aefb969fb0cf98ec475c30c14b3837fa Reviewed-on: https://chromium-review.googlesource.com/517488Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#45567}
-
- 22 May, 2017 1 commit
-
-
Wiktor Garbacz authored
Change-Id: I20ed35a7fb5104a9cc66bb54fa8966589c43d7f9 Reviewed-on: https://chromium-review.googlesource.com/507287Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Daniel Clifford <danno@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#45458}
-
- 16 May, 2017 2 commits
-
-
Jakob Kummerow authored
When most elements of an object are deleted, we want to normalize its elements backing store to a dictionary in order to save space. Finding the right time to do so should not incur a linear cost on each delete operation. This patch changes the heuristic to an amortized-constant approach based on a global counter and the current backing store capacity. BUG=chromium:542978 Change-Id: Ifdf29ab2211fdde1df9078f63be4118627d6a67e Reviewed-on: https://chromium-review.googlesource.com/506191Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#45330}
-
Tobias Tebbi authored
We currently grow the backing store to (old_capacity*1.5)+16 if we exceed capacity, but shrink the capacity to the current length when 2*length <= capacity. For short arrays (up to length 32), this can lead to a copy on every operation when using push/pop or push/shift. Example: Array of length 32, capacity 32 push Array grown to length 33, capacity 32*1.5+16 = 64 pop Array trimmed to length 32, capacity 32 because 2*32 <= 64 ... This CL leaves additional slag space when calling pop and restricts the trimming to backing stores with at least 16 elements to prevent excessive re-trimming on short arrays. Bug: Change-Id: I9dd13e5e2550c7ac819294c8e29f04c8855e02a4 Reviewed-on: https://chromium-review.googlesource.com/502911 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#45324}
-
- 15 May, 2017 1 commit
-
-
Camillo Bruni authored
With this CL SloppyArguments immediately go to dictionary elements on deletion, keeping the arguments backing store packed. Bug: v8:6251 Change-Id: I90d1972179447bf6810e7fe2b8e0bc8703b38d9d Reviewed-on: https://chromium-review.googlesource.com/486921Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#45286}
-
- 10 May, 2017 1 commit
-
-
tebbi authored
BUG=v8:6380 Review-Url: https://codereview.chromium.org/2872173003 Cr-Commit-Position: refs/heads/master@{#45228}
-
- 05 May, 2017 1 commit
-
-
Peter Marshall authored
length != offset. Bug: chromium:718285 Change-Id: I150af1473cb5180c242f3817b940fa1cf1c49cea Reviewed-on: https://chromium-review.googlesource.com/497727 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#45121}
-
- 02 May, 2017 1 commit
-
-
Peter Marshall authored
The existing CHECK assumed that the source and destination could not have the same buffer, but they actually can as long as the data ranges do not overlap within the buffer. Change the check to look for this more relaxed condition instead. Moved the check outside of the memcpy case as well, given that it should also apply for the slower, element-by-element copy as well. Also use JSTypedArray::element_size() to get the element size instead of the helper on the FixedTypedArrayBase. This lets us change that helper back to private again. Bug: chromium:717022 Change-Id: I2eca1df1e87444c5db397e0b7cf686cefe67d29c Reviewed-on: https://chromium-review.googlesource.com/493147 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#45035}
-
- 27 Apr, 2017 1 commit
-
-
Peter Marshall authored
Performance regressed for this with the I+TF switch. This speeds up the simple case by using optimizations in the elements accessor. Bug: chromium:700835 Change-Id: Iaba30951b93daefa0fb32acd6656ac705cdc73ed Reviewed-on: https://chromium-review.googlesource.com/483341 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Franziska Hinkelmann <franzih@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#44913}
-
- 26 Apr, 2017 1 commit
-
-
Peter Marshall authored
For holey Smi and double source arrays, we would go to the general case, which is much slower than before. We already check that there are no prototype chain changes in IterableToListCanBeElided, and there is no JS-code run between that check and the copying of the elements, so we can safely check for the hole and convert it to undefined, which is then converted to 0/NaN appropriately for the given TypedArray. Bug: chromium:713570,chromium:711275 Change-Id: I5b21c915907d71eebb73b7b1eea8eb58b4a5436d Reviewed-on: https://chromium-review.googlesource.com/485520 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#44899}
-
- 25 Apr, 2017 1 commit
-
-
Michael Achenbach authored
This reverts commit 28930128. Reason for revert: GC stress failures: https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/12958 Original change's description: > [runtime] Keep FAST_SLOPPY_ARGUMENTS packed > > With this CL SloppyArguments immediately go to dictionary elements on > deletion, keeping the arguments backing store packed. > > Bug: v8:6251 > Change-Id: I2afa4fb5f0af9942eee0a1606942f5f289539330 > Reviewed-on: https://chromium-review.googlesource.com/480379 > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#44857} TBR=jkummerow@chromium.org,cbruni@chromium.org,v8-reviews@googlegroups.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I9482bf693a745d1301d068869ddae39f11143827 Reviewed-on: https://chromium-review.googlesource.com/486885Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#44863}
-