1. Mar 11, 2022
  2. Mar 10, 2022
  3. Mar 09, 2022
    • legendecas's avatar
      [extensions] Fix dcheck failures in getV8Statistics · b9535429
      legendecas authored
      HeapObjectIterator creates a SafepointScope which requires the heap to
      allow garbage collection. This collides with the outer
      DisallowGarbageCollection scope. HeapObjectIterator already ensures
      there is no allocation during its lifetime, so there is no need to
      create an outer DisallowGarbageCollection scope.
      
      Code::source_position_table requires their kind not equals to
      CodeKind::BASELINE.
      
      This also exposes the statistics extension through flag
      --expose-statistics.
      
      Bug: v8:12657
      Change-Id: I1bf11cf499285a742dd99ec8c228ebc36152b597
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3496552
      
      
      Reviewed-by: default avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: default avatarMarja Hölttä <marja@chromium.org>
      Commit-Queue: Chengzhong Wu <legendecas@gmail.com>
      Cr-Commit-Position: refs/heads/main@{#79425}
      b9535429
    • Clemens Backes's avatar
      Reland "[asm] Reject import calls with too many parameters" · 9b810b9f
      Clemens Backes authored
      This is a reland of commit a664aef0.
      The test is made ~25x faster by using integer parameters instead of
      floating point.
      
      Original change's description:
      > [asm] Reject import calls with too many parameters
      >
      > The asm parser was missing a check for too many parameters for calls to
      > imported functions. For regular functions this check implicitly existed
      > because the limit was checked at the function declaration, and the call
      > site needs to match the declared parameter count.
      >
      > R=mslekova@chromium.org
      >
      > Bug: chromium:1302596
      > Change-Id: I0d35e70a66d682ee8fdecf5c8ea4d2b1419ce684
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3509393
      
      
      > Reviewed-by: default avatarMaya Lekova <mslekova@chromium.org>
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#79415}
      
      Bug: chromium:1302596
      Change-Id: I138561742b38939a1c2c9a69a6fa508d4f3a028d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513613
      
      
      Reviewed-by: default avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79424}
      9b810b9f
    • Victor Gomes's avatar
      [maglev] Add UNSUPPORTED macro for codegen · 60ac45f0
      Victor Gomes authored
      Allows incremental test, while some codegen paths are not available.
      
      Bug: v8:7700
      Change-Id: Icc24cf8e85464587f9eee6175107093a25b76da9
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3512794
      
      
      Reviewed-by: default avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Victor Gomes <victorgomes@chromium.org>
      Auto-Submit: Victor Gomes <victorgomes@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79423}
      60ac45f0
    • Leszek Swirski's avatar
      Revert "[compiler] Improve code generated for patterns like "x >> 1 == 0"" · 4927d9b5
      Leszek Swirski authored
      This reverts commit 2dc40370.
      
      Reason for revert: Broke in UBSan: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/20397/overview
      
      Original change's description:
      > [compiler] Improve code generated for patterns like "x >> 1 == 0"
      >
      > Change-Id: I79575ba61a3bdea93468f48d66a3cb3edd0e1442
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3506504
      
      
      > Reviewed-by: default avatarTobias Tebbi <tebbi@chromium.org>
      > Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#79419}
      
      Change-Id: I489440d7cbd46763d496c6d22190240c5676e486
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513893
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Owners-Override: Leszek Swirski <leszeks@chromium.org>
      Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Cr-Commit-Position: refs/heads/main@{#79422}
      4927d9b5
    • Leszek Swirski's avatar
      [codegen] Ensure that all register types fit in an int · 79dfd0eb
      Leszek Swirski authored
      Registers were supposed to fit in an int, but some register subclasses
      added extra fields which made them too big. This fiddles around with
      field sizes so that all the Register subclasses still fit inside of an
      int (by making the Register code field 8-bit etc).
      
      Change-Id: I31ffbc8f98b6a5e1f638fc59147009e5f81dff41
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513612
      
      
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: default avatarVictor Gomes <victorgomes@chromium.org>
      Commit-Queue: Victor Gomes <victorgomes@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79421}
      79dfd0eb
    • Michael Lippautz's avatar
      testing: OverrideEmbedderStackStateScope should only affect implicit GCs · 7ef1fc15
      Michael Lippautz authored
      The only user of OverrideEmbedderStackStateScope is Blink where it is
      used to override stack state of top-level tasks. Adjust the behavior
      here to allow using this scope broadly while still supporting explicit
      garbage collection calls.
      
      Bug: chromium:1300492
      Change-Id: I78c418c5f08991bf6857147cd4a537246bfcc556
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497744
      
      
      Reviewed-by: default avatarOmer Katz <omerkatz@chromium.org>
      Reviewed-by: default avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79420}
      7ef1fc15
    • Darius M's avatar
      [compiler] Improve code generated for patterns like "x >> 1 == 0" · 2dc40370
      Darius M authored
      Change-Id: I79575ba61a3bdea93468f48d66a3cb3edd0e1442
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3506504
      
      
      Reviewed-by: default avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79419}
      2dc40370
    • Camillo Bruni's avatar
      [runtime] Clean up runtime function Arguments accesses · cead6573
      Camillo Bruni authored
      Replace all CONVERT_XXX_ARG_XXX() macros from runtime-util.h with direct
      calls to Arguments or the fully expanded equivalent.
      
      - This replaces many of the hard CHECKs with DCHECK (as is common
        practice in most V8 code)
      - Instead of relying on verbose comments we now have readable code
      - Rename Arguments.::xxx_at with Arguments::xxx_value_at since these
        methods don't return the Object but rather their double/int value
      
      - Add Oddball::ToBool helper
      - Add and use v8::internal::PropertyAttributesFromInt helper
      - Add stronger DCHECK for PropertyAttributes returned in
        GetPropertyAttributesWithInterceptorInternal
      
      
      
      Bug: v8:11263
      Change-Id: I8d531857e05d19f3198753b05af28d993a391854
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497768
      
      
      Reviewed-by: default avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: default avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79418}
      cead6573
    • Clemens Backes's avatar
      Revert "[asm] Reject import calls with too many parameters" · 9d96ebbb
      Clemens Backes authored
      This reverts commit a664aef0.
      
      Reason for revert: Times out on CFI: https://cr-buildbucket.appspot.com/build/8820170241901030897
      
      Original change's description:
      > [asm] Reject import calls with too many parameters
      >
      > The asm parser was missing a check for too many parameters for calls to
      > imported functions. For regular functions this check implicitly existed
      > because the limit was checked at the function declaration, and the call
      > site needs to match the declared parameter count.
      >
      > R=​mslekova@chromium.org
      >
      > Bug: chromium:1302596
      > Change-Id: I0d35e70a66d682ee8fdecf5c8ea4d2b1419ce684
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3509393
      
      
      > Reviewed-by: default avatarMaya Lekova <mslekova@chromium.org>
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#79415}
      
      Bug: chromium:1302596
      Change-Id: I743647f739e0cc93b2e99145086dbbb7d2660c79
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3512853
      Auto-Submit: Clemens Backes <clemensb@chromium.org>
      Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Cr-Commit-Position: refs/heads/main@{#79417}
      9d96ebbb
    • Victor Gomes's avatar
      [maglev] Allow closure register to be loaded · 19357096
      Victor Gomes authored
      Context:
      https://chromium-review.googlesource.com/c/v8/v8/+/3506444
      
      Bug: v8:7700
      Change-Id: Ie877f7f18759f286597f07412ceb1ba25eb4787a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3512793
      
      
      Commit-Queue: Victor Gomes <victorgomes@chromium.org>
      Auto-Submit: Victor Gomes <victorgomes@chromium.org>
      Reviewed-by: default avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79416}
      19357096
    • Clemens Backes's avatar
      [asm] Reject import calls with too many parameters · a664aef0
      Clemens Backes authored
      The asm parser was missing a check for too many parameters for calls to
      imported functions. For regular functions this check implicitly existed
      because the limit was checked at the function declaration, and the call
      site needs to match the declared parameter count.
      
      R=mslekova@chromium.org
      
      Bug: chromium:1302596
      Change-Id: I0d35e70a66d682ee8fdecf5c8ea4d2b1419ce684
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3509393
      
      
      Reviewed-by: default avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79415}
      a664aef0
    • Darius Mercadier's avatar
      Revert "[compiler] Simplify "==0" branches in MachineOperatorReducer" · 51ea5508
      Darius Mercadier authored
      This reverts commit 48b443f6.
      
      Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=1303902
      
      Original change's description:
      > [compiler] Simplify "==0" branches in MachineOperatorReducer
      >
      > Bug: v8:12484
      > Change-Id: I0667c7464c0dd71338bc199a24a69248a7a0a525
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497303
      
      
      > Reviewed-by: default avatarTobias Tebbi <tebbi@chromium.org>
      > Owners-Override: Tobias Tebbi <tebbi@chromium.org>
      > Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#79379}
      
      Bug: v8:12484
      Change-Id: I5114b2871a14444a84f6230aa1bd2113d32a2a83
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3510390
      
      
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Reviewed-by: default avatarNico Hartmann <nicohartmann@chromium.org>
      Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79414}
      51ea5508
    • Pan, Tao's avatar
      [compiler] Don't remove OSR code cache if deoptimizing at out of loop · 190b5d95
      Pan, Tao authored
      The main purpose of OSR compilation is fasten inner loop execution, the
      OSR code cache is still correct for loop if optimizing at out of loop,
      keep OSR code cache can reduce unnecessary slow bytecode execution with
      feedback collection and avoid re-OSR compilation.
      This CL can improve JetStream2 case navier-stokes by ~6%.
      
      Change-Id: I9518317fb922071b131cab5b56998a0fc198804a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3494981
      
      
      Reviewed-by: default avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: default avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Tao Pan <tao.pan@intel.com>
      Cr-Commit-Position: refs/heads/main@{#79413}
      190b5d95
    • v8-ci-autoroll-builder's avatar
      Update V8 DEPS. · 4e9ab3a0
      v8-ci-autoroll-builder authored
      Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/eaff38e..69dab41
      
      Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/34063a8..5b79b29
      
      Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/9ce8be3..8edc960
      
      Rolling v8/third_party/googletest/src: https://chromium.googlesource.com/external/github.com/google/googletest/+log/c9461a9..ae1b7ad
      
      R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com
      
      Change-Id: I5f1314f6a81905ae48dace343548ee01d467cc66
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3509971
      Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
      Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
      Cr-Commit-Position: refs/heads/main@{#79412}
      4e9ab3a0
    • gaosheng08's avatar
      [code-style] Fix some comments of promise · 26ef9a85
      gaosheng08 authored
      When I was looking at the v8 Promise source, I noticed that some of the links that needed to point to ECMA262 were broken, some were deprecated, some were not legitimate, so I tried to fix them.
      
      Bug: no
      Change-Id: I26deeb635d8c293245e7cdb62089f60557547846
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3462029
      
      
      Reviewed-by: default avatarShu-yu Guo <syg@chromium.org>
      Commit-Queue: Shu-yu Guo <syg@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79411}
      26ef9a85
    • Deepti Gandluri's avatar
      [wasm-relaxed-simd] Enable relaxed conversions on ARM · e9caa2d0
      Deepti Gandluri authored
      Codegen details detailed in the relevant github issue.
      https://github.com/WebAssembly/relaxed-simd/issues/21
      
      Bug: v8:12284
      Change-Id: I06c8859035abae775269bdf949ff0f1c2e262859
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3508560
      
      
      Reviewed-by: default avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79410}
      e9caa2d0
    • Joyee Cheung's avatar
      [ic] name Set/Define/Store property operations more consistently · 0d1ffe30
      Joyee Cheung authored
      For background and reasoning, see
      https://docs.google.com/document/d/1jvSEvXFHRkxg4JX-j6ho3nRqAF8vZI2Ai7RI8AY54gM/edit
      This is the first step towards pulling the DefineNamedOwn operation out
      of StoreIC.
      
      Summary of the renamed identifiers:
      
      Bytecodes:
      
      - StaNamedProperty -> SetNamedProperty: calls StoreIC and emitted for
        normal named property sets like obj.x = 1.
      - StaNamedOwnProperty -> DefineNamedOwnProperty: calls
        DefineNamedOwnIC (previously StoreOwnIC), and emitted for
        initialization of named properties in object literals and named
        public class fields.
      - StaKeyedProperty -> SetKeyedProperty: calls KeyedStoreIC and emitted
        for keyed property sets like obj[x] = 1.
      - StaKeyedPropertyAsDefine -> DefineKeyedOwnProperty: calls
        DefineKeyedOwnIC (previously KeyedDefineOwnIC) and emitted for
        initialization of private class fields and computed public class
        fields.
      - StaDataPropertyInLiteral -> DefineKeyedOwnPropertyInLiteral: calls
        DefineKeyedOwnPropertyInLiteral runtime function (previously
        DefineDataPropertyInLiteral) and emitted for initialization of keyed
        properties in object literals and static class initializers. (note
        that previously the StoreDataPropertyInLiteral runtime function name
        was taken by object spreads and array literal creation instead)
      - LdaKeyedProperty -> GetKeyedProperty, LdaNamedProperty ->
        GetNamedProperty, LdaNamedPropertyFromSuper ->
        GetNamedPropertyFromSuper: we drop the Sta prefix for the property
        store operations since the accumulator use is implicit and to make
        the wording more natural, for symmetry the Lda prefix for the
        property load operations is also dropped.
      
      opcodes:
      
      - (JS)StoreNamed -> (JS)SetNamedProperty: implements set semantics for
        named properties, compiled from SetNamedProperty (previously
        StaNamedProperty) and lowers to StoreIC or Runtime::kSetNamedProperty
      - (JS)StoreNamedOwn -> (JS)DefineNamedOwnProperty: implements define
        semantics for initializing named own properties in object literal and
        public class fields, compiled from DefineNamedOwnProperty (previously
        StaNamedOwnProperty) and lowers to DefineNamedOwnIC
        (previously StoreOwnIC)
      - (JS)StoreProperty -> (JS)SetKeyedProperty: implements set semantics
        for keyed properties, only compiled from SetKeyedProperty(previously
        StaKeyedProperty) and lowers to KeyedStoreIC
      - (JS)DefineProperty -> (JS)DefineKeyedOwnProperty: implements define
        semantics for initialization of private class fields and computed
        public class fields, compiled from DefineKeyedOwnProperty (previously
        StaKeyedPropertyAsDefine) and calls DefineKeyedOwnIC (previously
        KeyedDefineOwnIC).
      - (JS)StoreDataPropertyInLiteral ->
        (JS)DefineKeyedOwnPropertyInLiteral: implements define semantics for
        initialization of keyed properties in object literals and static
        class initializers, compiled from DefineKeyedOwnPropertyInLiteral
        (previously StaDataPropertyInLiteral) and calls the
        DefineKeyedOwnPropertyInLiteral runtime function (previously
        DefineDataPropertyInLiteral).
      
      Runtime:
      - DefineDataPropertyInLiteral -> DefineKeyedOwnPropertyInLiteral:
        following the bytecode/opcodes change, this is used by
        DefineKeyedOwnPropertyInLiteral (previously StaDataPropertyInLiteral)
        for object and class literal initialization.
      - StoreDataPropertyInLiteral -> DefineKeyedOwnPropertyInLiteral_Simple:
        it's just a simplified version of DefineDataPropertyInLiteral that
        does not update feedback or perform function name configuration.
        This is used by object spread and array literal creation. Since we
        are renaming DefineDataPropertyInLiteral to
        DefineKeyedOwnPropertyInLiteral, rename this simplified version with
        a `_Simple` suffix. We can consider merging it into
        DefineKeyedOwnPropertyInLiteral in the future. See
        https://docs.google.com/document/d/1jvSEvXFHRkxg4JX-j6ho3nRqAF8vZI2Ai7RI8AY54gM/edit?disco=AAAAQQIz6mU
      - Other changes following the bytecode/IR changes
      
      IC:
      
      - StoreOwn -> DefineNamedOwn: used for initialization of named
        properties in object literals and named public class fields.
        - StoreOwnIC -> DefineNamedOwnIC
        - StoreMode::kStoreOwn -> StoreMode::kDefineNamedOwn
        - StoreICMode::kStoreOwn -> StoreICMode::kDefineNamedOwn
        - IsStoreOwn() -> IsDefineNamedOwn()
      - DefineOwn -> DefineKeyedOwn: IsDefineOwnIC() was already just
        IsDefineKeyedOwnIC(), and IsAnyDefineOwn() includes both named and
        keyed defines so we don't need an extra generic predicate.
        - StoreMode::kDefineOwn -> StoreMode::kDefineKeyedOwn
        - StoreICMode::kDefineOwn -> StoreICMode::kDefineKeyedOwn
        - IsDefineOwn() -> IsDefineKeyedOwn()
        - IsDefineOwnIC() -> IsDefineKeyedOwnIC()
        - Removing IsKeyedDefineOwnIC() as its now a duplicate of
          IsDefineKeyedOwnIC()
      - KeyedDefineOwnIC -> DefineKeyedOwnIC,
        KeyedDefineOwnGenericGenerator() -> DefineKeyedOwnGenericGenerator:
        make the ordering of terms more consistent
      - IsAnyStoreOwn() -> IsAnyDefineOwn(): this includes the renamed and
        DefineNamedOwn and DefineKeyedOwn. Also is_any_store_own() is
        removed since it's just a duplicate of this.
      - IsKeyedStoreOwn() -> IsDefineNamedOwn(): it's unclear where the
        "keyed" part came from, but it's only used when DefineNamedOwnIC
        (previously StoreOwnIC) reuses KeyedStoreIC, so rename it accordingly
      
      Interpreter & compiler:
      - BytecodeArrayBuilder: following bytecode changes
          - StoreNamedProperty -> SetNamedProperty
        - StoreNamedOwnProperty -> DefineNamedOwnProperty
        - StoreKeyedProperty -> SetKeyedProperty
        - DefineKeyedProperty -> DefineKeyedOwnProperty
        - StoreDataPropertyInLiteral -> DefineKeyedOwnPropertyInLiteral
      - FeedbackSlotKind:
        - kDefineOwnKeyed -> kDefineKeyedOwn: make the ordering of terms more
          consistent
        - kStoreOwnNamed -> kDefineNamedOwn: following the IC change
        - kStoreNamed{Sloppy|Strict} -> kSetNamed{Sloppy|Strict}: only
          used in StoreIC for set semantics
        - kStoreKeyed{Sloppy|Strict} -> kSetKeyed{Sloppy|Strict}: only used
          in KeyedStoreIC for set semantics
        - kStoreDataPropertyInLiteral -> kDefineKeyedOwnPropertyInLiteral:
          following the IC change
      - BytecodeGraphBuilder
        - StoreMode::kNormal, kOwn -> NamedStoreMode::kSet, kDefineOwn: this
          is only used by BytecodeGraphBuilder::BuildNamedStore() to tell the
          difference between SetNamedProperty and DefineNamedOwnProperty
          operations.
      
      Not changed:
      
      - StoreIC and KeyedStoreIC currently contain mixed logic for both Set
        and Define operations, and the paths are controlled by feedback. The
        plan is to refactor the hierarchy like this:
        ```
        - StoreIC
          - DefineNamedOwnIC
          - SetNamedIC (there could also be a NamedStoreIC if that's helpful)
          - KeyedStoreIC
            - SetKeyedIC
            - DefineKeyedOwnIC
            - DefineKeyedOwnICLiteral (could be merged into DefineKeyedOwnIC)
            - StoreInArrayLiteralIC
          - ...
        ```
        StoreIC and KeyedStoreIC would then contain helpers shared by their
        subclasses, therefore it still makes sense to keep the word "Store"
        in their names since they would be generic base classes for both set
        and define operations.
      - The Lda and Sta prefixes of bytecodes not involving object properties
        (e.g. Ldar, Star, LdaZero) are kept, since this patch focuses on
        property operations, and distinction between Set and Define might be
        less relevant or nonexistent for bytecodes not involving object
        properties. We could consider rename some of them in future patches
        if that's helpful though.
      
      Bug: v8:12548
      Change-Id: Ia36997b02f59a87da3247f20e0560a7eb13077f3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3481475
      
      
      Reviewed-by: default avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: default avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: default avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: default avatarDominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: default avatarShu-yu Guo <syg@chromium.org>
      Reviewed-by: default avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: default avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Joyee Cheung <joyee@igalia.com>
      Cr-Commit-Position: refs/heads/main@{#79409}
      0d1ffe30