1. 27 Sep, 2011 1 commit
  2. 19 Sep, 2011 1 commit
    • svenpanne@chromium.org's avatar
      Unify the handling of comparinsons against null and undefined. · cf63503c
      svenpanne@chromium.org authored
      Although this patch is not small, most parts of it are rather mechanical:
      
       * First of all, the concept of a 'nil-like' value is introduced, which can be
         null or undefined. They are treated symmetrically regarding comparisons, so
         it makes sense to handle them in a uniform manner. It is a mystery why
         JavaScript defines two of those beasts, when even *one* is a design wart...
      
       * Extended and renamed a few things which now handle undefined in addition to
         null.
      
       * Made the parts of the full code generator and the hydrogen generation which
         deal with comparisons a bit more similar regarding their handling of special
         cases.
      
       * Refactored the syntactical detection of special cases for comparisons,
         hopefully making them a bit more readable and less copy-n-paste-oriented.
         Things like this should really be a one-liner in any sane programming
         language... :-P
      
       * Cut down the length of the argument lists of a few functions to something
         less insane, making them more easily understandable locally. This involves
         minor code duplication, but this was a good tradeoff and can be remedied
         later if necessary.
      
       * Replaced some boolean arguments with more readable enums.
      
       * Fixed a TODO: Values which are definitely a Smi or unboxed can never be equal
         to null or undefined.
      Review URL: http://codereview.chromium.org/7918012
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      cf63503c
  3. 15 Sep, 2011 2 commits
  4. 09 Sep, 2011 1 commit
  5. 08 Sep, 2011 1 commit
  6. 07 Sep, 2011 1 commit
  7. 02 Sep, 2011 1 commit
  8. 22 Aug, 2011 1 commit
  9. 12 Aug, 2011 1 commit
  10. 18 Jul, 2011 1 commit
  11. 15 Jul, 2011 1 commit
  12. 24 Jun, 2011 1 commit
  13. 20 Jun, 2011 1 commit
  14. 17 Jun, 2011 1 commit
  15. 16 Jun, 2011 1 commit
  16. 15 Jun, 2011 2 commits
  17. 14 Jun, 2011 1 commit
  18. 09 Jun, 2011 2 commits
  19. 08 Jun, 2011 1 commit
  20. 01 Jun, 2011 1 commit
  21. 26 May, 2011 1 commit
  22. 24 May, 2011 1 commit
    • ager@chromium.org's avatar
      Fix calls of strict mode function with an implicit receiver. · 6f775f2f
      ager@chromium.org authored
      Only IA32 version for now. I'll start porting.
      
      Strict mode functions are to get 'undefined' as the receiver when
      called with an implicit receiver. Modes are bad! It forces us to have
      checks on all function calls.
      
      This change attempts to limit the cost by passing information about
      whether or not a call is with an implicit or explicit receiver in ecx
      as part of the calling convention. The cost is setting ecx on all
      calls and checking ecx on entry to strict mode functions.
      
      Implicit/explicit receiver state has to be maintained by ICs. Various
      stubs have to not clobber ecx or save and restore it.
      
      CallFunction stub needs to check if the receiver is implicit when it
      doesn't know from the context.
      
      Review URL: http://codereview.chromium.org/7039036
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      6f775f2f
  23. 29 Apr, 2011 1 commit
  24. 27 Apr, 2011 1 commit
  25. 20 Apr, 2011 1 commit
  26. 13 Apr, 2011 1 commit
  27. 12 Apr, 2011 2 commits
  28. 07 Apr, 2011 2 commits
  29. 01 Apr, 2011 1 commit
  30. 23 Mar, 2011 1 commit
  31. 21 Mar, 2011 1 commit
  32. 18 Mar, 2011 3 commits
  33. 17 Mar, 2011 1 commit