1. 24 Jun, 2016 1 commit
  2. 21 Jun, 2016 1 commit
  3. 31 May, 2016 2 commits
  4. 27 May, 2016 1 commit
    • littledan's avatar
      Unship ES2015 for-in initializer restrictions · 7245dabd
      littledan authored
      We now have data that 0.011% of websites use the pattern
        for (var i = 0 in j) { ... }
      This pattern was banned by ES2015, with the idea to revisit if
      it presents a web compatibility problem. Informally, after
      the May 2016 TC39 meeting, the new data was discussed, and there
      was interest in reversing the decision. Although the specification
      is not yet updated, it seems likely to come soon.
      
      This patch turns off the flag which bans that construct, reenabling
      it. The change should prevent websites from breaking.
      
      BUG=v8:4942
      
      Review-Url: https://codereview.chromium.org/2011223003
      Cr-Commit-Position: refs/heads/master@{#36562}
      7245dabd
  5. 11 May, 2016 1 commit
    • rmcilroy's avatar
      [Interpreter] Fix incorrect frame walking in arguments create stubs · 40f34541
      rmcilroy authored
      The previous approach taken by FastNew[Sloppy,Strict,Rest]ArgumentsStub
      looked at the function slot in order to skip stub frames
      and find the JS frame. However, stub frames do not have a
      function slot (in fact their fixed frame ends one slot
      before the JS frame's function slot). Therefore, if this
      location in the stub frame happens to have the function
      object the create arguments stubs won't skip this frame
      correctly.
      
      Replace this approach with one where the stub is
      specialized to either skip a frame if required (since
      there will only ever be one extra frame on Ignition
      the loop approach isn't necessary).
      
      BUG=v8:4928
      LOG=N
      CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_dbg
      
      Review-Url: https://codereview.chromium.org/1949023003
      Cr-Commit-Position: refs/heads/master@{#36181}
      40f34541
  6. 02 May, 2016 2 commits
  7. 29 Apr, 2016 1 commit
  8. 28 Apr, 2016 3 commits
    • machenbach's avatar
      Revert of [Ignition] Test ignition on all bots. (patchset #4 id:60001 of... · af419971
      machenbach authored
      Revert of [Ignition] Test ignition on all bots. (patchset #4 id:60001 of https://codereview.chromium.org/1804003002/ )
      
      Reason for revert:
      Will resubmit with proper fix and more test skips.
      
      Original issue's description:
      > [Ignition] Test ignition on all bots.
      >
      > This adds ignition to the testing variants that are run on all
      > bots.
      >
      > Failing tests can only be skipped with the NO_IGNITION
      > keyword in status files. Existing expectations for the
      > ignition_turbofan variant are all duplicated and use the
      > NO_IGNITION keyword as well now.
      >
      > BUG=v8:4280
      > LOG=N
      > NOTRY=true
      
      TBR=rmcilroy@chromium.org,mstarzinger@chromium.org,yangguo@chromium.org,mythria@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4280
      
      Review-Url: https://codereview.chromium.org/1930943002
      Cr-Commit-Position: refs/heads/master@{#35871}
      af419971
    • rossberg's avatar
      Ship for-in initializer deprecation · 9e7793ea
      rossberg authored
      R=hablich@chromium.org
      BUG=v8:4942
      LOG=true
      
      Review-Url: https://codereview.chromium.org/1928513004
      Cr-Commit-Position: refs/heads/master@{#35868}
      9e7793ea
    • machenbach's avatar
      [Ignition] Test ignition on all bots. · 132c09ed
      machenbach authored
      This adds ignition to the testing variants that are run on all
      bots.
      
      Failing tests can only be skipped with the NO_IGNITION
      keyword in status files. Existing expectations for the
      ignition_turbofan variant are all duplicated and use the
      NO_IGNITION keyword as well now.
      
      BUG=v8:4280
      LOG=N
      NOTRY=true
      
      Review-Url: https://codereview.chromium.org/1804003002
      Cr-Commit-Position: refs/heads/master@{#35865}
      132c09ed
  9. 26 Apr, 2016 1 commit
  10. 21 Apr, 2016 2 commits
  11. 08 Apr, 2016 2 commits
  12. 04 Apr, 2016 1 commit
  13. 01 Apr, 2016 1 commit
    • littledan's avatar
      Revert of Remove RegExp.prototype.source getter compat workaround (patchset #2... · 31e806eb
      littledan authored
      Revert of Remove RegExp.prototype.source getter compat workaround (patchset #2 id:20001 of https://codereview.chromium.org/1837843002/ )
      
      Reason for revert:
      TC39 decided that this compatibility fix should be standardized.
      
      Original issue's description:
      > Remove RegExp.prototype.source getter compat workaround
      >
      > 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
      >
      > Committed: https://crrev.com/80803aa89e31839b8f73959776fa7e1923c6b461
      > Cr-Commit-Position: refs/heads/master@{#35086}
      
      R=adamk@chromium.org
      # Not skipping CQ checks because original CL landed more than 1 days ago.
      BUG=chromium:581577,v8:4827
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1847783003
      
      Cr-Commit-Position: refs/heads/master@{#35180}
      31e806eb
  14. 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
  15. 22 Mar, 2016 2 commits
    • adamk's avatar
      Remove support for legacy const, part 1 · ed18aa65
      adamk authored
      Now that ES2015 const has shipped, in Chrome 49, legacy const declarations
      are no more. This lets us remove a bunch of code from many parts of the
      codebase.
      
      In this patch, I remove parser support for generating legacy const variables
      from const declarations. This also removes the special "illegal declaration"
      bit from Scope, which has ripples into all compiler backends.
      
      Also gone are any tests which relied on legacy const declarations.
      
      Note that we do still generate a Variable in mode CONST_LEGACY in one case:
      function name bindings in sloppy mode. The likely fix there is to add a new
      Variable::Kind for this case and handle it appropriately for stores in each
      backend, but I leave that for a later patch to make this one completely
      subtractive.
      
      Review URL: https://codereview.chromium.org/1819123002
      
      Cr-Commit-Position: refs/heads/master@{#35002}
      ed18aa65
    • mythria's avatar
      [Interpreter] Fixes CopyBytecodeArray to copy interrupt_budget field. · 27338320
      mythria authored
      Fixes CopyBytecodeArray to set the interrupt_budget field.
      
      BUG=v8:4280,v8:4690
      LOG=N
      
      Review URL: https://codereview.chromium.org/1809123003
      
      Cr-Commit-Position: refs/heads/master@{#34982}
      27338320
  16. 21 Mar, 2016 1 commit
  17. 18 Mar, 2016 1 commit
  18. 16 Mar, 2016 1 commit
    • littledan's avatar
      Ship ES2015 restrictions on function declaration locations · f9db79eb
      littledan authored
      Function declarations were previously permitted by V8 in many locations
      which no ECMAScript specification allowed; the ECMAScript 2015 spec
      enumerates a few locations (in blocks, as well as after labels and in
      conditionals when in sloppy mode). This patch ships the flag to restrict
      the usage of function declarations to those contexts.
      
      R=adamk
      LOG=Y
      BUG=v8:4824
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      
      Review URL: https://codereview.chromium.org/1799233003
      
      Cr-Commit-Position: refs/heads/master@{#34828}
      f9db79eb
  19. 15 Mar, 2016 2 commits
  20. 14 Mar, 2016 3 commits
    • littledan's avatar
      Make test262 test runner check for which exception is thrown · f3568ca4
      littledan authored
      test262 "negative" test expectations list which exception is thrown. The ES2017
      draft specification is very specific about which exception class is thrown
      from which path, and V8 works hard to be correct with respect to that spec.
      
      Previously, the test262 test runner would accept any nonzero status code,
      such as from a crash, or a FAIL printed out, for a negative test. This
      patch makes negative tests check for the right answer using a quick-and-dirty
      parsing of the exception printing from d8 to find the exception class.
      It invokes d8 in a way to get a status code of 0 from thrown exceptions
      so that 'negative' tests aren't actually implemented by negating the output.
      
      Amazingly, this didn't catch any test262 failures, but I verified the extra
      checking interactively by changing a negative test to expect a different type
      and saw it fail.
      
      BUG=v8:4803
      R=machenbach
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1766503002
      
      Cr-Commit-Position: refs/heads/master@{#34763}
      f3568ca4
    • mstarzinger's avatar
      [interpreter] Fix label binding for unreached labels. · 27a9009a
      mstarzinger authored
      This fixes the label binding mechanism that forwards a label to another
      already bound target label. For source labels that are not being reached
      by a jump, we should not try to patch jump sites. We still bind the
      source label to reflect the target position though, just in case this
      binding method will be used for backwards branches in the future.
      
      R=rmcilroy@chromium.org
      TEST=webkit/fast/js/parser-syntax-check
      
      Review URL: https://codereview.chromium.org/1804643002
      
      Cr-Commit-Position: refs/heads/master@{#34759}
      27a9009a
    • mstarzinger's avatar
      [testing] Extend interpreter testing to webkit suite. · 51a22bda
      mstarzinger authored
      This also runs the webkit test suite against Ignition. By now most of
      the tests pass, the failing ones have been blacklisted.
      
      R=machenbach@chromium.org
      TEST=webkit
      
      Review URL: https://codereview.chromium.org/1799603003
      
      Cr-Commit-Position: refs/heads/master@{#34749}
      51a22bda
  21. 10 Mar, 2016 1 commit
  22. 02 Mar, 2016 1 commit
  23. 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
  24. 25 Jan, 2016 1 commit
  25. 18 Jan, 2016 1 commit
  26. 11 Jan, 2016 1 commit
    • littledan's avatar
      Ship ES2015 sloppy-mode const semantics · 95145fa8
      littledan authored
      This patch moves the semantics of 'const' in sloppy mode to match those
      in strict mode, that is, const makes lexical (let-like) bindings, must
      have an initializer, and does not create properties of the global object.
      
      R=adamk
      LOG=Y
      BUG=v8:3305
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      
      Review URL: https://codereview.chromium.org/1571873004
      
      Cr-Commit-Position: refs/heads/master@{#33218}
      95145fa8
  27. 08 Jan, 2016 1 commit
    • littledan's avatar
      Reland of Ship ES2015 sloppy-mode function hoisting, let, class (patchset #1... · 23235b5f
      littledan authored
      Reland of Ship ES2015 sloppy-mode function hoisting, let, class (patchset #1 id:1 of https://codereview.chromium.org/1565263002/ )
      
      Reason for revert:
      Crash fixed by https://codereview.chromium.org/1564923007
      
      Original issue's description:
      > Revert of Ship ES2015 sloppy-mode function hoisting, let, class (patchset #7 id:120001 of https://codereview.chromium.org/1551443002/ )
      >
      > Reason for revert:
      > Causes frequent crashes in Canary: chromium:537816
      >
      > Original issue's description:
      > > Ship ES2015 sloppy-mode function hoisting, let, class
      > >
      > > This patch doesn't ship all features of ES2015 variable/scoping
      > > changes, notably omitting the removal of legacy const. I think
      > > function hoisting, let and class in sloppy mode can stand to
      > > themselves as a package, and the legacy const change is much
      > > riskier and more likely to be reverted, so my intention is to
      > > pursue those as a separate, follow-on patch.
      > >
      > > R=adamk@chromium.org
      > > BUG=v8:4285,v8:3305
      > > LOG=Y
      > > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      > >
      > > Committed: https://crrev.com/fcff8588a5a01587643d6c2507c7b882c78a2957
      > > Cr-Commit-Position: refs/heads/master@{#33133}
      >
      > TBR=adamk@chromium.org
      > # Not skipping CQ checks because original CL landed more than 1 days ago.
      > BUG=v8:4285,v8:3305,chromium:537816
      > LOG=Y
      >
      > Committed: https://crrev.com/adac5956c6216056a211cfaa460a00ac1500d8f8
      > Cr-Commit-Position: refs/heads/master@{#33162}
      
      TBR=adamk@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4285,v8:3305,chromium:537816
      
      Review URL: https://codereview.chromium.org/1571793002
      
      Cr-Commit-Position: refs/heads/master@{#33189}
      23235b5f
  28. 07 Jan, 2016 1 commit
    • littledan's avatar
      Revert of Ship ES2015 sloppy-mode function hoisting, let, class (patchset #7... · adac5956
      littledan authored
      Revert of Ship ES2015 sloppy-mode function hoisting, let, class (patchset #7 id:120001 of https://codereview.chromium.org/1551443002/ )
      
      Reason for revert:
      Causes frequent crashes in Canary: chromium:537816
      
      Original issue's description:
      > Ship ES2015 sloppy-mode function hoisting, let, class
      >
      > This patch doesn't ship all features of ES2015 variable/scoping
      > changes, notably omitting the removal of legacy const. I think
      > function hoisting, let and class in sloppy mode can stand to
      > themselves as a package, and the legacy const change is much
      > riskier and more likely to be reverted, so my intention is to
      > pursue those as a separate, follow-on patch.
      >
      > R=adamk@chromium.org
      > BUG=v8:4285,v8:3305
      > LOG=Y
      > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      >
      > Committed: https://crrev.com/fcff8588a5a01587643d6c2507c7b882c78a2957
      > Cr-Commit-Position: refs/heads/master@{#33133}
      
      TBR=adamk@chromium.org
      # Not skipping CQ checks because original CL landed more than 1 days ago.
      BUG=v8:4285,v8:3305,chromium:537816
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1565263002
      
      Cr-Commit-Position: refs/heads/master@{#33162}
      adac5956
  29. 06 Jan, 2016 1 commit
    • littledan's avatar
      Ship ES2015 sloppy-mode function hoisting, let, class · fcff8588
      littledan authored
      This patch doesn't ship all features of ES2015 variable/scoping
      changes, notably omitting the removal of legacy const. I think
      function hoisting, let and class in sloppy mode can stand to
      themselves as a package, and the legacy const change is much
      riskier and more likely to be reverted, so my intention is to
      pursue those as a separate, follow-on patch.
      
      R=adamk@chromium.org
      BUG=v8:4285,v8:3305
      LOG=Y
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      
      Review URL: https://codereview.chromium.org/1551443002
      
      Cr-Commit-Position: refs/heads/master@{#33133}
      fcff8588
  30. 22 Dec, 2015 1 commit
    • 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