1. 21 Oct, 2016 3 commits
    • jgruber's avatar
      [regexp] Use consistent map checks for fast paths · eb10dc4c
      jgruber authored
      These map checks were implemented for TF code already. This CL makes
      sure that parts implemented in C++ follow the same logic, which is:
      
      An object is an unmodified regexp if:
      1) it's a receiver,
      2) its map is the initial regexp map,
      3) its prototype is a receiver,
      4) and its prototype's map is the initial prototype's initial map.
      
      We can now be smarter in @@replace and @@split since checking maps
      (unlike the previous check of RegExp.prototype.exec) is not observable,
      so we can perform fast-path checks at a time of our choosing.
      
      BUG=v8:5339,v8:5434,v8:5123
      
      Review-Url: https://chromiumcodereview.appspot.com/2434983002
      Cr-Commit-Position: refs/heads/master@{#40501}
      eb10dc4c
    • machenbach's avatar
      Revert of [regexp] Use consistent map checks for fast paths (patchset #7... · 0b7e35ff
      machenbach authored
      Revert of [regexp] Use consistent map checks for fast paths (patchset #7 id:120001 of https://chromiumcodereview.appspot.com/2434983002/ )
      
      Reason for revert:
      https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/10853
      
      Original issue's description:
      > [regexp] Use consistent map checks for fast paths
      >
      > These map checks were implemented for TF code already. This CL makes
      > sure that parts implemented in C++ follow the same logic, which is:
      >
      > An object is an unmodified regexp if:
      > 1) it's a receiver,
      > 2) its map is the initial regexp map,
      > 3) its prototype is a receiver,
      > 4) and its prototype's map is the initial prototype's initial map.
      >
      > We can now be smarter in @@replace and @@split since checking maps
      > (unlike the previous check of RegExp.prototype.exec) is not observable,
      > so we can perform fast-path checks at a time of our choosing.
      >
      > BUG=v8:5339,v8:5434,v8:5123
      
      TBR=yangguo@chromium.org,jgruber@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:5339,v8:5434,v8:5123
      
      Review-Url: https://chromiumcodereview.appspot.com/2438283002
      Cr-Commit-Position: refs/heads/master@{#40499}
      0b7e35ff
    • jgruber's avatar
      [regexp] Use consistent map checks for fast paths · bac992a1
      jgruber authored
      These map checks were implemented for TF code already. This CL makes
      sure that parts implemented in C++ follow the same logic, which is:
      
      An object is an unmodified regexp if:
      1) it's a receiver,
      2) its map is the initial regexp map,
      3) its prototype is a receiver,
      4) and its prototype's map is the initial prototype's initial map.
      
      We can now be smarter in @@replace and @@split since checking maps
      (unlike the previous check of RegExp.prototype.exec) is not observable,
      so we can perform fast-path checks at a time of our choosing.
      
      BUG=v8:5339,v8:5434,v8:5123
      
      Review-Url: https://chromiumcodereview.appspot.com/2434983002
      Cr-Commit-Position: refs/heads/master@{#40495}
      bac992a1
  2. 24 Jun, 2016 1 commit
  3. 05 Apr, 2016 1 commit
  4. 04 Apr, 2016 1 commit
  5. 01 Apr, 2016 3 commits
  6. 28 Mar, 2016 1 commit
    • littledan's avatar
      Remove RegExp.prototype.source getter compat workaround · 80803aa8
      littledan authored
      The getter RegExp.prototype.source is specified in ES2015 to throw when
      called on a non-RegExp instance, such as RegExp.prototype. We had previously
      put in a compatibility workaround for all RegExp getters to make them
      throw on access specifically with RegExp.prototype as the receiver; however,
      we only have evidence that this is needed for properties other than source.
      This patch removes the compatibility workaround for get RegExp.prototype.source
      and gives it semantics precisely as per the ES2015 specification.
      
      R=adamk
      BUG=chromium:581577,v8:4827
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1837843002
      
      Cr-Commit-Position: refs/heads/master@{#35086}
      80803aa8
  7. 25 Mar, 2016 1 commit
    • adamk's avatar
      Remove --harmony-regexps flag · 06403470
      adamk authored
      It's been on since M49. Also moved tests from harmony -> es6,
      one of which was merged with another test of the same name.
      
      While moving stuff over to regexp.js, I also noticed that there
      were unused calls to %FunctionSetName and %SetNativeFlag (those
      calls are already handled by InstallGetter()).
      
      Review URL: https://codereview.chromium.org/1838563003
      
      Cr-Commit-Position: refs/heads/master@{#35076}
      06403470
  8. 23 Feb, 2016 1 commit
    • littledan's avatar
      ES2015 web compat workaround: RegExp.prototype.flags => "" · b22b2588
      littledan authored
      It turns out that some old polyfill library uses
      RegExp.prototype.flags as a way of feature testing. It's not clear
      how widespread this is. For now, as a minimal workaround, we can
      return undefined from getters like RegExp.prototype.global when
      the receiver is RegExp.prototype. This patch implements that strategy
      but omits a UseCounter to make backports easier.
      
      R=adamk
      CC=yangguo@chromium.org
      BUG=chromium:581577
      LOG=Y
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      
      Review URL: https://codereview.chromium.org/1640803003
      
      Cr-Commit-Position: refs/heads/master@{#34201}
      b22b2588
  9. 22 Dec, 2015 3 commits
    • littledan's avatar
      Reland of Add web compat workarounds for ES2015 RegExp semantics (patchset #3... · 424ef009
      littledan authored
      Reland of Add web compat workarounds for ES2015 RegExp semantics (patchset #3 id:40001 of https://codereview.chromium.org/1543723002/ )
      
      Unexpectedly, websites depend on doing feature testing with
      RegExp.prototype.sticky and browser testing with RegExp.prototype.toString().
      ES2015 newly throws exceptions for both of these. In order to enable shipping
      new ES2015 semantics, this patch puts in narrow workarounds for those two
      cases, keeping their old behavior. UseCounters are added for how often
      those particular cases come up, so we can see if it can be deprecated.
      
      This reland replaces problematic legacy const usage with var, to
      avoid issues with nosnap builds.
      
      R=yangguo
      CC=bmeurer
      BUG=v8:4637,v8:4617
      LOG=Y
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      
      Review URL: https://codereview.chromium.org/1545633002
      
      Cr-Commit-Position: refs/heads/master@{#33002}
      424ef009
    • bmeurer's avatar
      Revert of Add web compat workarounds for ES2015 RegExp semantics (patchset #3... · 08a1d1a2
      bmeurer authored
      Revert of Add web compat workarounds for ES2015 RegExp semantics (patchset #3 id:40001 of https://codereview.chromium.org/1543723002/ )
      
      Reason for revert:
      Breaks nosnap: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap/builds/5883
      
      Original issue's description:
      > Add web compat workarounds for ES2015 RegExp semantics
      >
      > Unexpectedly, websites depend on doing feature testing with
      > RegExp.prototype.sticky and browser testing with RegExp.prototype.toString().
      > ES2015 newly throws exceptions for both of these. In order to enable shipping
      > new ES2015 semantics, this patch puts in narrow workarounds for those two
      > cases, keeping their old behavior. UseCounters are added for how often
      > those particular cases come up, so we can see if it can be deprecated.
      >
      > R=yangguo
      > BUG=v8:4637,v8:4617
      > LOG=Y
      > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      >
      > Committed: https://crrev.com/98f819c3e0c92d54a306cdacadda73cf96d21b52
      > Cr-Commit-Position: refs/heads/master@{#32997}
      
      TBR=yangguo@google.com,yangguo@chromium.org,littledan@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4637,v8:4617
      
      Review URL: https://codereview.chromium.org/1546493003
      
      Cr-Commit-Position: refs/heads/master@{#32999}
      08a1d1a2
    • littledan's avatar
      Add web compat workarounds for ES2015 RegExp semantics · 98f819c3
      littledan authored
      Unexpectedly, websites depend on doing feature testing with
      RegExp.prototype.sticky and browser testing with RegExp.prototype.toString().
      ES2015 newly throws exceptions for both of these. In order to enable shipping
      new ES2015 semantics, this patch puts in narrow workarounds for those two
      cases, keeping their old behavior. UseCounters are added for how often
      those particular cases come up, so we can see if it can be deprecated.
      
      R=yangguo
      BUG=v8:4637,v8:4617
      LOG=Y
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      
      Review URL: https://codereview.chromium.org/1543723002
      
      Cr-Commit-Position: refs/heads/master@{#32997}
      98f819c3
  10. 10 Nov, 2015 1 commit
  11. 05 Nov, 2015 2 commits
  12. 04 Nov, 2015 5 commits
  13. 03 Nov, 2015 2 commits