1. 15 Oct, 2018 2 commits
  2. 13 Oct, 2018 1 commit
  3. 12 Oct, 2018 1 commit
  4. 11 Oct, 2018 1 commit
  5. 10 Oct, 2018 2 commits
  6. 07 Oct, 2018 6 commits
  7. 02 Oct, 2018 1 commit
  8. 07 Jul, 2018 1 commit
  9. 09 Jun, 2015 1 commit
  10. 03 Feb, 2015 1 commit
  11. 25 Dec, 2014 1 commit
    • Boris Smilga's avatar
      Improved handling of declarations. · 8d7e8fa1
      Boris Smilga authored
      1. Named function bodies in Common Lisp may contain multiple DECLARE
         forms before or after the docstring (or even before *and* after).
         This feature is important for meta-programming by macros, and so
         PS should also support it.
      
      2. Declarations should be allowed in PS forms whose Lisp namesakes
         allow them, to wit: in the macros WITH-SLOTS, MULTIPLE-VALUE-BIND,
         DO*, DO, DOTIMES, DOLIST, DESTRUCTURING-BIND, LET*, DEFUN,
         DEFSETF, and in the special forms LET, FLET, LABELS (letting out
         DEFMACRO, MACROLET, SYMBOL-MACROLET  who are not translated to
         JavaScript). Before the present commit, most of them didn't
         handle declarations correctly.
      
      3. Individual DECLARE forms should be allowed to contain multiple
         declaration specifiers, in particular, multiple SPECIAL specifiers.
         WITH-DECLARATION-EFFECTS used to ignore SPECIALs after the first
         one.
      
      4. This commit also introduces LOCALLY as PS form because it
         simplifies the implementation of stuff from (2).
      8d7e8fa1
  12. 18 Dec, 2014 1 commit
  13. 15 Dec, 2014 1 commit
    • Boris Smilga's avatar
      Added support for getters and setters in object literals. · 26585518
      Boris Smilga authored
      Getters and setter are defined in ECMAScript 5.1 sec. 11.1.5.
      
      A getter would be specified in a (CREATE ...) form as a name-value
      pair of the form (GET <NAME>) <EXPR>, where <NAME> is a symbol naming
      the object slot, and <EXPR> is the body of the getter.
      
      A setter would be specified as a name-value pair of the form
      (SET <NAME> <NEW-PARAM>) <EXPR>, where <NAME> is a symbol naming
      the object slot, <NEW-PARAM> is a symbol naming the setter's formal
      parameter for the assignment value, and <EXPR> is the body of the
      setter.
      26585518
  14. 23 Feb, 2014 1 commit
  15. 14 Mar, 2013 2 commits
  16. 02 Mar, 2013 1 commit
  17. 29 Nov, 2012 3 commits
  18. 24 Nov, 2012 2 commits
  19. 08 Oct, 2012 1 commit
  20. 15 Sep, 2012 1 commit
  21. 13 Sep, 2012 1 commit
  22. 04 Sep, 2012 1 commit
  23. 28 Aug, 2012 2 commits
    • Daniel Gackle's avatar
      Added some LOOP tests. · bd5431c8
      Daniel Gackle authored
      bd5431c8
    • Daniel Gackle's avatar
      Rewrote PS LOOP to support FOR..OF clauses that compile to JS for-in · f6c6d05f
      Daniel Gackle authored
      loops (basically the equivalent of CL's "BEING THE HASH KEYS OF").
      
      Because JS for-in loops can't be simulated with WHILE, this required
      changing how LOOP generates code - with these additional benefits:
      simpler implementation; smaller generated loops; all iteration vars
      now within the scope of the JS loop form, so that the LOOP macro now
      has consistent scoping behavior with hard-coded FOR, WHILE, etc.
      (notably with respect to whether to generate a new binding per
      iteration for variables captured by a closure). There is also the
      disadvantage that for some complex loops a temporary local variable
      must be used to track whether the loop is on its first iteration or
      not.
      f6c6d05f
  24. 11 Aug, 2012 1 commit
  25. 10 Aug, 2012 2 commits
  26. 28 Jul, 2012 1 commit
  27. 27 Jul, 2012 1 commit