1. 12 Jan, 2021 2 commits
  2. 21 Dec, 2020 2 commits
  3. 14 Dec, 2020 1 commit
  4. 11 Dec, 2020 3 commits
  5. 10 Dec, 2020 1 commit
  6. 04 Dec, 2020 1 commit
  7. 26 Nov, 2020 1 commit
  8. 24 Nov, 2020 2 commits
  9. 20 Nov, 2020 1 commit
  10. 18 Nov, 2020 1 commit
  11. 16 Nov, 2020 1 commit
  12. 09 Nov, 2020 1 commit
  13. 03 Nov, 2020 1 commit
  14. 02 Nov, 2020 1 commit
  15. 30 Oct, 2020 1 commit
    • Martin Bidlingmaier's avatar
      [regexp] Add 'l' flag to force experimental engine · 5720d205
      Martin Bidlingmaier authored
      This commit adds the 'l' (linear) RegExp flag (as in e.g. /asdf|123/l)
      that forces execution in linear time.  These regexps are handled by the
      experimental engine.  If the experimental engine cannot handle the
      pattern, an exception is thrown on creation of the regexp.
      
      The commit also adds a new global V8 flag and changes an existing one:
      * --enable-experimental-engine, which turns on recognition of the RegExp
        'l' flag.  Previously this flag also caused all supported regexps to
        be executed by the experimental engine; this is not the case anymore.
      * --default-to-experimental-regexp-engine takes over the previous
        semantics of --enable-experimental-regexp-engine:  We execute all
        supported regexps with the experimental engine.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
      Bug: v8:10765
      Change-Id: I5622a89b19404105e8be280d454e9fdd63c003b3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2461244Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Martin Bidlingmaier <mbid@google.com>
      Cr-Commit-Position: refs/heads/master@{#70892}
      5720d205
  16. 29 Oct, 2020 1 commit
  17. 26 Oct, 2020 2 commits
  18. 25 Oct, 2020 2 commits
    • Zhi An Ng's avatar
      Revert "[code] Separate instruction and metadata areas" · 9a02964a
      Zhi An Ng authored
      This reverts commit b66993bc.
      
      Reason for revert: Broke v8 win32 https://ci.chromium.org/p/v8/builders/ci/V8%20Win32/29454?
      
      Original change's description:
      > [code] Separate instruction and metadata areas
      >
      > In this CL, Code object layout changes s.t. the instruction
      > area is distinct / non-overlapping from the metadata area.
      >
      > On-heap Code objects now have a variable-size `body` area,
      > containing distinct-but-adjacent `instruction` and `metadata`
      > areas.
      >
      > Off-heap code (= embedded builtins) currently have the same,
      > but in the future the metadata area will move elsewhere and
      > no longer be adjacent to instructions.
      >
      > To implement this, the main changes are:
      >
      >  - The Code object header now contains instruction and metadata
      >    sizes, and no longer contains the safepoint table offset
      >    (it's implicitly the first table of the metadata section).
      >  - The embedded metadata table contains information about both
      >    instruction and metadata areas.
      >
      > I've also added assertions in spots that currently rely on a
      > contiguous body area.
      >
      > Bug: v8:11036
      > Change-Id: I940f0c70c07ad511dafd2d2c3e337de8c92cd4b9
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2491025
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#70743}
      
      TBR=jgruber@chromium.org,leszeks@chromium.org,clemensb@chromium.org,dinfuehr@chromium.org
      
      Change-Id: Ia52ac609a47b8a2038a2511f0af8526ebdfe4719
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:11036
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2497381Reviewed-by: 's avatarZhi An Ng <zhin@chromium.org>
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70744}
      9a02964a
    • Jakob Gruber's avatar
      [code] Separate instruction and metadata areas · b66993bc
      Jakob Gruber authored
      In this CL, Code object layout changes s.t. the instruction
      area is distinct / non-overlapping from the metadata area.
      
      On-heap Code objects now have a variable-size `body` area,
      containing distinct-but-adjacent `instruction` and `metadata`
      areas.
      
      Off-heap code (= embedded builtins) currently have the same,
      but in the future the metadata area will move elsewhere and
      no longer be adjacent to instructions.
      
      To implement this, the main changes are:
      
       - The Code object header now contains instruction and metadata
         sizes, and no longer contains the safepoint table offset
         (it's implicitly the first table of the metadata section).
       - The embedded metadata table contains information about both
         instruction and metadata areas.
      
      I've also added assertions in spots that currently rely on a
      contiguous body area.
      
      Bug: v8:11036
      Change-Id: I940f0c70c07ad511dafd2d2c3e337de8c92cd4b9
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2491025Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70743}
      b66993bc
  19. 22 Oct, 2020 1 commit
    • Jakob Gruber's avatar
      [code] Prepare to move metadata out of the instructions area · 0d0a3416
      Jakob Gruber authored
      No major functional changes in this CL, mostly it moves code around
      to make follow-up CLs less messy.
      
       - Document Code layout.
       - New concepts: 'body' and 'metadata' areas of Code objects. The
         metadata area contains metadata tables, the body area includes
         both instructions and metadata (this is currently the 'instructions'
         area). Add accessors for these new areas.
       - An interesting detail: embedded builtins will have non-adjacent
         instruction and metadata areas, thus a concept of 'body' doesn't
         make sense there.
       - Also add raw_instruction_X_future accessors; these are used where
         we are actually interested in the instructions range, not the entire
         body. In a follow-up, current raw_instruction_X accessors will be
         replaced by raw_body_X, and raw_instruction_X_future by
         raw_instruction_X.
      
      Bug: v8:11036
      Change-Id: I1d85146b652e0c097c3602d4db1862d5d3898a7e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2491023
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70701}
      0d0a3416
  20. 21 Oct, 2020 1 commit
  21. 20 Oct, 2020 1 commit
  22. 19 Oct, 2020 2 commits
  23. 16 Oct, 2020 1 commit
  24. 14 Oct, 2020 1 commit
    • Martin Bidlingmaier's avatar
      [regexp] Use experimental engine if backtrack limit exceeded · d4febb6b
      Martin Bidlingmaier authored
      We fall back from irregexp to the experimental engine if a backtrack
      limit is exceeded and the experimental engine can handle the regexp.
      The feature can be turned on with a boolean flag, and an uint-valued
      flag controls the default backtrack limit.  For regexps that are
      constructed with an explicit backtrack limit (API,
      %NewRegExpWithBacktrackLimit), we choose the lower of the explicit and
      default backtrack limits.
      The default backtrack limit does not apply to regexps that can't be
      handled by the experimental engine, and for such regexps an explicitly
      specified backtrack limit is handled as before by returning null if we
      exceed it.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
      Bug: v8:10765
      Change-Id: I580df79bd847520985b6c2c2159bc427315c89d1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2436341
      Commit-Queue: Martin Bidlingmaier <mbid@google.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70500}
      d4febb6b
  25. 12 Oct, 2020 3 commits
  26. 07 Oct, 2020 1 commit
  27. 05 Oct, 2020 1 commit
  28. 30 Sep, 2020 1 commit
  29. 24 Sep, 2020 1 commit
    • Jakob Gruber's avatar
      [regexp] Assign proper flags to TextNode · 5b42e3f3
      Jakob Gruber authored
      This fixes a case in which we forgot to assign flags to TextNodes
      created through
      
      AddBmpCharacters
      AddNonBmpSurrogatePairs
      AddLoneLeadSurrogates
      AddLoneTrailSurrogates
      
      functions. If these initially had a flag (e.g. case-insensitive 'i')
      set, that information was lost. This bug resulted in missing case
      folding in no_i18n builds (perhaps other things as well that just
      aren't covered by our test suite).
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Bug: v8:10131,v8:10120
      Change-Id: Icef4f0dbd47971a538e07bab2f1067c383fd59c6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2423718Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70106}
      5b42e3f3
  30. 23 Sep, 2020 1 commit
    • Martin Bidlingmaier's avatar
      [regexp] Support the msy flags in experimental engine · e6e9cbac
      Martin Bidlingmaier authored
      The m (multiline) and s (dotall) flags just needed to be marked as
      allowed; the required logic was already in the regexp parser.
      
      A regexp /<x>/ without the y (sticky) flag is equivalent to the sticky
      regexp /.*?<x>/y.  The interpreter now assumes that every regexp is
      sticky, and the compiler appends a preamble corresponding to /.*?/
      before non-sticky regexps.  To reuse existing code for compiling this
      preamble, the logic for each kind of quantifier is now in a separate
      function and called from VisitQuantifier and for the preamble.
      
      The commit also includes some improvements/fixes for character ranges:
      - Empty character ranges/disjunctions should never match, but before
        this commit they would *always* match.
      - The check of the range bounds in CanBeHandledVisitor was unncessary;
        without the unicode flag this can't be a range that can't be specified
        in 2-byte codepoints, and once we support unicode we simply support
        all codepoints.
      - The capacity of the list containing the complementary intervals of a
        character range is now calculated more accurately.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
      Bug: v8:10765
      Change-Id: I71a0e07279b4e1140c0ed1651b3714200c801de9
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2404766
      Commit-Queue: Martin Bidlingmaier <mbid@google.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70082}
      e6e9cbac