1. 28 Mar, 2017 1 commit
    • Daniel Vogelheim's avatar
      [parser] Introduce 'contextual keyword tokens'. · ae1e8759
      Daniel Vogelheim authored
      Introduce 'contextual keyword' tokens, which are parsed as identifiers but
      in some contexts are treated by the parser like proper keywords. These are
      usually keywords introduced by recent ECMAScript versions, which for reasons
      of backwards compatibility are still permissible as regular identifiers in
      most contexts.
      
      Current usage is to check for Token::IDENTIFIER and then do a string
      compare. With this change the initial scan will scan them as usual, but
      will then record the token as IDENTIFIER plus a secondary token with the
      'contextual' value.
      
      BUG=v8:6902
      
      Change-Id: I6ae390382998cf756a23720bd481cb9c0eb78a72
      Reviewed-on: https://chromium-review.googlesource.com/459479
      Commit-Queue: Daniel Vogelheim <vogelheim@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44189}
      ae1e8759
  2. 07 Mar, 2017 1 commit
  3. 17 Aug, 2016 1 commit
    • vogelheim's avatar
      Scanner::LiteralBuffer usage cleanup. · c677f813
      vogelheim authored
      1, restrict use of LiteralBuffers to the tokens that actually need it.
        - E.g., previously the Token::FUNCTION would have a literal buffer
          containing "function", which was never actually used.
        - This eliminates copies of the string data for every call to
          PeekAhead or SetBookmark.
      2, document & enforce the "secret" Scanner API contract w/ DCHECK
        - Document & check the correspondence of token value and literal buffer.
        - Document & check preconditions for calling PeekAhead, ScanRegExp*,
          ScanTemplate*.
      
      BUG=v8:4947
      
      Review-Url: https://codereview.chromium.org/2240513003
      Cr-Commit-Position: refs/heads/master@{#38677}
      c677f813
  4. 26 Nov, 2015 1 commit
  5. 01 Jun, 2015 1 commit
  6. 21 Oct, 2014 1 commit
  7. 03 Jun, 2014 1 commit
  8. 29 Apr, 2014 1 commit
  9. 09 Aug, 2011 1 commit
  10. 18 Mar, 2011 3 commits
  11. 24 Nov, 2010 1 commit
  12. 06 Aug, 2010 1 commit
  13. 05 Aug, 2010 1 commit
  14. 02 Aug, 2010 1 commit
  15. 11 Dec, 2009 1 commit
  16. 05 Nov, 2009 1 commit
  17. 25 May, 2009 1 commit
  18. 09 Sep, 2008 1 commit
  19. 03 Jul, 2008 1 commit