1. 21 Nov, 2019 2 commits
    • Tobias Tebbi's avatar
      [torque] shape: define in-object properties properly · cfab6505
      Tobias Tebbi authored
      This introduces a new keyword "shape" in addition to "class",
      which allows the definition of a type that extends a JSObject
      subclass and specifies one or several maps with statically
      known in-object properties.
      Differences compared to normal classes:
      - Shapes are transient since they specify maps instead of
        instance types.
      - Shapes have a known size.
      - Fields of shapes are always in-object properties. In particular,
        this means that their offset is after kHeaderSize.
      - It's forbidden to inherited from shapes.
      - Since shapes usually specify NativeContext-dependent maps, it's
        not possible to write runtime type-checks for them. Thus this CL
        avoids mapping them to their own TNode type, as the CAST macro
        won't work properly. We had runtime-checks for some of them
        nevertheless, some of them scarily confusing like
        IsJSSloppyArgumentsObject, that actually just checked the instance
        type.
      
      Drive-by cleanups and simplifications:
      - Allow subclassing from non-abstract classes and remove
        @dirtyInstantiatedAbstractClass. This attribute stems from a mis-
        conception of how instance types work, and with this change it
        ceases to have semantic influence.
      - Replace the existing JSArgumentsObject subclasses into two shapes.
        JSArgumentsObjectWithLength had to be removed since shapes don't
        support subclassing.
      - Place kHeaderSize correctly for objects with indexed fields.
      
      Design doc:
      https://docs.google.com/document/d/1zPy2ZYfNFjeEuw6Mz3YJA-GaPGbdcSYam3SrS7ETzRU
      
      Bug: v8:8944
      
      Change-Id: Iabf185ccd27d0900e0890539a7fe9eaa8bf2d50e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1917140
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65108}
      cfab6505
    • Joshua Litt's avatar
      Reland "[regexp] Re-execute regexp when '.indices' is accessed." · 10540937
      Joshua Litt authored
      This is a reland of f2a74165
      
      Original change's description:
      > [regexp] Re-execute regexp when '.indices' is accessed.
      >
      > Instead of storing a pointer to the last_match_info, which may
      > change, this cl modifies JSRegExpResult to store a pointer to
      > the original JSRegExp which generated it, as well as additional
      > data needed to re-execute the match.
      >
      > Basically a straight copy and tidy off jgruber@'s prototype:
      > https://chromium-review.googlesource.com/c/v8/v8/+/1876810
      >
      > Bug: v8:9548
      > Change-Id: I11b7deae681b8287e41e8d0e342291ff484751fb
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910129
      > Commit-Queue: Joshua Litt <joshualitt@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#65053}
      
      Bug: v8:9548
      Change-Id: Ieeba4b1ae59ef0c7946d654dc314adfae09d24b5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1925554Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Joshua Litt <joshualitt@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65096}
      10540937
  2. 20 Nov, 2019 1 commit
  3. 19 Nov, 2019 1 commit
  4. 11 Nov, 2019 1 commit