Commit Graph

56 Commits

Author SHA1 Message Date
Luke Page
5d54af2039 import interpolation finished. refactored the import phase to occur only within the import visitor - so that the import eval env can be passed between imports. 2013-03-01 13:40:54 +00:00
Luke Page
c56db94b7d Add modified (self altering) visitor pattern and class 2013-03-01 13:40:00 +00:00
Luke Page
241c830e10 Support reading other arguments as default parameters. Fixes #43 2013-02-17 22:25:38 +00:00
Luke Page
988d378922 add evalEnv class and strictMaths option 2013-01-25 20:05:37 +00:00
Spocke
432f89aaf4 Fixed issue where the compress value wouldn't get passed around correctly. 2013-01-05 16:36:17 +00:00
Luke Page
650073e4f1 Scope fix - default parameters are evaluated in the mixin scope, not the
caller scope. Fixes #973.
2012-11-29 19:48:30 +00:00
Luke Page
60b2aa9a77 Fix multiple scoping issues with variables. Fixes #878 2012-11-29 18:40:45 +00:00
Luke Page
5dc7ff50f0 Fix argument matching. Fixes #1036 2012-11-27 13:14:04 +00:00
Luke Page
e5fd5abc60 Do not require default mixin. Fixes #926 2012-11-27 09:28:19 +00:00
Luke Page
8930ad3a44 Re-allow recursive mixins, just not recursive classes. Fixes #1012 2012-10-31 22:16:49 +00:00
Luke Page
1175ddc01c Fixi important on mixin calls when mixin has rulesets or comments 2012-10-25 11:52:07 +01:00
Luke Page
f3a6761dc5 Look through all scopes for a mixin before giving up. Fixes #413 again 2012-10-24 20:41:32 +01:00
Luke Page
38d2c57016 Make less.js ignore nodes in its own path so infinite recursion does not happen. Fixes #413 2012-10-24 20:16:10 +01:00
Luke Page
e1485dd706 Fix #990 - error message incorrect 2012-10-21 16:16:51 +01:00
Luke Page
1990d8336f Fix problem with name arguments with arguments variable and if you've specified all the arguments 2012-10-21 15:20:23 +01:00
comfuture
94f70f7121 fixed issue #795 2012-05-06 11:13:30 +09:00
James Foster
1857b7c5aa Implement named parameters 2012-04-30 03:30:02 +01:00
Alexis Sellier
3e5a336f88 add ability to bind varargs 2012-02-28 19:23:39 +01:00
Alexis Sellier
229856d514 fix error message on wrong-arity call 2012-02-28 18:06:22 +01:00
Alexis Sellier
ac226c6b7f Variadic argument support
.mixin (...)   {} // matches any number of arguments
   .mixin ()      {} // matches exactly 0 arguments
   .mixin (@a: 1) {} // matches 0-1 arguments
2012-02-28 17:42:29 +01:00
Alexis Sellier
aefd310514 fix Runtime error reports from imported files 2012-01-11 00:55:14 +01:00
Alexis Sellier
aab66a4d10 support '!important' after mixin calls
ex: `.mixin(4) !important;`
2012-01-05 21:53:03 +01:00
Alexis Sellier
626d7f1523 additional support for mixin guards 2011-12-24 13:32:13 +01:00
Alexis Sellier
d1cb4aab97 improvements to error messages 2011-12-15 23:42:22 +01:00
Alexis Sellier
321920a50d mixin guards
Allows functional-style guard expressions:

  .mixin (@a) ? @a > 0 {...}
2011-12-15 23:38:53 +01:00
Alexis Sellier
c290c48b3f node 0.5.x compatibility 2011-11-12 13:13:36 +01:00
Alexis Sellier
59d6408ae4 don't re-evaluate arguments on each mixin.call 2011-05-24 12:08:50 -04:00
Alexis Sellier
9939ba5076 better JavaScript evaluation
- support for returning Array values
- Expressions/Values are passed as arrays to JavaScript
- fixed some edge cases
2011-05-17 20:47:42 -04:00
Alexis Sellier
02bb402c4d change @arguments behaviour to be more like js 2011-05-11 12:33:54 -04:00
cloudhead
e199ac8c8e (new) JavaScript-style 'arguments' variable 2011-01-31 14:10:57 +00:00
Alexis Sellier
0bd18489bc tweak mixin pattern matching to be more useful 2011-01-20 20:02:15 -05:00
cloudhead
e36080a3ff preliminary support for evaluating JavaScript code inside LESS 2010-07-08 19:04:36 +02:00
cloudhead
66fa17b274 small refactor in mixin.match 2010-07-08 12:45:43 +02:00
cloudhead
189b1bf089 big refactoring of ruleset.js, move eval code to eval() 2010-07-07 13:53:09 +02:00
cloudhead
22f25e19f2 remove evalRules, use eval 2010-07-07 12:19:15 +02:00
cloudhead
e985bad5f4 fix error messages with no index 2010-07-07 11:58:26 +02:00
cloudhead
04d2d3ab68 make mixins behave like closures 2010-07-06 16:48:05 +02:00
cloudhead
10de9d02e4 critical fix for browser 2010-06-19 14:03:52 -04:00
cloudhead
7984e97559 refactor inheritance in mixin.js 2010-06-19 02:05:09 -04:00
cloudhead
a72966fa6a removed constructor names 2010-06-19 01:51:26 -04:00
cloudhead
7726f98493 improve error reporting, provide a one line call-stack 2010-06-18 20:12:03 -04:00
cloudhead
7768d41050 better cross-environment handling. stub out require() in browser. 2010-06-15 18:44:59 -04:00
cloudhead
25e3205eb3 Better error messages, wrap browser.js. 2010-06-07 15:47:41 -04:00
cloudhead
f5f0919349 Refactored some of the evaluation mechanisms
- Don't call `eval` from `toCSS`
- Every node responds to `eval`
2010-05-07 23:21:16 -04:00
cloudhead
3def6cf5bf Evaluate arguments before passing them to mixin.
Closes #23
2010-05-07 00:41:09 -07:00
cloudhead
f7a6046fc8 rename variables() to variable() 2010-05-07 00:40:21 -07:00
cloudhead
59bd32bb12 be more flexible, pattern matching 2010-05-04 20:37:06 -04:00
cloudhead
d56feee6f0 Support for pattern-matching on mixin calls. 2010-04-25 00:09:40 -04:00
cloudhead
63923283fc refactored mixin.definition.eval 2010-04-22 13:47:01 -04:00
cloudhead
6f8fa2d858 Fixed mixin calls not working from dynamic mixins
Dynamic mixins aren't treated enough like Rulesets.
There is some code duplication which needs to be cleaned up,
ideally they should share a prototype.
2010-04-22 13:34:49 -04:00