1. 11 Aug, 2015 1 commit
    • mstarzinger's avatar
      Remove several grab-bag includes from the v8.h header. · 58109a2c
      mstarzinger authored
      This is the first step of turning the v8.h file into a normal header
      instead of an include-the-world header. The new rule is that no other
      header files are allowed to include v8.h, which is enforced by DEPS.
      
      Also the number of includes inside the v8.h file has been drastically
      reduced. Basically the last missing piece is the inclusion of the big
      objects-inl.h file.
      
      This in turn makes many headers follow the IWYU principle.
      
      R=bmeurer@chromium.org,hpayer@chromium.org,titzer@chromium.org
      
      Review URL: https://codereview.chromium.org/1282503003
      
      Cr-Commit-Position: refs/heads/master@{#30102}
      58109a2c
  2. 07 Aug, 2015 1 commit
  3. 05 Aug, 2015 4 commits
    • adamk's avatar
      Delete --harmony-computed-property-names flag · b7726c44
      adamk authored
      It was shipped in V8 4.4.
      
      Review URL: https://codereview.chromium.org/1273543002
      
      Cr-Commit-Position: refs/heads/master@{#30038}
      b7726c44
    • adamk's avatar
      Delete --harmony-unicode flag · cd455055
      adamk authored
      It was shipped in V8 4.4.
      
      Review URL: https://codereview.chromium.org/1271073002
      
      Cr-Commit-Position: refs/heads/master@{#30035}
      cd455055
    • adamk's avatar
      [es6] Remove Scanner and Parser flags for harmony_modules · 5c34bacb
      adamk authored
      These flags weren't doing any real work, since the decision of whether some
      source code is a script or module is made outside the parser (currently,
      by the V8 API).
      
      The only behavior change in this patch is to always parse 'import' and
      'export' as their Token values, which changes the error message from
      "Unexpected reserved word" to "Unexpected token import" (which doesn't
      seem particularly harmful).
      
      Review URL: https://codereview.chromium.org/1262913003
      
      Cr-Commit-Position: refs/heads/master@{#30034}
      5c34bacb
    • rossberg's avatar
      [es6] Implement proper TDZ for parameters · 4273f66e
      rossberg authored
      Previously, examples like (({a = x}, x) => {})({}, 0) did not throw a ReferenceError like they should. This CL
      
      - Splits up DeclareFormalParameters such that the formals can be recorded first and declared later.
      
      - Declaration then takes the complete parameter list into account. If it is not simple, temporaries are introduced for all parameters.
      
      - BuildParameterInitializationBlock desugars all parameters from non-simple lists into let-bindings.
      
      - Refactored Pre/ParserFormalParameters, so that the arity information is no longer duplicated in Parser.
      
      - Rest is currently handled specially, until rest-via-destructuring has landed.
      
      R=adamk@chromium.org, littledan@chromium.org
      BUG=v8:811
      LOG=N
      
      Review URL: https://codereview.chromium.org/1259283002
      
      Cr-Commit-Position: refs/heads/master@{#30025}
      4273f66e
  4. 04 Aug, 2015 1 commit
    • rossberg's avatar
      [es6] Refactor FormalParameter · 56bd11a1
      rossberg authored
      Store arity in FormalParameters; store name (instead of var) and is_rest flag in individual parameters. Ensure that the arity is always maintained consistently.
      
      This is preparation for more parameter destructuring adjustments. In particular, a follow-up CL will separate parameter recording from declaring the variables.
      
      R=adamk@chromium.org, littledan@chromium.org
      BUG=v8:811
      LOG=N
      
      Review URL: https://codereview.chromium.org/1259013003
      
      Cr-Commit-Position: refs/heads/master@{#30002}
      56bd11a1
  5. 03 Aug, 2015 1 commit
  6. 25 Jul, 2015 1 commit
    • littledan's avatar
      Split off a separate --harmony_sloppy_let flag · 2d2b72f6
      littledan authored
      --harmony_sloppy includes behavior to turn on sloppy mode lexical
      bindings. Before this patch, it also included a way to parse let
      which is likely web-incompatible (let is disallowed as an
      identifier). This patch splits off the let parsing from the more
      general block scoping code, so that block scoping can be developed
      independently.
      
      R=adamk
      LOG=N
      BUG=v8:3305
      
      Review URL: https://codereview.chromium.org/1255013002
      
      Cr-Commit-Position: refs/heads/master@{#29855}
      2d2b72f6
  7. 23 Jul, 2015 2 commits
  8. 16 Jul, 2015 1 commit
  9. 15 Jul, 2015 2 commits
    • adamk's avatar
      Fix spread array inside array literal · 24e98281
      adamk authored
      During parsing, we now keep track of the first spread seen in an array
      literal (if any), and make use of that information when creating the
      FixedArray backing store representing the constant elements for array
      literal materialization.
      
      The old code tried to do this by setting the generated JSArray's length
      in ArrayLiteral::BuildConstantElements(), but that Array length is never
      read by the rest of the literal materialization code (it always uses
      the length of the FixedArray backing store).
      
      BUG=v8:4298
      LOG=n
      
      Review URL: https://codereview.chromium.org/1225223004
      
      Cr-Commit-Position: refs/heads/master@{#29684}
      24e98281
    • mvstanton's avatar
      Scoping error caused crash in CallICNexus::StateFromFeedback · ae11f20e
      mvstanton authored
      A sloppy mode eval call that establishes strict mode will leak that strictness
      into the sloppy surrounding scope on recompile. This changes the structure
      of the type feedback vector for the function and crashes follow.
      
      The fix is straightforward.
      
      BUG=491536, 503565
      LOG=N
      
      Review URL: https://codereview.chromium.org/1231343003
      
      Cr-Commit-Position: refs/heads/master@{#29671}
      ae11f20e
  10. 14 Jul, 2015 1 commit
    • littledan's avatar
      Improve parsing errors related to destructuring bind · 9d6ab46a
      littledan authored
      For destructuring bind, the parser needs to complain about things
      which are inappropriate to have on the left-hand side.
      
      Previously, regexp literals and template literals were let through
      the parser inappropriately. This patch turns those into errors.
      
      This patch also fixes off-by-one errors in reporting the location
      of this type of error for strings and numbers. Before the patch,
      the error would look like:
      
      d8> var {x: 3} = {x: 4}
      (d8):1: SyntaxError: Unexpected number
      var {x: 3} = {x: 4}
            ^
      SyntaxError: Unexpected number
      
      And with the patch, the error is
      
      d8> var {x: 3} = {x: 4}
      (d8):1: SyntaxError: Unexpected number
      var {x: 3} = {x: 4}
              ^
      SyntaxError: Unexpected number
      
      R=rossberg
      
      Review URL: https://codereview.chromium.org/1236803003
      
      Cr-Commit-Position: refs/heads/master@{#29661}
      9d6ab46a
  11. 10 Jul, 2015 1 commit
  12. 09 Jul, 2015 1 commit
    • adamk's avatar
      Fix lazy compilation of eval() under nosnap/--use-strict · 33a37398
      adamk authored
      When running without a snapshot, the GlobalEval function gets lazy compiled.
      By the time we compile it, its name is "eval", which causes the parser to
      choke (functions named "eval" aren't allowed in strict mode!).
      
      Instead, we now always skip checking the function name when lazy-parsing,
      as the name has already been checked appropriately by the preparser.
      
      Also cleaned up other cases that don't require name checking by introducing
      FunctionNameValidity enum and passing appropriate values throughout the
      parser and preparser.
      
      This lets us pass an additional 18 test262 tests.
      
      BUG=v8:4198
      LOG=n
      
      Review URL: https://codereview.chromium.org/1227093005
      
      Cr-Commit-Position: refs/heads/master@{#29559}
      33a37398
  13. 08 Jul, 2015 1 commit
  14. 07 Jul, 2015 1 commit
  15. 29 Jun, 2015 1 commit
  16. 26 Jun, 2015 3 commits
  17. 25 Jun, 2015 1 commit
  18. 24 Jun, 2015 1 commit
  19. 22 Jun, 2015 3 commits
  20. 19 Jun, 2015 1 commit
  21. 16 Jun, 2015 1 commit
  22. 15 Jun, 2015 2 commits
  23. 10 Jun, 2015 1 commit
  24. 09 Jun, 2015 5 commits
  25. 08 Jun, 2015 1 commit
    • mstarzinger's avatar
      Drop computed handler count and index from AST. · c14ba5ec
      mstarzinger authored
      These values were computed by the parser and hence out of sync with any
      visitor over the AST. Our AST visitor aborts visitation of statement
      lists as soon as a jump statement has been reached. Now handler tables
      are guaranteed to be dense and fully populated.
      
      R=ishell@chromium.org
      TEST=mjsunit/regress/regress-crbug-493290
      BUG=chromium:493290
      LOG=N
      
      Review URL: https://codereview.chromium.org/1157213004
      
      Cr-Commit-Position: refs/heads/master@{#28846}
      c14ba5ec
  26. 04 Jun, 2015 1 commit