- 21 Jan, 2022 1 commit
-
-
Marja Hölttä authored
Bug: v8:11111 Change-Id: Ia84fe23c85b193bc7e31349eddc3705447795c33 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3400960Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Shu-yu Guo <syg@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#78718}
-
- 20 Jan, 2022 2 commits
-
-
Samuel Groß authored
The external pointer table is now managed by the GC, which marks entries that are alive during major GC, then sweeps the table afterwards to free all dead entries and build a free list from them. For now, only major GCs are supported, Scavenger GCs do not interact with the external pointer table. In more detail, garbage collection of the external pointer table works as follows: 1. The external pointer table now reserves a large region of virtual address space for its backing buffer and is then never reallocated, only grown in place until the maximum size is reached. 2. When the GC's marking visitor marks a HeapObject with an external pointer as alive, it also marks the corresponding external pointer table entry as alive. This can happen on a background thread. 3. For that, it uses the MSB of each entry in the table to indicate whether the entry has been marked or not. This works because the MSB is always cleared during the AND-based type check performed when accessing an external pointer. 4. After marking, the external pointer table is swept while the mutator is stopped. This builds an inline, singly-linked freelist of all newly-dead and previously-free entries. 5. When allocating an entry from the table, the first entry on the freelist is used. If the freelist is empty, the table grows, populating the freelist with the new entries. 6. Every newly-allocated entry is marked as alive, and every store to an existing entry also automatically marks that entry as alive (by also setting the MSB). This simplifies the design of the table GC with regards to concurrency (See ExternalPointerTable::Mark). Bug: v8:10391 Change-Id: I8877fdf5576af3761bde65298951bb09e601bd14 Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3359625Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#78708}
-
Nico Hartmann authored
This reverts commit 757830b0. Reason for revert: Speculatively revert due to a number of performance regressions Original change's description: > [Torque] Generalize Torque literals to larger size > > Previously, literals in Torque were stored as double values, which > made it impossible to precisely represent 64 bit integer values. > This CL replaces the old literal expression with an integer and > floating point literal expression that are unbounded in size. We > allow implicit conversion of these literals to arbitary integer > and floating point types respectively and insert a corresponding > bounds check into generated CSA. > > Bug: v8:7793 > Change-Id: I46c231aab92bc2f0c26955d1876079f306b358c6 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3329792 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78671} Bug: v8:7793 Change-Id: I9896e28b3c69b8cf2488bf93e993ec320d8c5d2e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3401866Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#78706}
-
- 18 Jan, 2022 1 commit
-
-
Nico Hartmann authored
Previously, literals in Torque were stored as double values, which made it impossible to precisely represent 64 bit integer values. This CL replaces the old literal expression with an integer and floating point literal expression that are unbounded in size. We allow implicit conversion of these literals to arbitary integer and floating point types respectively and insert a corresponding bounds check into generated CSA. Bug: v8:7793 Change-Id: I46c231aab92bc2f0c26955d1876079f306b358c6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3329792Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#78671}
-
- 17 Jan, 2022 2 commits
-
-
Patrick Thier authored
The receiver is included unconditionally on all platforms (kJSArgcIncludesReceiver is always true). Remove all usages of kJSArgcIncludesReceiver from the code. Bug: v8:11112 Change-Id: I7d62e6de65b73fe6d8c3293f32b500b760b08a3e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3322980Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/main@{#78642}
-
Benedikt Meurer authored
As described in https://crbug.com/1287476, the fact that the AsyncEventDelegate is currently implemented on top of the PromiseHooks causes performance problems and makes it difficult to reason about the exact (observed) semantics; this is because for this we intercept every JSPromise creation (via PromiseHook::kInit) and walk the synchronous stack at that point to see if we find one of Promise#then(), Promise#catch() or Promise#finally() on the stack. And if we do so, we report that to the AsyncEventDelegate (which is implemented in the inspector and will then do the async stack/stepping logic on top). This CL introduces dedicated instrumentation for Promise#then(), which is also called from Promise#catch() and Promise#finally(), and uses that instrumentation for the purpose of the AsyncEventDelegate. It also adjusts the stack walk to not always walk the full stack (which might lead to wrong results when calls to Promise#then(), which itself can call back into user JavaScript, are found deeper in the stack), but instead only check the top-most builtin frames and whatever user JavaScript frame is underneath it. On the standalone.js (from https://crbug.com/1287476#c1), when run with the DevTools default of maxDepth=200, we go from around 4.00ms to around 0.36ms. For everything that does not call Promise#then() - either explicitly or implicitly - or `await`s, there's now no observable performance impact of turning on the AsyncEventDelegate. Bug: chromium:1280519 Fixed: chromium:1287476 Change-Id: I4911bed146381fc46cfeefb763d6dfc32e8f6071 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3386379 Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#78640}
-
- 14 Jan, 2022 1 commit
-
-
Samuel Groß authored
This CL removes the global IsValidBackingStorePointer function and turns the DCHECKs that ensure that sandboxed pointers point into the sandbox, which essentially cover the same condition, into CHECKs. This is mostly to facilitate debugging during the initial rollout, and the CHECKs can later be turned back into DCHECKs. In addition, this CL adds a fallback to a partially-reserved sandbox when sandboxed pointers are enabled and when the regular initialization fails. Bug: chromium:1218005 Change-Id: I75526f1a00ddb9095ae0e797dc9bb80a210f867b Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3367617Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#78620}
-
- 07 Jan, 2022 1 commit
-
-
Frank Tang authored
Bug: v8:11544 Change-Id: I3206ca3e0c505b14e4497ccb2af25a31940a1c1e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2967755Reviewed-by:
Shu-yu Guo <syg@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/main@{#78518}
-
- 16 Dec, 2021 2 commits
-
-
Igor Sheludko authored
This CL * removes Builtins::codet() and Builtins::codet_handle() returning builtins as CodeT objects in favor of code() and code_handle(), * removes BUILTIN_CODET macro in favor of BUILTIN_CODE, * removes CodeDataContainer table. Bug: v8:11880 Change-Id: Ic868549030744b0ff3ea5d5edbfcacf77c6de96d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3344650Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78399}
-
Igor Sheludko authored
... in order to avoid Code <-> CodeT conversions in builtins. This CL changes the meaning of RelocInfo::CODE_TARGET which now expects CodeT objects as a code target. In order to reduce code churn this CL makes BUILTIN_CODE and friends return CodeT instead of Code. In the follow-up CLs BUILTIN_CODET and friends will be removed. Bug: v8:11880 Change-Id: Ib8f60973e55c60fc62ba84707471da388f8201b4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3338483Reviewed-by:
Patrick Thier <pthier@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78393}
-
- 15 Dec, 2021 2 commits
-
-
Samuel Groß authored
This CL renames a number of things related to the V8 sandbox. Mainly, what used to be under V8_HEAP_SANDBOX is now under V8_SANDBOXED_EXTERNAL_POINTERS, while the previous V8 VirtualMemoryCage is now simply the V8 Sandbox: V8_VIRTUAL_MEMORY_CAGE => V8_SANDBOX V8_HEAP_SANDBOX => V8_SANDBOXED_EXTERNAL_POINTERS V8_CAGED_POINTERS => V8_SANDBOXED_POINTERS V8VirtualMemoryCage => Sandbox CagedPointer => SandboxedPointer fake cage => partially reserved sandbox src/security => src/sandbox This naming scheme should simplify things: the sandbox is now the large region of virtual address space inside which V8 mainly operates and which should be considered untrusted. Mechanisms like sandboxed pointers are then used to attempt to prevent escapes from the sandbox (i.e. corruption of memory outside of it). Furthermore, the new naming scheme avoids the confusion with the various other "cages" in V8, in particular, the VirtualMemoryCage class, by dropping that name entirely. Future sandbox features are developed under their own V8_SANDBOX_X flag, and will, once final, be merged into V8_SANDBOX. Current future features are sandboxed external pointers (using the external pointer table), and sandboxed pointers (pointers guaranteed to point into the sandbox, e.g. because they are encoded as offsets). This CL then also introduces a new build flag, v8_enable_sandbox_future, which enables all future features. Bug: v8:10391 Change-Id: I5174ea8f5ab40fb96a04af10853da735ad775c96 Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3322981Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#78384}
-
Marja Hölttä authored
Bug: v8:11111 Change-Id: I5cdd26070eb6ddf264e46763a71097e9fb716bf0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3333924Reviewed-by:
Shu-yu Guo <syg@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#78383}
-
- 14 Dec, 2021 1 commit
-
-
Camillo Bruni authored
Use build_flags_ with @if/@ifnot in torque for the following flags: - V8_ENABLE_JAVASCRIPT_PROMISE_HOOKS - V8_ENABLE_SWISS_NAME_DICTIONARY - Make sure Torque and CSA code actually respect V8_ENABLE_JAVASCRIPT_PROMISE_HOOKS. - Rename V8_ALLOW_JAVASCRIPT_IN_PROMISE_HOOKS to V8_ENABLE_JAVASCRIPT_PROMISE_HOOKS - Rename gn/bazel arg v8_allow_javascript_in_promise_hooks to v8_enable_javascript_promise_hooks - Unship context promise hooks in chrome and enable them only in d8 for testing purposes - Make sure d8 and the API throw when using promise hooks without the compile time feature enabled Bug: chromium:1265186, v8:11025 Change-Id: I69834d44d683a36d0d7be3c3d68888321be0fd7f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3301474Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#78362}
-
- 08 Dec, 2021 1 commit
-
-
Leszek Swirski authored
Reduce the enqueuing cost of compiler-dispatcher jobs by getting rid of the sets and hashmaps, and instead: 1. Turning the pending job set into a queue, and 2. Making the SharedFunctionInfo's UncompiledData hold a pointer to the LazyCompilerDispatcher::Job, instead of maintaining an IdentityMap from one to the other. To avoid bloating all UncompiledData, this adds two new UncompiledData subclasses, making it four subclasses total, for with/without Preparse data and with/without a Job pointer. "should_parallel_compile" FunctionLiterals get allocated an UncompiledData with a job pointer by default, otherwise enqueueing a SFI without a job pointer triggers a reallocation of the UncompiledData to add a job pointer. Since there is no longer a set of all Jobs (aside from one for debug-only), we need to be careful to manually clear the Job pointer from the UncompiledData whenever we finish a Job (whether successfully or by aborting) and we have to make sure that we implicitly can reach all Jobs via the pending/finalizable lists, or the set of currently running jobs. Change-Id: I3aae78e6dfbdc74f5f7c1411de398433907b2705 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3314833Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#78302}
-
- 06 Dec, 2021 1 commit
-
-
Tobias Tebbi authored
This aligns the Torque semantics of catch with the JavaScript behavior: When we catch an exception, we also reset the pending exception. This also fixes a long-standing bug that we didn't restore the original pending message after executing arbitrary JS in IteratorCloseOnException Bug: v8:12439 Change-Id: I268d9d639d09023a424f352547cdce03428f983a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3303805 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/main@{#78259}
-
- 02 Dec, 2021 1 commit
-
-
Samuel Groß authored
This CL turns references to ArrayBuffer backing stores from JSArrayBuffers, JSTypedArrays, and JSDataViews into CagedPointers when those are enabled. CagedPointers cannot generally represent nullptr, as NULL usually lies outside the cage. As such, nullptr backing stores are replaced with a special empty backing store value, which, in the current implementation, points to the end of the cage, right in front of the trailing guard regions. Due to this, it is no longer correct to compare a backing store pointer against nullptr. Bug: chromium:1218005 Change-Id: I4a6c7a82aabb4debcb6bb2babe4035ba2da8e79f Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3244419 Commit-Queue: Samuel Groß <saelo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78218}
-
- 24 Nov, 2021 1 commit
-
-
Samuel Groß authored
The main changes of this CL are: It should no longer be assumed that an empty ArrayBuffer has a nullptr backing store. This is in preparation for the move to caged pointers, which cannot represent nullptr, and will instead likely provide a EmptyBackingStore constant pointing inside the virtual memory cage. For that reason, a new JSArrayBuffer::IsEmpty() helper is introduced, which should be used instead of checking against nullptr. CodeStubAssembler::GetTypedArrayBuffer now checks for on-heap TypedArrays instead of comparing the backing store pointer to nullptr. This is consistent with the implementation in JSTypedArray::GetBuffer. v8::ArrayBufferView::CopyContents now uses JSTypedArray::DataPtr instead of relying on nullptr backing stores to handle on-heap TypedArrays. The serializer and deserializer now check for IsEmpty() and use the kEmptyBackingStoreRefSentinel value to serialize empty backing stores. Empty ArrayBuffers allocated for on-heap TypedArrays now have a byte_length of zero. This allows removing the allocation_length() (and allocation_buffer()) methods, which were only (incorrectly, as they don't account for GSABs) used for memory measurements. Bug: chromium:1218005 Change-Id: Ib889ccf855f68525f7a614f3963e46ea56865fa3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3297709Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#78069}
-
- 23 Nov, 2021 2 commits
-
-
Marja Hölttä authored
Previous version: https://chromium-review.googlesource.com/c/v8/v8/+/3259648 Fix 1: ValueSerializer <3 JSArrayBufferView Fix 2: set flags correctly when creating DataViews via the API Bug: v8:11111 Change-Id: I9cbfdaff29f97c7823eaa3d931689b363e1f4cf7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3297708Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#78046}
-
Marja Hölttä authored
This reverts commit 8f3e53b8. Reason for revert: Blink test failures Original change's description: > [rab/gsab] Add RAB / GSAB support to DataViews > > Bug: v8:11111 > Change-Id: Ice66accee734484302d499b8098056ae1c68faf3 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3259648 > Commit-Queue: Marja Hölttä <marja@chromium.org> > Reviewed-by: Shu-yu Guo <syg@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78028} Bug: v8:11111 Change-Id: Icaae7276dfede8c021f3ce1a7e96ed3ec13fe4fe No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3295577 Auto-Submit: Marja Hölttä <marja@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#78039}
-
- 22 Nov, 2021 1 commit
-
-
Marja Hölttä authored
Bug: v8:11111 Change-Id: Ice66accee734484302d499b8098056ae1c68faf3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3259648 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Shu-yu Guo <syg@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#78028}
-
- 18 Nov, 2021 1 commit
-
-
Jakob Gruber authored
Prior to this CL we regularly generated high counts of code dependencies, and installation was not the most efficient. This CL 1) implements early dependency deduplication and 2) simplifies the way dependencies are persisted on the heap through DependentCode. Re 1): we dedupe twice, once based on the CompilationDependency contents, and again once we know the final target object. Re 2): Instead of a linked list of weak fixed arrays per dependency group, store deps in a flat array together with a bitset of their dependency groups. See also: https://docs.google.com/document/d/1B34S1s3Iv6hbquZ93RugD0b-ZKfHEptJ8Fk_YyOvjDk/edit Bug: v8:12195,v8:12397 Change-Id: I9ab47f6d87b10558194b5de30a36b1122f7e362a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3283074Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#77969}
-
- 17 Nov, 2021 1 commit
-
-
Tobias Tebbi authored
This fast path works for ASCII-only strings and is similar to the existing fast-path in C++. Important differences: - The locale check is done at Turbofan optimization time instead of at runtime - Use tables of size 256 instead of 128 to save a bounds-check when handling one-byte strings. - It first performs an equality check that's optimized for detecting inequality quickly by comparing the strings from both ends. If the equality check succeeds, we are done. Otherwise chances are high that the strings differ according to collation level L1 already. Therefore, we first do an L1 check and perform the L3 check only when L1 didn't find a difference. This is based on the assumption that few strings are identical except for different capitalization. - Use the Torque version of string flattening instead of the runtime version. Bug: v8:12196 Change-Id: I2d043c1138846783f6d567b736d34063ba9301e5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3268465Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#77946}
-
- 16 Nov, 2021 1 commit
-
-
Ng Zhi An authored
Bug: v8:12244,v8:12245 Change-Id: Id74afa611b2b8556ef86c715497b6daddc8ea7a0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3276931Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77928}
-
- 15 Nov, 2021 1 commit
-
-
Ng Zhi An authored
Bug: v8:12244,v8:12245 Change-Id: I3029cfb8e9afdcb5e53aa406359aa7246c23ea40 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3274021Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77906}
-
- 04 Nov, 2021 1 commit
-
-
Jakob Gruber authored
- Add an inline fast path for flat strings. - Efficient shape queries. - Add constants for seq/external one/two-byte string tags. Bug: v8:12195 Change-Id: Ia2c3d3c9207ab56bc4f0b425d21c7c93ad98aef4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3259530 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#77706}
-
- 03 Nov, 2021 1 commit
-
-
Igor Sheludko authored
Bug: v8:11880 Change-Id: Iffebca251d18d5637884b2181acdfb3e6c5496a0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3257715Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#77682}
-
- 29 Oct, 2021 1 commit
-
-
Samuel Groß authored
A CagedPointer is guaranteed to point into the Virtual Memory Cage and will for example be used for ArrayBuffer backing stores when the heap sandbox is enabled. In the current implementation, CagedPointers are stored as offsets from the cage base, shifted to the left. Because the cage base address is usually available in a register, accessing a CagedPointer is very efficient, requiring only an additional shift and add operation. Bug: chromium:1218005 Change-Id: Ifc8c088e3862400672051a8c52840514dee2911f Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3123417Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#77614}
-
- 26 Oct, 2021 1 commit
-
-
Jakob Gruber authored
We used to apply an invalid optimization which skips `length` writes if the JSArray is 'fast' and the old value equals the new value. This optimization is not valid if e.g. `length` is non-writable. Fixed: chromium:1262478 Change-Id: I49ef50de293dae5c3a62c64b303ec34b9c0f6cbc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3236720Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#77552}
-
- 06 Oct, 2021 1 commit
-
-
Jakob Kummerow authored
Mirroring Code::entry and CodeDataContainer::code_entry_point. Unused for now; will be used very soon. Change-Id: I93b86f0c601a044bb4e6afea642d5d3f721ef73a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3205893Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#77249}
-
- 05 Oct, 2021 1 commit
-
-
Marja Hölttä authored
Bug: v8:11111 Change-Id: I784a9d347fa4a21fd38f04b4d4e3a8a4398292c0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3186438 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Shu-yu Guo <syg@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#77234}
-
- 01 Oct, 2021 1 commit
-
-
Toon Verwaest authored
By changing AllocationFlag from enum to enum class Bug: v8:12244, v8:12245 Change-Id: Ifdd04bb12026619f6422a98ee0890bd557f0e4e1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3181536 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#77188}
-
- 30 Sep, 2021 1 commit
-
-
Marja Hölttä authored
It's confusing that we have CSA_CHECK and CSA_ASSERT and it's not clear from the names that the former works in release mode and the latter only in debug mode. Renaming CSA_ASSERT to CSA_DCHECK makes it clear what it does. So now we have CSA_CHECK and CSA_DCHECK and they're not confusing. This also renames assert() in Torque to dcheck(). Bug: v8:12244 Change-Id: I6f25d431ebc6eec7ebe326b6b8ad3a0ac5e9a108 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3190104Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Shu-yu Guo <syg@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#77160}
-
- 28 Sep, 2021 1 commit
-
-
Ng Zhi An authored
Bug: v8:12244 Change-Id: I7ea68dd74a376221631d7f56b4a012207f68a1ec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3182899Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77129}
-
- 27 Sep, 2021 1 commit
-
-
Marja Hölttä authored
Bug: v8:11111 Change-Id: I10409756af4ba1a04c1bca21cbdab375003a7f42 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3177225 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Shu-yu Guo <syg@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#77077}
-
- 24 Sep, 2021 1 commit
-
-
Toon Verwaest authored
Bug: v8:12244, v8:12245 Change-Id: Ia08a23fe8ff09e3b0da3ae549238f9b017c04219 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3181526 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#77037}
-
- 14 Sep, 2021 1 commit
-
-
Leszek Swirski authored
CopyChars takes a count parameter, not an end parameter, so we can save some subtractions by passing in the count to WriteToFlat. Most of the time the start,end arguments into WriteToFlat are 0,length anyway, so this doesn't change a lot of places. Change-Id: I9587c7afce529218a16b728c0477b87569df8e21 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3157947Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#76813}
-
- 08 Sep, 2021 1 commit
-
-
Leszek Swirski authored
Fixed: v8:12192 Change-Id: Ifcb006bd1746e7bcf3b16c0e31e8cda9c920483c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3147590 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#76722}
-
- 07 Sep, 2021 1 commit
-
-
Patrick Thier authored
The receiver is now always included in the actual argument count and the formal parameter count. kDontAdaptArgumentsSentinel is changed from UINT16_MAX to 0 to preserve the maximum allowed declared parameters. The build flag activating the changes is not set for any architecture yet. Bug: v8:11112 Change-Id: I48a4969137949a1b4d1f47545209bb22b64e7e05 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3140608 Commit-Queue: Patrick Thier <pthier@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#76699}
-
- 06 Sep, 2021 1 commit
-
-
Leszek Swirski authored
Remove the BaselineData intermediate structure for baseline code, and write the baseline Code object into the SharedFunctionInfo directly. We still need a pointer to the BytecodeArray/InterpreterData, so re-use the Code object's deoptimization data slot for this (baseline code doesn't have deoptimization data). A consequence of this is that the BytecodeArray pointer becomes immutable when there is baseline code. This means that we cannot install a debug BytecodeArray while baseline code is active (we have to flush it first), and we can't tier-up code with debug BytecodeArray to baseline. Change-Id: I53b93ec4d4c64b833603d7992f246982fcd97596 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3118548 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#76675}
-
- 02 Sep, 2021 1 commit
-
-
Patrick Thier authored
- Replace CodeStubArguments::GetLength() with GetLengthWithReceiver() and GetLengthWithoutReceiver() - Introduce and use Torque macros to load the formal parameter count (with and without receiver). - Add actual_count to Torque arguments structure for cases where the argument count is not used, but just forwarded to other builtins. Bug: v8:11112 Change-Id: I32278efeffa2fb08361989c6df8de56c74add8b9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3124804Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/main@{#76637}
-