1. 19 Feb, 2016 4 commits
    • nikolaos's avatar
      This patch implements an alternative approach to the rewriting · ed665880
      nikolaos authored
      of non-pattern expressions, according to the (internally circulated)
      design document.  Details to be provided here.
      
      1.  RewritableAssignmentExpression has been renamed to RewritableExpression.
          It is a wrapper for AST nodes that wait for some potential rewriting
          (that may or may not happen).  Also, Is... and As... macros now see
          through RewritableExpressions.
      
      2.  The function state keeps a list of rewritable expressions that must be
          rewritten only if they are used as non-pattern expressions.
      
      3.  Expression classifiers are now templates, parameterized by parser
          traits.  They keep some additional state: a pointer to the list of
          non-pattern rewritable expressions.  It is important that expression
          classifiers be used strictly in a stack fashion, from now on.
      
      4.  The RewriteNonPattern function has been simplified.
      
      BUG=chromium:579913
      LOG=N
      
      Committed: https://crrev.com/7f5c864a6faf2b957b7273891e143b9bde35487c
      Cr-Commit-Position: refs/heads/master@{#34154}
      
      Review URL: https://codereview.chromium.org/1702063002
      
      Cr-Commit-Position: refs/heads/master@{#34162}
      ed665880
    • jarin's avatar
      Ship Turbofan try-catch. · bd6ddb83
      jarin authored
      Another attempt, after the failing test (flushed bug) has been disabled
      in chromium (https://codereview.chromium.org/1710353002).
      
      Review URL: https://codereview.chromium.org/1713033002
      
      Cr-Commit-Position: refs/heads/master@{#34159}
      bd6ddb83
    • machenbach's avatar
      Revert of Non-pattern rewriting revisited (patchset #3 id:40001 of... · 5bb6b47b
      machenbach authored
      Revert of Non-pattern rewriting revisited (patchset #3 id:40001 of https://codereview.chromium.org/1702063002/ )
      
      Reason for revert:
      [Sheriff] This makes jsfunfuzz unhappy:
      https://build.chromium.org/p/client.v8/builders/V8%20Fuzzer/builds/7681
      
      Original issue's description:
      > This patch implements an alternative approach to the rewriting
      > of non-pattern expressions, according to the (internally circulated)
      > design document.  Details to be provided here.
      >
      > 1.  RewritableAssignmentExpression has been renamed to RewritableExpression.
      >     It is a wrapper for AST nodes that wait for some potential rewriting
      >     (that may or may not happen).  Also, Is... and As... macros now see
      >     through RewritableExpressions.
      >
      > 2.  The function state keeps a list of rewritable expressions that must be
      >     rewritten only if they are used as non-pattern expressions.
      >
      > 3.  Expression classifiers are now templates, parameterized by parser
      >     traits.  They keep some additional state: a pointer to the list of
      >     non-pattern rewritable expressions.  It is important that expression
      >     classifiers be used strictly in a stack fashion, from now on.
      >
      > 4.  The RewriteNonPattern function has been simplified.
      >
      > BUG=chromium:579913
      > LOG=N
      >
      > Committed: https://crrev.com/7f5c864a6faf2b957b7273891e143b9bde35487c
      > Cr-Commit-Position: refs/heads/master@{#34154}
      
      TBR=rossberg@chromium.org,bmeurer@chromium.org,titzer@chromium.org,nikolaos@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:579913
      
      Review URL: https://codereview.chromium.org/1712203002
      
      Cr-Commit-Position: refs/heads/master@{#34158}
      5bb6b47b
    • nikolaos's avatar
      This patch implements an alternative approach to the rewriting · 7f5c864a
      nikolaos authored
      of non-pattern expressions, according to the (internally circulated)
      design document.  Details to be provided here.
      
      1.  RewritableAssignmentExpression has been renamed to RewritableExpression.
          It is a wrapper for AST nodes that wait for some potential rewriting
          (that may or may not happen).  Also, Is... and As... macros now see
          through RewritableExpressions.
      
      2.  The function state keeps a list of rewritable expressions that must be
          rewritten only if they are used as non-pattern expressions.
      
      3.  Expression classifiers are now templates, parameterized by parser
          traits.  They keep some additional state: a pointer to the list of
          non-pattern rewritable expressions.  It is important that expression
          classifiers be used strictly in a stack fashion, from now on.
      
      4.  The RewriteNonPattern function has been simplified.
      
      BUG=chromium:579913
      LOG=N
      
      Review URL: https://codereview.chromium.org/1702063002
      
      Cr-Commit-Position: refs/heads/master@{#34154}
      7f5c864a
  2. 18 Feb, 2016 1 commit
  3. 16 Feb, 2016 1 commit
  4. 12 Feb, 2016 2 commits
  5. 11 Feb, 2016 1 commit
  6. 19 Jan, 2016 1 commit
  7. 07 Jan, 2016 1 commit
  8. 31 Dec, 2015 1 commit
  9. 16 Dec, 2015 1 commit
  10. 04 Dec, 2015 1 commit
    • caitpotter88's avatar
      [es6] implement destructuring assignment · b634a61d
      caitpotter88 authored
      Attempt #<really big number>
      
      Parses, and lazily rewrites Destructuring Assignment expressions. The rewriting strategy involves inserting a placeholder RewritableAssignmentExpression into the AST, whose content expression can be completely rewritten at a later time.
      
      Lazy rewriting ensures that errors do not occur due to eagerly rewriting nodes which form part of a binding pattern, thus breaking the meaning of the pattern --- or by eagerly rewriting ambiguous constructs that are not immediately known
      
      BUG=v8:811
      LOG=Y
      R=adamk@chromium.org, bmeurer@chromium.org, rossberg@chromium.org
      
      Review URL: https://codereview.chromium.org/1309813007
      
      Cr-Commit-Position: refs/heads/master@{#32623}
      b634a61d
  11. 01 Dec, 2015 2 commits
  12. 26 Nov, 2015 1 commit
  13. 18 Nov, 2015 1 commit
  14. 04 Nov, 2015 1 commit
  15. 21 Oct, 2015 1 commit
  16. 15 Oct, 2015 1 commit
  17. 14 Oct, 2015 1 commit
    • adamk's avatar
      Eagerly extract stack limit from Isolate in InitializeAstVisitor() · d317145d
      adamk authored
      Previously, any AstVisitor subclasses which wanted to make use of
      the shared stack overflow checking code needed to depend on Isolate.
      
      With this patch, it will be easy to create a second InitializeAstVisitor
      overload taking a stack_limit directly, for use in code that has no
      Isolate available (such as code running in the parser).
      
      AstVisitor subclasses which depended upon the isolate() accessor have
      been fixed to either have their own isolate_ member or get it from
      somewhere else convenient.
      
      Review URL: https://codereview.chromium.org/1387383005
      
      Cr-Commit-Position: refs/heads/master@{#31260}
      d317145d
  18. 13 Oct, 2015 1 commit
  19. 01 Oct, 2015 1 commit
  20. 28 Sep, 2015 2 commits
  21. 21 Sep, 2015 1 commit
    • littledan's avatar
      Implement sloppy-mode block-defined functions (Annex B 3.3) · e5ff10d7
      littledan authored
      ES2015 specifies very particular semantics for functions defined in blocks.
      In strict mode, it is simply a lexical binding scoped to that block. In sloppy
      mode, in addition to that lexical binding, there is a var-style binding in
      the outer scope, which is overwritten with the local binding when the function
      declaration is evaluated, *as long as* introducing ths var binding would not
      create a var/let conflict in the outer scope.
      
      This patch implements the semantics by introducing a DelegateStatement, which
      is initially filled in with the EmptyStatement and overwritten with the
      assignment when the scope is closed out and it can be checked that there is
      no conflict.
      
      This patch is tested with a new mjsunit test, and I tried staging it and running
      test262, finding that the tests that we have disabled due to lack of Annex B
      support now pass.
      
      R=adamk,rossberg
      LOG=Y
      BUG=v8:4285
      
      Review URL: https://codereview.chromium.org/1332873003
      
      Cr-Commit-Position: refs/heads/master@{#30842}
      e5ff10d7
  22. 10 Sep, 2015 1 commit
    • mvstanton's avatar
      Vector ICs: The Oracle needs to report feedback for the object literals and the count operation. · 752b0308
      mvstanton authored
      The refactoring is because it's awkward and error-prone to deterimine which IC slot an
      ObjectLiteralProperty uses for feedback. The fix is for each one to know it's own slot. In the
      numbering pass, we allocate slots for the ObjectLiteral, then hand out those slots into the
      properties.
      
      It adds one word to the ObjectLiteralProperty expression - I'm investigating if thats a
      problem.
      
      This changes makes compiling the object literal cleaner across the three compilers. Also, the
      slot allocation logic in ObjectLiteral::ComputeFeedbackRequirements() was refactoring to mimic
      the style in full-codegen. This is useful since it must remain in sync with
      FullCodegen::VisitObjectLiteral().
      
      Review URL: https://codereview.chromium.org/1321993004
      
      Cr-Commit-Position: refs/heads/master@{#30686}
      752b0308
  23. 08 Sep, 2015 1 commit
    • mstarzinger's avatar
      Use baseline code to compute message locations. · 819b40aa
      mstarzinger authored
      This switches Isolate::ComputeLocation to use baseline code when
      computing message locations. This unifies locations between optimized
      and non-optimized code by always going through the FrameSummary for
      location computation.
      
      R=bmeurer@chromium.org
      TEST=message/regress/regress-4266
      BUG=v8:4266
      LOG=n
      
      Review URL: https://codereview.chromium.org/1331603002
      
      Cr-Commit-Position: refs/heads/master@{#30635}
      819b40aa
  24. 26 Aug, 2015 1 commit
  25. 24 Aug, 2015 1 commit
    • yangguo's avatar
      Revert of Parse arrow functions at proper precedence level (patchset #2... · cc97e524
      yangguo authored
      Revert of Parse arrow functions at proper precedence level (patchset #2 id:60001 of https://codereview.chromium.org/1286383005/ )
      
      Reason for revert:
      Breaks layout test. Please change test expectation on blink first.
      
      --- /mnt/data/b/build/slave/V8-Blink_Linux_64/build/layout-test-results/inspector/sources/debugger-pause/debugger-pause-in-internal-expected.txt
      +++ /mnt/data/b/build/slave/V8-Blink_Linux_64/build/layout-test-results/inspector/sources/debugger-pause/debugger-pause-in-internal-actual.txt
      @@ -1,4 +1,4 @@
      -CONSOLE ERROR: line 9: Uncaught SyntaxError: Expected () to start arrow function, but got '}' instead of '=>'
      +CONSOLE ERROR: line 9: Uncaught SyntaxError: Unexpected token )
       Tests that pause on exception in internal script does not crash.
      
       Script source was shown.
      
      Original issue's description:
      > Parse arrow functions at proper precedence level
      >
      > BUG=v8:4211
      > LOG=Y
      > R=rossberg@chromium.org
      >
      > Committed: https://crrev.com/9271b0ccf9ddb217deb1f0b9ef9b59b64dc40214
      > Cr-Commit-Position: refs/heads/master@{#30298}
      
      TBR=rossberg@chromium.org,mstarzinger@chromium.org,fennyfanny655@gmail.com,machenbach@chromium.org,wingo@igalia.com
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4211
      
      Review URL: https://codereview.chromium.org/1315503002
      
      Cr-Commit-Position: refs/heads/master@{#30318}
      cc97e524
  26. 21 Aug, 2015 1 commit
  27. 14 Aug, 2015 1 commit
  28. 08 Aug, 2015 1 commit
  29. 30 Jul, 2015 1 commit
  30. 20 Jul, 2015 1 commit
  31. 16 Jul, 2015 2 commits
  32. 10 Jul, 2015 1 commit
  33. 19 Jun, 2015 1 commit