Jeremy Ashkenas
|
38e1991f82
|
and now with if/else statements, CoffeeScript-in-CoffeeScript is language-complete -- now for the shakedown cruise
|
2010-02-10 21:40:10 -05:00 |
|
Jeremy Ashkenas
|
13d3b3a3ce
|
now self-compiling array/object/range comprehensions.
|
2010-02-10 20:19:59 -05:00 |
|
Jeremy Ashkenas
|
0c2a13b468
|
self-compiler handles throws, the existential operator, and parentheticals.
|
2010-02-10 19:13:11 -05:00 |
|
Jeremy Ashkenas
|
4e7408dc25
|
self-compiler: handles try/catch/finally blocks
|
2010-02-10 18:33:03 -05:00 |
|
Jeremy Ashkenas
|
76dac9c09c
|
got about as far as I think I can with operator nodes for now, without zach's optimizations
|
2010-02-10 00:05:56 -05:00 |
|
Jeremy Ashkenas
|
9339058fc3
|
raising the precedence level of delete, instanceof, and typeof
|
2010-02-09 22:20:04 -05:00 |
|
Jeremy Ashkenas
|
ae4f6309e8
|
Self-compiler: can now compile functions.
|
2010-02-09 21:31:07 -05:00 |
|
Jeremy Ashkenas
|
001c915c21
|
Self-compiler: object literals.
|
2010-02-09 20:53:25 -05:00 |
|
Jeremy Ashkenas
|
91a7102f11
|
Self-compiler: array slice literals.
|
2010-02-09 19:30:28 -05:00 |
|
Jeremy Ashkenas
|
c6a6788694
|
removing the constructor safety check -- it wasn't safe enough (Issue 36)
|
2010-02-09 07:59:48 -05:00 |
|
Jeremy Ashkenas
|
0b5b6113ee
|
CoffeeScript-in-CoffeeScript just had it's first self-compiled snippet.
|
2010-02-08 22:22:59 -05:00 |
|
Jeremy Ashkenas
|
d5c98165ea
|
removed an old now-impossible branch of execution from ReturnNode
|
2010-02-08 21:16:14 -05:00 |
|
Jeremy Ashkenas
|
b8d22bc572
|
finished up the CoffeeScript version of the Scope object
|
2010-02-08 21:10:48 -05:00 |
|
Jeremy Ashkenas
|
69808ba523
|
trying out a new organizational scheme, with a quickie 'inherits' helper function
|
2010-02-08 20:20:11 -05:00 |
|
Jeremy Ashkenas
|
aabfba9599
|
nodes.coffee is continuing to roll along -- maybe a tenth implemented
|
2010-02-08 19:49:39 -05:00 |
|
Jeremy Ashkenas
|
decaea0f5f
|
adding 'by' to array comprehensions
|
2010-02-06 10:12:57 -05:00 |
|
Jeremy Ashkenas
|
b795ae7fe1
|
removing arguments as a keyword -- we can detect its use at code-generation time.
|
2010-02-05 22:01:11 -05:00 |
|
Jeremy Ashkenas
|
dc7d0f1568
|
fixing assigning to @properties within an expression
|
2010-02-03 18:16:31 -05:00 |
|
Jeremy Ashkenas
|
cb7a1033fa
|
adding @property for this.property
|
2010-02-02 20:36:46 -05:00 |
|
Jeremy Ashkenas
|
c5c841f2fc
|
fixing bug with mixed dot and soak accessors
|
2010-02-02 10:39:44 -05:00 |
|
Jeremy Ashkenas
|
af53a04932
|
added test for lexical scope sharing through generated closure wrappers, something uncommonly used, but that was a regression
|
2010-01-24 13:39:27 -05:00 |
|
Jeremy Ashkenas
|
817e8deb27
|
adding soaked method calls, with caching
|
2010-01-24 12:52:15 -05:00 |
|
Jeremy Ashkenas
|
d728c3d669
|
added existence chains with '?.' -- soaks up attempts to access undefined properties, returning 'undefined'
|
2010-01-23 23:30:55 -05:00 |
|
Jeremy Ashkenas
|
9160500e84
|
removing 'this' rewriting in favor of correctly calling generated closures
|
2010-01-23 21:11:27 -05:00 |
|
Jeremy Ashkenas
|
c3ce2ea9b1
|
added automatic safety closure wrapper for functions declared within for loops.
|
2010-01-23 17:53:07 -05:00 |
|
Jeremy Ashkenas
|
2d90a751f7
|
edits for clarity
|
2010-01-17 14:55:06 -05:00 |
|
Jeremy Ashkenas
|
8647b54a61
|
rename compile_double_reference to compile_reference
|
2010-01-17 14:26:00 -05:00 |
|
Jeremy Ashkenas
|
8e1f3c0eca
|
generating multiple calls to the same function should use compile_double_reference to ensure a single evaluation of the call itself.
|
2010-01-17 14:23:41 -05:00 |
|
Jeremy Ashkenas
|
c4d0903e6a
|
fixing assignment-in-condition
|
2010-01-17 10:40:59 -05:00 |
|
Jeremy Ashkenas
|
e72ef1a61a
|
reverting change
|
2010-01-17 10:28:04 -05:00 |
|
Jeremy Ashkenas
|
d7d9cb8d28
|
only let returns stop an expression from being closure-ified -- breaks and continues may be valid
|
2010-01-17 10:21:24 -05:00 |
|
Jeremy Ashkenas
|
f6c8e81ea6
|
the existential operator can now be used infix as well
|
2010-01-16 23:03:54 -05:00 |
|
Jeremy Ashkenas
|
52539ae7d2
|
abbreviating the existential operator
|
2010-01-16 22:26:34 -05:00 |
|
Jeremy Ashkenas
|
95b362499f
|
added the conditional existence operator
|
2010-01-16 22:17:55 -05:00 |
|
Jeremy Ashkenas
|
0bc4da2b51
|
ensure that functions are only called once, when chaining comparators
|
2010-01-16 22:04:08 -05:00 |
|
Jeremy Ashkenas
|
9679fc0b52
|
removing redundant unary check
|
2010-01-16 16:49:03 -05:00 |
|
Jeremy Ashkenas
|
9cb0564972
|
added Python's chainable comparisons, like: 10 > 5 > 1
|
2010-01-16 16:37:49 -05:00 |
|
Jeremy Ashkenas
|
c6c0c7d059
|
simplification of function and prototype naming -- last_assign, immediate_assign, and proto_assign are gone, in favor of 'name' and 'proto' properties on CodeNodes
|
2010-01-16 15:44:07 -05:00 |
|
Jeremy Ashkenas
|
62e946b8ce
|
purely empty functions at the top level should be wrapped in parens, so as not to cause a JS syntax error
|
2010-01-16 15:02:04 -05:00 |
|
Jeremy Ashkenas
|
9eff443032
|
arguments no longer is just a find-and-replace -- it'll fix the arguments variable at the top of scope if you use it in a function body
|
2010-01-16 12:52:26 -05:00 |
|
Jeremy Ashkenas
|
8957feedb4
|
expression closure wrappers are now safer -- they won't be generated if there's a statement_only inside
|
2010-01-16 12:10:31 -05:00 |
|
Jeremy Ashkenas
|
1cd7fa8ebe
|
added children macro to Node, using it so that all nodes now have a 'children' method -- used for safe references to 'this' within closure wrappers
|
2010-01-16 11:24:10 -05:00 |
|
Jeremy Ashkenas
|
701cdb4c13
|
never try to push a statement_only
|
2010-01-15 19:47:16 -05:00 |
|
Jeremy Ashkenas
|
001cc29deb
|
slightly shorter generated code for ==>
|
2010-01-14 08:55:09 -05:00 |
|
Jeremy Ashkenas
|
e77e520607
|
CoffeeScript 0.2.5 is on the books
|
2010-01-13 23:24:45 -05:00 |
|
Jeremy Ashkenas
|
ed8a54995d
|
with splats allowed in destructuring assignment
|
2010-01-13 22:25:58 -05:00 |
|
Jeremy Ashkenas
|
2d206e7b60
|
pulling out pushes into a pushnode
|
2010-01-13 21:33:46 -05:00 |
|
Jeremy Ashkenas
|
bb9fdd3015
|
while loops can now be used as expressions -- they return an array containing the computed result of each iteration.
|
2010-01-13 21:27:22 -05:00 |
|
Jeremy Ashkenas
|
1e7d638435
|
adding bound functions, with test
|
2010-01-13 20:59:57 -05:00 |
|
Jeremy Ashkenas
|
0ceca0778c
|
adding when clauses with multiple values
|
2010-01-13 19:56:35 -05:00 |
|