stylus-source 0.23.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. data/Rakefile +5 -5
  2. data/VERSION +1 -1
  3. data/vendor/lib/functions/index.js +11 -12
  4. data/vendor/lib/functions/index.styl +45 -0
  5. data/vendor/lib/parser.js +13 -0
  6. data/vendor/lib/stylus.js +1 -1
  7. data/vendor/lib/visitor/evaluator.js +8 -0
  8. data/vendor/node_modules/cssom/Jakefile.js +35 -0
  9. data/vendor/node_modules/cssom/lib/CSSImportRule.js +10 -9
  10. data/vendor/node_modules/cssom/lib/CSSKeyframeRule.js +2 -0
  11. data/vendor/node_modules/cssom/lib/CSSKeyframesRule.js +2 -1
  12. data/vendor/node_modules/cssom/lib/CSSMediaRule.js +2 -1
  13. data/vendor/node_modules/cssom/lib/CSSRule.js +1 -0
  14. data/vendor/node_modules/cssom/lib/CSSStyleDeclaration.js +7 -5
  15. data/vendor/node_modules/cssom/lib/CSSStyleRule.js +11 -9
  16. data/vendor/node_modules/cssom/lib/CSSStyleSheet.js +4 -4
  17. data/vendor/node_modules/cssom/lib/MediaList.js +3 -3
  18. data/vendor/node_modules/cssom/lib/StyleSheet.js +3 -1
  19. data/vendor/node_modules/cssom/lib/clone.js +5 -5
  20. data/vendor/node_modules/cssom/lib/index.js +14 -12
  21. data/vendor/node_modules/cssom/lib/parse.js +48 -43
  22. data/vendor/node_modules/cssom/package.json +5 -4
  23. data/vendor/node_modules/debug/History.md +35 -0
  24. data/vendor/node_modules/debug/Makefile +5 -0
  25. data/vendor/node_modules/debug/Readme.md +128 -0
  26. data/vendor/node_modules/debug/debug.js +111 -0
  27. data/vendor/node_modules/debug/example/app.js +19 -0
  28. data/vendor/node_modules/debug/example/browser.html +24 -0
  29. data/vendor/node_modules/debug/example/wildcards.js +10 -0
  30. data/vendor/node_modules/debug/example/worker.js +22 -0
  31. data/vendor/node_modules/debug/index.js +2 -0
  32. data/vendor/node_modules/debug/lib/debug.js +129 -0
  33. data/vendor/node_modules/debug/package.json +11 -0
  34. data/vendor/node_modules/growl/History.md +21 -0
  35. data/vendor/node_modules/growl/Readme.md +29 -20
  36. data/vendor/node_modules/growl/lib/growl.js +113 -36
  37. data/vendor/node_modules/growl/package.json +1 -1
  38. data/vendor/node_modules/growl/test.js +12 -13
  39. data/vendor/node_modules/mkdirp/README.markdown +35 -2
  40. data/vendor/node_modules/mkdirp/examples/pow.js +1 -1
  41. data/vendor/node_modules/mkdirp/index.js +72 -13
  42. data/vendor/node_modules/mkdirp/package.json +2 -2
  43. data/vendor/node_modules/mkdirp/test/chmod.js +38 -0
  44. data/vendor/node_modules/mkdirp/test/clobber.js +37 -0
  45. data/vendor/node_modules/mkdirp/test/perm.js +32 -0
  46. data/vendor/node_modules/mkdirp/test/perm_sync.js +39 -0
  47. data/vendor/node_modules/mkdirp/test/sync.js +27 -0
  48. data/vendor/node_modules/mkdirp/test/umask.js +28 -0
  49. data/vendor/node_modules/mkdirp/test/umask_sync.js +27 -0
  50. data/vendor/package.json +6 -5
  51. data/vendor/testing/test.css +39 -0
  52. data/vendor/testing/test.html +21 -0
  53. data/vendor/testing/test.js +5 -3
  54. data/vendor/testing/test.styl +42 -2
  55. metadata +23 -542
  56. data/vendor/History.md +0 -672
  57. data/vendor/Makefile +0 -20
  58. data/vendor/Readme.md +0 -155
  59. data/vendor/docs/bifs.md +0 -598
  60. data/vendor/docs/comments.md +0 -35
  61. data/vendor/docs/compare.md +0 -81
  62. data/vendor/docs/conditionals.md +0 -107
  63. data/vendor/docs/css-style.md +0 -77
  64. data/vendor/docs/error-reporting.md +0 -50
  65. data/vendor/docs/escape.md +0 -28
  66. data/vendor/docs/executable.md +0 -163
  67. data/vendor/docs/extend.md +0 -123
  68. data/vendor/docs/firebug.md +0 -59
  69. data/vendor/docs/font-face.md +0 -26
  70. data/vendor/docs/functions.md +0 -197
  71. data/vendor/docs/functions.url.md +0 -32
  72. data/vendor/docs/gedit.md +0 -24
  73. data/vendor/docs/import.md +0 -75
  74. data/vendor/docs/interpolation.md +0 -55
  75. data/vendor/docs/introspection.md +0 -38
  76. data/vendor/docs/iteration.md +0 -102
  77. data/vendor/docs/js.md +0 -157
  78. data/vendor/docs/keyframes.md +0 -122
  79. data/vendor/docs/kwargs.md +0 -34
  80. data/vendor/docs/literal.md +0 -16
  81. data/vendor/docs/media.md +0 -18
  82. data/vendor/docs/middleware.md +0 -72
  83. data/vendor/docs/mixins.md +0 -138
  84. data/vendor/docs/operators.md +0 -470
  85. data/vendor/docs/selectors.md +0 -133
  86. data/vendor/docs/textmate.md +0 -4
  87. data/vendor/docs/vargs.md +0 -84
  88. data/vendor/docs/variables.md +0 -85
  89. data/vendor/editors/Stylus.tmbundle/Commands/Compile and Display CSS.tmCommand +0 -33
  90. data/vendor/editors/Stylus.tmbundle/Preferences/Comments.tmPreferences +0 -36
  91. data/vendor/editors/Stylus.tmbundle/Syntaxes/Stylus.tmLanguage +0 -228
  92. data/vendor/editors/Stylus.tmbundle/info.plist +0 -10
  93. data/vendor/editors/gedit/styl.lang +0 -475
  94. data/vendor/examples/arithmetic.js +0 -12
  95. data/vendor/examples/arithmetic.styl +0 -29
  96. data/vendor/examples/basic.js +0 -12
  97. data/vendor/examples/basic.styl +0 -8
  98. data/vendor/examples/builtins.js +0 -12
  99. data/vendor/examples/builtins.styl +0 -56
  100. data/vendor/examples/comments.js +0 -11
  101. data/vendor/examples/comments.styl +0 -15
  102. data/vendor/examples/compress.js +0 -12
  103. data/vendor/examples/conversions.js +0 -12
  104. data/vendor/examples/conversions.styl +0 -34
  105. data/vendor/examples/functions.js +0 -12
  106. data/vendor/examples/functions.styl +0 -30
  107. data/vendor/examples/gradients.js +0 -13
  108. data/vendor/examples/gradients.styl +0 -8
  109. data/vendor/examples/images/gopher.jpg +0 -0
  110. data/vendor/examples/images/gradient.svg +0 -9
  111. data/vendor/examples/images/jesus.gif +0 -0
  112. data/vendor/examples/images/sprite.gif +0 -0
  113. data/vendor/examples/images.js +0 -20
  114. data/vendor/examples/images.styl +0 -15
  115. data/vendor/examples/implicit-functions.js +0 -12
  116. data/vendor/examples/implicit-functions.styl +0 -23
  117. data/vendor/examples/import.js +0 -12
  118. data/vendor/examples/import.styl +0 -11
  119. data/vendor/examples/js-functions.js +0 -55
  120. data/vendor/examples/js-functions.styl +0 -23
  121. data/vendor/examples/literal.js +0 -12
  122. data/vendor/examples/literal.styl +0 -8
  123. data/vendor/examples/middleware.js +0 -23
  124. data/vendor/examples/mixins/box.styl +0 -14
  125. data/vendor/examples/mixins/gradients.styl +0 -92
  126. data/vendor/examples/nesting.js +0 -12
  127. data/vendor/examples/nesting.styl +0 -14
  128. data/vendor/examples/variables.js +0 -12
  129. data/vendor/examples/variables.styl +0 -24
  130. data/vendor/node_modules/cssom/Jakefile +0 -37
  131. data/vendor/node_modules/cssom/MIT-LICENSE.txt +0 -20
  132. data/vendor/node_modules/cssom/README.mdown +0 -34
  133. data/vendor/node_modules/cssom/Rakefile +0 -23
  134. data/vendor/node_modules/cssom/animation.html +0 -27
  135. data/vendor/node_modules/cssom/bench.html +0 -47
  136. data/vendor/node_modules/cssom/comments.js +0 -63
  137. data/vendor/node_modules/cssom/docs/bar.css +0 -3
  138. data/vendor/node_modules/cssom/docs/col_table.html +0 -15
  139. data/vendor/node_modules/cssom/docs/cols.html +0 -14
  140. data/vendor/node_modules/cssom/docs/cols_inline-blocks.html +0 -33
  141. data/vendor/node_modules/cssom/docs/demo.css +0 -0
  142. data/vendor/node_modules/cssom/docs/diff.html +0 -132
  143. data/vendor/node_modules/cssom/docs/foo.css +0 -4
  144. data/vendor/node_modules/cssom/docs/parse.html +0 -282
  145. data/vendor/node_modules/cssom/docs/parse.html_ +0 -268
  146. data/vendor/node_modules/cssom/docs/parse2.html +0 -518
  147. data/vendor/node_modules/cssom/docs/parser.html +0 -31
  148. data/vendor/node_modules/cssom/index.html +0 -100
  149. data/vendor/node_modules/cssom/lib/CSSOM.js +0 -3
  150. data/vendor/node_modules/cssom/lib/Parser.js +0 -362
  151. data/vendor/node_modules/cssom/media.html +0 -17
  152. data/vendor/node_modules/cssom/plugins/toHTML.js +0 -32
  153. data/vendor/node_modules/cssom/server/index.html +0 -22
  154. data/vendor/node_modules/cssom/server/index.js +0 -21
  155. data/vendor/node_modules/cssom/shorthands.html +0 -21
  156. data/vendor/node_modules/cssom/strings.html +0 -10
  157. data/vendor/node_modules/cssom/test/CSSImportRule.test.js +0 -52
  158. data/vendor/node_modules/cssom/test/CSSStyleDeclaration.test.js +0 -42
  159. data/vendor/node_modules/cssom/test/CSSStyleRule.test.js +0 -12
  160. data/vendor/node_modules/cssom/test/CSSStyleSheet.test.js +0 -16
  161. data/vendor/node_modules/cssom/test/MediaList.test.js +0 -21
  162. data/vendor/node_modules/cssom/test/_helper.js +0 -122
  163. data/vendor/node_modules/cssom/test/clone.test.js +0 -38
  164. data/vendor/node_modules/cssom/test/fixtures/dummy.css +0 -3
  165. data/vendor/node_modules/cssom/test/helper.js +0 -122
  166. data/vendor/node_modules/cssom/test/index.html +0 -45
  167. data/vendor/node_modules/cssom/test/parse.test.js +0 -718
  168. data/vendor/node_modules/cssom/test/vendor/qunit.css +0 -189
  169. data/vendor/node_modules/cssom/test/vendor/qunit.js +0 -1415
  170. data/vendor/test/cases/arithmetic.color.css +0 -44
  171. data/vendor/test/cases/arithmetic.color.styl +0 -48
  172. data/vendor/test/cases/arithmetic.css +0 -23
  173. data/vendor/test/cases/arithmetic.styl +0 -30
  174. data/vendor/test/cases/arithmetic.unary.css +0 -16
  175. data/vendor/test/cases/arithmetic.unary.styl +0 -16
  176. data/vendor/test/cases/atscope.css +0 -21
  177. data/vendor/test/cases/atscope.styl +0 -23
  178. data/vendor/test/cases/bifs.add-property.css +0 -21
  179. data/vendor/test/cases/bifs.add-property.styl +0 -48
  180. data/vendor/test/cases/bifs.components.css +0 -9
  181. data/vendor/test/cases/bifs.components.styl +0 -9
  182. data/vendor/test/cases/bifs.dark.css +0 -5
  183. data/vendor/test/cases/bifs.dark.styl +0 -4
  184. data/vendor/test/cases/bifs.darken.css +0 -8
  185. data/vendor/test/cases/bifs.darken.styl +0 -9
  186. data/vendor/test/cases/bifs.fade.css +0 -6
  187. data/vendor/test/cases/bifs.fade.styl +0 -6
  188. data/vendor/test/cases/bifs.image-size.css +0 -9
  189. data/vendor/test/cases/bifs.image-size.styl +0 -16
  190. data/vendor/test/cases/bifs.join.css +0 -18
  191. data/vendor/test/cases/bifs.join.styl +0 -21
  192. data/vendor/test/cases/bifs.keys.css +0 -4
  193. data/vendor/test/cases/bifs.keys.styl +0 -6
  194. data/vendor/test/cases/bifs.last.css +0 -5
  195. data/vendor/test/cases/bifs.last.styl +0 -6
  196. data/vendor/test/cases/bifs.length.css +0 -10
  197. data/vendor/test/cases/bifs.length.styl +0 -18
  198. data/vendor/test/cases/bifs.light.css +0 -5
  199. data/vendor/test/cases/bifs.light.styl +0 -4
  200. data/vendor/test/cases/bifs.lighten.css +0 -14
  201. data/vendor/test/cases/bifs.lighten.styl +0 -14
  202. data/vendor/test/cases/bifs.lookup.css +0 -3
  203. data/vendor/test/cases/bifs.lookup.styl +0 -8
  204. data/vendor/test/cases/bifs.match.css +0 -4
  205. data/vendor/test/cases/bifs.match.styl +0 -9
  206. data/vendor/test/cases/bifs.opposite-position.css +0 -8
  207. data/vendor/test/cases/bifs.opposite-position.styl +0 -9
  208. data/vendor/test/cases/bifs.push.css +0 -25
  209. data/vendor/test/cases/bifs.push.styl +0 -48
  210. data/vendor/test/cases/bifs.rgba.css +0 -5
  211. data/vendor/test/cases/bifs.rgba.styl +0 -4
  212. data/vendor/test/cases/bifs.s.css +0 -11
  213. data/vendor/test/cases/bifs.s.styl +0 -12
  214. data/vendor/test/cases/bifs.type.css +0 -11
  215. data/vendor/test/cases/bifs.type.styl +0 -12
  216. data/vendor/test/cases/bifs.unit.css +0 -6
  217. data/vendor/test/cases/bifs.unit.styl +0 -5
  218. data/vendor/test/cases/bifs.unquote.css +0 -5
  219. data/vendor/test/cases/bifs.unquote.styl +0 -8
  220. data/vendor/test/cases/bifs.url.css +0 -11
  221. data/vendor/test/cases/bifs.url.styl +0 -15
  222. data/vendor/test/cases/bifs.values.css +0 -5
  223. data/vendor/test/cases/bifs.values.styl +0 -6
  224. data/vendor/test/cases/casting.css +0 -12
  225. data/vendor/test/cases/casting.styl +0 -14
  226. data/vendor/test/cases/coercion.css +0 -6
  227. data/vendor/test/cases/coercion.styl +0 -5
  228. data/vendor/test/cases/comments.css +0 -18
  229. data/vendor/test/cases/comments.styl +0 -28
  230. data/vendor/test/cases/compress.comments.css +0 -2
  231. data/vendor/test/cases/compress.comments.styl +0 -5
  232. data/vendor/test/cases/compress.units.css +0 -2
  233. data/vendor/test/cases/compress.units.styl +0 -18
  234. data/vendor/test/cases/conditional-assignment.css +0 -4
  235. data/vendor/test/cases/conditional-assignment.styl +0 -9
  236. data/vendor/test/cases/control.blueprint.ie.css +0 -126
  237. data/vendor/test/cases/control.blueprint.ie.styl +0 -36
  238. data/vendor/test/cases/control.blueprint.screen.css +0 -1103
  239. data/vendor/test/cases/control.blueprint.screen.styl +0 -265
  240. data/vendor/test/cases/control.boilerplate.css +0 -473
  241. data/vendor/test/cases/control.boilerplate.styl +0 -265
  242. data/vendor/test/cases/css.extend.css +0 -13
  243. data/vendor/test/cases/css.extend.styl +0 -15
  244. data/vendor/test/cases/css.functions.single-line.css +0 -9
  245. data/vendor/test/cases/css.functions.single-line.styl +0 -13
  246. data/vendor/test/cases/css.if.css +0 -8
  247. data/vendor/test/cases/css.if.styl +0 -21
  248. data/vendor/test/cases/css.keyframes.css +0 -57
  249. data/vendor/test/cases/css.keyframes.styl +0 -48
  250. data/vendor/test/cases/css.large.css +0 -172
  251. data/vendor/test/cases/css.large.styl +0 -172
  252. data/vendor/test/cases/css.media.css +0 -15
  253. data/vendor/test/cases/css.media.styl +0 -17
  254. data/vendor/test/cases/css.mixins.braces.css +0 -38
  255. data/vendor/test/cases/css.mixins.braces.styl +0 -53
  256. data/vendor/test/cases/css.mixins.css +0 -38
  257. data/vendor/test/cases/css.mixins.root.css +0 -26
  258. data/vendor/test/cases/css.mixins.root.styl +0 -25
  259. data/vendor/test/cases/css.mixins.root.wonky.css +0 -26
  260. data/vendor/test/cases/css.mixins.root.wonky.styl +0 -17
  261. data/vendor/test/cases/css.mixins.styl +0 -47
  262. data/vendor/test/cases/css.selector.interpolation.css +0 -91
  263. data/vendor/test/cases/css.selector.interpolation.styl +0 -90
  264. data/vendor/test/cases/css.selectors.css +0 -38
  265. data/vendor/test/cases/css.selectors.styl +0 -53
  266. data/vendor/test/cases/css.whitespace.css +0 -37
  267. data/vendor/test/cases/css.whitespace.styl +0 -38
  268. data/vendor/test/cases/dumb.css +0 -10
  269. data/vendor/test/cases/dumb.styl +0 -11
  270. data/vendor/test/cases/eol-escape.css +0 -11
  271. data/vendor/test/cases/eol-escape.styl +0 -27
  272. data/vendor/test/cases/escape.css +0 -4
  273. data/vendor/test/cases/escape.styl +0 -4
  274. data/vendor/test/cases/extend.complex.css +0 -16
  275. data/vendor/test/cases/extend.complex.styl +0 -15
  276. data/vendor/test/cases/extend.css +0 -22
  277. data/vendor/test/cases/extend.multiple-definitions.css +0 -11
  278. data/vendor/test/cases/extend.multiple-definitions.styl +0 -9
  279. data/vendor/test/cases/extend.styl +0 -22
  280. data/vendor/test/cases/fontface.css +0 -4
  281. data/vendor/test/cases/fontface.styl +0 -5
  282. data/vendor/test/cases/for.complex.css +0 -44
  283. data/vendor/test/cases/for.complex.styl +0 -28
  284. data/vendor/test/cases/for.css +0 -52
  285. data/vendor/test/cases/for.function.css +0 -20
  286. data/vendor/test/cases/for.function.styl +0 -51
  287. data/vendor/test/cases/for.styl +0 -44
  288. data/vendor/test/cases/function.arguments.css +0 -4
  289. data/vendor/test/cases/function.arguments.styl +0 -14
  290. data/vendor/test/cases/function.literals.css +0 -6
  291. data/vendor/test/cases/function.literals.styl +0 -12
  292. data/vendor/test/cases/functions.arg-calls.css +0 -3
  293. data/vendor/test/cases/functions.arg-calls.styl +0 -9
  294. data/vendor/test/cases/functions.call.css +0 -4
  295. data/vendor/test/cases/functions.call.styl +0 -7
  296. data/vendor/test/cases/functions.css +0 -11
  297. data/vendor/test/cases/functions.defaults.css +0 -15
  298. data/vendor/test/cases/functions.defaults.styl +0 -30
  299. data/vendor/test/cases/functions.multi-line.css +0 -9
  300. data/vendor/test/cases/functions.multi-line.styl +0 -25
  301. data/vendor/test/cases/functions.multiple-calls.css +0 -13
  302. data/vendor/test/cases/functions.multiple-calls.styl +0 -26
  303. data/vendor/test/cases/functions.nested-calls.css +0 -3
  304. data/vendor/test/cases/functions.nested-calls.styl +0 -9
  305. data/vendor/test/cases/functions.nested.css +0 -10
  306. data/vendor/test/cases/functions.nested.styl +0 -37
  307. data/vendor/test/cases/functions.property.css +0 -10
  308. data/vendor/test/cases/functions.property.styl +0 -11
  309. data/vendor/test/cases/functions.return.css +0 -15
  310. data/vendor/test/cases/functions.return.each.css +0 -10
  311. data/vendor/test/cases/functions.return.each.styl +0 -23
  312. data/vendor/test/cases/functions.return.styl +0 -86
  313. data/vendor/test/cases/functions.styl +0 -34
  314. data/vendor/test/cases/functions.variable.css +0 -9
  315. data/vendor/test/cases/functions.variable.ident.css +0 -3
  316. data/vendor/test/cases/functions.variable.ident.styl +0 -11
  317. data/vendor/test/cases/functions.variable.styl +0 -27
  318. data/vendor/test/cases/hack.star.css +0 -27
  319. data/vendor/test/cases/hack.star.styl +0 -37
  320. data/vendor/test/cases/if.css +0 -43
  321. data/vendor/test/cases/if.else.css +0 -6
  322. data/vendor/test/cases/if.else.styl +0 -16
  323. data/vendor/test/cases/if.mixin.css +0 -7
  324. data/vendor/test/cases/if.mixin.styl +0 -24
  325. data/vendor/test/cases/if.postfix.css +0 -61
  326. data/vendor/test/cases/if.postfix.styl +0 -110
  327. data/vendor/test/cases/if.selectors.css +0 -16
  328. data/vendor/test/cases/if.selectors.styl +0 -22
  329. data/vendor/test/cases/if.styl +0 -99
  330. data/vendor/test/cases/import.basic/a.styl +0 -5
  331. data/vendor/test/cases/import.basic/b.styl +0 -5
  332. data/vendor/test/cases/import.basic/c.styl +0 -3
  333. data/vendor/test/cases/import.basic.css +0 -11
  334. data/vendor/test/cases/import.basic.styl +0 -4
  335. data/vendor/test/cases/import.complex/a.styl +0 -4
  336. data/vendor/test/cases/import.complex/c.styl +0 -2
  337. data/vendor/test/cases/import.complex/nested/b.styl +0 -4
  338. data/vendor/test/cases/import.complex.css +0 -9
  339. data/vendor/test/cases/import.complex.styl +0 -1
  340. data/vendor/test/cases/import.index/vendor/a.styl +0 -2
  341. data/vendor/test/cases/import.index/vendor/b.styl +0 -2
  342. data/vendor/test/cases/import.index/vendor/c.styl +0 -2
  343. data/vendor/test/cases/import.index/vendor/index.styl +0 -4
  344. data/vendor/test/cases/import.index.css +0 -9
  345. data/vendor/test/cases/import.index.styl +0 -2
  346. data/vendor/test/cases/import.literal.css +0 -2
  347. data/vendor/test/cases/import.literal.styl +0 -3
  348. data/vendor/test/cases/import.mixins.css +0 -7
  349. data/vendor/test/cases/import.mixins.styl +0 -9
  350. data/vendor/test/cases/import.ordering/five.styl +0 -2
  351. data/vendor/test/cases/import.ordering/four.styl +0 -4
  352. data/vendor/test/cases/import.ordering/two.styl +0 -2
  353. data/vendor/test/cases/import.ordering.css +0 -15
  354. data/vendor/test/cases/import.ordering.styl +0 -12
  355. data/vendor/test/cases/important.css +0 -6
  356. data/vendor/test/cases/important.styl +0 -6
  357. data/vendor/test/cases/interpolation.properties.css +0 -40
  358. data/vendor/test/cases/interpolation.properties.styl +0 -56
  359. data/vendor/test/cases/introspection.css +0 -7
  360. data/vendor/test/cases/introspection.styl +0 -14
  361. data/vendor/test/cases/jquery.css +0 -3
  362. data/vendor/test/cases/jquery.styl +0 -5
  363. data/vendor/test/cases/keyframes.css +0 -9
  364. data/vendor/test/cases/keyframes.fabrication.css +0 -18
  365. data/vendor/test/cases/keyframes.fabrication.defaults.css +0 -45
  366. data/vendor/test/cases/keyframes.fabrication.defaults.styl +0 -9
  367. data/vendor/test/cases/keyframes.fabrication.styl +0 -11
  368. data/vendor/test/cases/keyframes.newlines.css +0 -45
  369. data/vendor/test/cases/keyframes.newlines.styl +0 -7
  370. data/vendor/test/cases/keyframes.styl +0 -6
  371. data/vendor/test/cases/kwargs.css +0 -63
  372. data/vendor/test/cases/kwargs.styl +0 -74
  373. data/vendor/test/cases/list.css +0 -3
  374. data/vendor/test/cases/list.styl +0 -3
  375. data/vendor/test/cases/literal.color.css +0 -10
  376. data/vendor/test/cases/literal.color.styl +0 -9
  377. data/vendor/test/cases/literal.css +0 -10
  378. data/vendor/test/cases/literal.styl +0 -18
  379. data/vendor/test/cases/media.css +0 -14
  380. data/vendor/test/cases/media.styl +0 -11
  381. data/vendor/test/cases/mixin.conditional.css +0 -19
  382. data/vendor/test/cases/mixin.conditional.styl +0 -36
  383. data/vendor/test/cases/mixin.order.conditional.css +0 -11
  384. data/vendor/test/cases/mixin.order.conditional.styl +0 -20
  385. data/vendor/test/cases/mixin.order.css +0 -9
  386. data/vendor/test/cases/mixin.order.nested.css +0 -9
  387. data/vendor/test/cases/mixin.order.nested.styl +0 -21
  388. data/vendor/test/cases/mixin.order.styl +0 -20
  389. data/vendor/test/cases/mixins/box.styl +0 -11
  390. data/vendor/test/cases/mixins.complex.css +0 -30
  391. data/vendor/test/cases/mixins.complex.fix-to.css +0 -15
  392. data/vendor/test/cases/mixins.complex.fix-to.styl +0 -28
  393. data/vendor/test/cases/mixins.complex.styl +0 -41
  394. data/vendor/test/cases/mixins.conditional.css +0 -3
  395. data/vendor/test/cases/mixins.conditional.styl +0 -8
  396. data/vendor/test/cases/mixins.nested.css +0 -7
  397. data/vendor/test/cases/mixins.nested.selectors.css +0 -21
  398. data/vendor/test/cases/mixins.nested.selectors.styl +0 -31
  399. data/vendor/test/cases/mixins.nested.styl +0 -14
  400. data/vendor/test/cases/mixins.order.2.css +0 -11
  401. data/vendor/test/cases/mixins.order.2.styl +0 -16
  402. data/vendor/test/cases/mixins.reset.css +0 -75
  403. data/vendor/test/cases/mixins.reset.styl +0 -27
  404. data/vendor/test/cases/mixins.return.css +0 -4
  405. data/vendor/test/cases/mixins.return.styl +0 -8
  406. data/vendor/test/cases/mixins.root.css +0 -3
  407. data/vendor/test/cases/mixins.root.styl +0 -5
  408. data/vendor/test/cases/operator.range.css +0 -15
  409. data/vendor/test/cases/operator.range.styl +0 -23
  410. data/vendor/test/cases/operators.assignment.function.css +0 -15
  411. data/vendor/test/cases/operators.assignment.function.styl +0 -34
  412. data/vendor/test/cases/operators.assignment.mixin.css +0 -15
  413. data/vendor/test/cases/operators.assignment.mixin.styl +0 -39
  414. data/vendor/test/cases/operators.assignment.root.css +0 -25
  415. data/vendor/test/cases/operators.assignment.root.styl +0 -55
  416. data/vendor/test/cases/operators.complex.css +0 -9
  417. data/vendor/test/cases/operators.complex.styl +0 -32
  418. data/vendor/test/cases/operators.css +0 -40
  419. data/vendor/test/cases/operators.equality.css +0 -55
  420. data/vendor/test/cases/operators.equality.styl +0 -55
  421. data/vendor/test/cases/operators.in.css +0 -37
  422. data/vendor/test/cases/operators.in.styl +0 -51
  423. data/vendor/test/cases/operators.mixins.css +0 -10
  424. data/vendor/test/cases/operators.mixins.styl +0 -25
  425. data/vendor/test/cases/operators.precedence.css +0 -51
  426. data/vendor/test/cases/operators.precedence.styl +0 -82
  427. data/vendor/test/cases/operators.styl +0 -96
  428. data/vendor/test/cases/operators.subscript.assign.css +0 -21
  429. data/vendor/test/cases/operators.subscript.assign.styl +0 -45
  430. data/vendor/test/cases/operators.subscript.css +0 -59
  431. data/vendor/test/cases/operators.subscript.range.css +0 -14
  432. data/vendor/test/cases/operators.subscript.range.styl +0 -15
  433. data/vendor/test/cases/operators.subscript.styl +0 -81
  434. data/vendor/test/cases/page.css +0 -16
  435. data/vendor/test/cases/page.styl +0 -17
  436. data/vendor/test/cases/parent.css +0 -32
  437. data/vendor/test/cases/parent.styl +0 -33
  438. data/vendor/test/cases/properties.colons.css +0 -8
  439. data/vendor/test/cases/properties.colons.styl +0 -10
  440. data/vendor/test/cases/properties.css +0 -4
  441. data/vendor/test/cases/properties.one-line.css +0 -10
  442. data/vendor/test/cases/properties.one-line.styl +0 -11
  443. data/vendor/test/cases/properties.styl +0 -4
  444. data/vendor/test/cases/property-access.bubble.css +0 -38
  445. data/vendor/test/cases/property-access.bubble.styl +0 -46
  446. data/vendor/test/cases/property-access.css +0 -48
  447. data/vendor/test/cases/property-access.siblings.css +0 -19
  448. data/vendor/test/cases/property-access.siblings.styl +0 -20
  449. data/vendor/test/cases/property-access.styl +0 -62
  450. data/vendor/test/cases/regression.107.lookup-failure.css +0 -12
  451. data/vendor/test/cases/regression.107.lookup-failure.styl +0 -13
  452. data/vendor/test/cases/regression.127.css +0 -3
  453. data/vendor/test/cases/regression.127.styl +0 -2
  454. data/vendor/test/cases/regression.130.css +0 -16
  455. data/vendor/test/cases/regression.130.styl +0 -6
  456. data/vendor/test/cases/regression.131.css +0 -7
  457. data/vendor/test/cases/regression.131.styl +0 -2
  458. data/vendor/test/cases/regression.137.css +0 -7
  459. data/vendor/test/cases/regression.137.styl +0 -7
  460. data/vendor/test/cases/regression.139.css +0 -5
  461. data/vendor/test/cases/regression.139.styl +0 -21
  462. data/vendor/test/cases/regression.142.css +0 -39
  463. data/vendor/test/cases/regression.142.styl +0 -54
  464. data/vendor/test/cases/regression.146.css +0 -30
  465. data/vendor/test/cases/regression.146.styl +0 -31
  466. data/vendor/test/cases/regression.153.css +0 -8
  467. data/vendor/test/cases/regression.153.styl +0 -9
  468. data/vendor/test/cases/regression.154.css +0 -8
  469. data/vendor/test/cases/regression.154.styl +0 -14
  470. data/vendor/test/cases/regression.156.css +0 -4
  471. data/vendor/test/cases/regression.156.styl +0 -6
  472. data/vendor/test/cases/regression.212.css +0 -15
  473. data/vendor/test/cases/regression.212.styl +0 -14
  474. data/vendor/test/cases/regression.216.css +0 -10
  475. data/vendor/test/cases/regression.216.styl +0 -8
  476. data/vendor/test/cases/regression.220.css +0 -5
  477. data/vendor/test/cases/regression.220.styl +0 -5
  478. data/vendor/test/cases/regression.229.css +0 -12
  479. data/vendor/test/cases/regression.229.styl +0 -9
  480. data/vendor/test/cases/regression.233.css +0 -6
  481. data/vendor/test/cases/regression.233.styl +0 -7
  482. data/vendor/test/cases/regression.235.css +0 -11
  483. data/vendor/test/cases/regression.235.styl +0 -13
  484. data/vendor/test/cases/regression.243.css +0 -3
  485. data/vendor/test/cases/regression.243.styl +0 -4
  486. data/vendor/test/cases/regression.244.css +0 -3
  487. data/vendor/test/cases/regression.244.styl +0 -3
  488. data/vendor/test/cases/regression.247.css +0 -6
  489. data/vendor/test/cases/regression.247.styl +0 -6
  490. data/vendor/test/cases/regression.248.compressed.css +0 -4
  491. data/vendor/test/cases/regression.248.compressed.styl +0 -10
  492. data/vendor/test/cases/regression.252.css +0 -13
  493. data/vendor/test/cases/regression.252.styl +0 -13
  494. data/vendor/test/cases/regression.260.css +0 -6
  495. data/vendor/test/cases/regression.260.styl +0 -6
  496. data/vendor/test/cases/regression.267.css +0 -3
  497. data/vendor/test/cases/regression.267.styl +0 -3
  498. data/vendor/test/cases/regression.270.css +0 -5
  499. data/vendor/test/cases/regression.270.styl +0 -7
  500. data/vendor/test/cases/regression.272.css +0 -11
  501. data/vendor/test/cases/regression.272.styl +0 -17
  502. data/vendor/test/cases/regression.274.css +0 -14
  503. data/vendor/test/cases/regression.274.styl +0 -16
  504. data/vendor/test/cases/regression.292.css +0 -3
  505. data/vendor/test/cases/regression.292.styl +0 -3
  506. data/vendor/test/cases/regression.360.css +0 -19
  507. data/vendor/test/cases/regression.360.styl +0 -1
  508. data/vendor/test/cases/regression.368.css +0 -4
  509. data/vendor/test/cases/regression.368.styl +0 -3
  510. data/vendor/test/cases/regression.379.css +0 -6
  511. data/vendor/test/cases/regression.379.styl +0 -10
  512. data/vendor/test/cases/regression.380.css +0 -8
  513. data/vendor/test/cases/regression.380.styl +0 -14
  514. data/vendor/test/cases/regression.388.css +0 -2
  515. data/vendor/test/cases/regression.388.styl +0 -6
  516. data/vendor/test/cases/regression.415.css +0 -5
  517. data/vendor/test/cases/regression.415.styl +0 -3
  518. data/vendor/test/cases/regression.420.css +0 -21
  519. data/vendor/test/cases/regression.420.styl +0 -29
  520. data/vendor/test/cases/regression.432.css +0 -5
  521. data/vendor/test/cases/regression.432.styl +0 -4
  522. data/vendor/test/cases/regression.440.css +0 -5
  523. data/vendor/test/cases/regression.440.styl +0 -7
  524. data/vendor/test/cases/regression.449.css +0 -9
  525. data/vendor/test/cases/regression.449.styl +0 -10
  526. data/vendor/test/cases/regression.458.css +0 -3
  527. data/vendor/test/cases/regression.458.styl +0 -3
  528. data/vendor/test/cases/regression.460.css +0 -13
  529. data/vendor/test/cases/regression.460.styl +0 -18
  530. data/vendor/test/cases/regression.469.css +0 -4
  531. data/vendor/test/cases/regression.469.styl +0 -6
  532. data/vendor/test/cases/regression.472.css +0 -10
  533. data/vendor/test/cases/regression.472.styl +0 -23
  534. data/vendor/test/cases/regression.475.css +0 -6
  535. data/vendor/test/cases/regression.475.styl +0 -7
  536. data/vendor/test/cases/regression.480.css +0 -9
  537. data/vendor/test/cases/regression.480.styl +0 -12
  538. data/vendor/test/cases/regression.484.css +0 -9
  539. data/vendor/test/cases/regression.484.styl +0 -8
  540. data/vendor/test/cases/regression.498.css +0 -8
  541. data/vendor/test/cases/regression.498.styl +0 -11
  542. data/vendor/test/cases/regression.499.css +0 -14
  543. data/vendor/test/cases/regression.499.styl +0 -20
  544. data/vendor/test/cases/regression.503.css +0 -65
  545. data/vendor/test/cases/regression.503.styl +0 -7
  546. data/vendor/test/cases/regression.504.css +0 -65
  547. data/vendor/test/cases/regression.504.styl +0 -12
  548. data/vendor/test/cases/regression.524.css +0 -4
  549. data/vendor/test/cases/regression.524.styl +0 -7
  550. data/vendor/test/cases/regression.535.css +0 -3
  551. data/vendor/test/cases/regression.535.styl +0 -9
  552. data/vendor/test/cases/regression.536.css +0 -3
  553. data/vendor/test/cases/regression.536.styl +0 -5
  554. data/vendor/test/cases/reset.css +0 -70
  555. data/vendor/test/cases/reset.styl +0 -16
  556. data/vendor/test/cases/rule.charset.css +0 -1
  557. data/vendor/test/cases/rule.charset.styl +0 -2
  558. data/vendor/test/cases/rulset.css +0 -4
  559. data/vendor/test/cases/rulset.newline.css +0 -5
  560. data/vendor/test/cases/rulset.newline.styl +0 -5
  561. data/vendor/test/cases/rulset.styl +0 -3
  562. data/vendor/test/cases/scope.complex.css +0 -10
  563. data/vendor/test/cases/scope.complex.styl +0 -16
  564. data/vendor/test/cases/scope.css +0 -5
  565. data/vendor/test/cases/scope.nested.css +0 -9
  566. data/vendor/test/cases/scope.nested.styl +0 -10
  567. data/vendor/test/cases/scope.styl +0 -12
  568. data/vendor/test/cases/selector.interpolation.css +0 -57
  569. data/vendor/test/cases/selector.interpolation.styl +0 -45
  570. data/vendor/test/cases/selectors.complex.css +0 -28
  571. data/vendor/test/cases/selectors.complex.styl +0 -27
  572. data/vendor/test/cases/selectors.css +0 -50
  573. data/vendor/test/cases/selectors.nested.comma.css +0 -9
  574. data/vendor/test/cases/selectors.nested.comma.styl +0 -8
  575. data/vendor/test/cases/selectors.nested.css +0 -34
  576. data/vendor/test/cases/selectors.nested.styl +0 -33
  577. data/vendor/test/cases/selectors.pseudo.css +0 -27
  578. data/vendor/test/cases/selectors.pseudo.elements.css +0 -26
  579. data/vendor/test/cases/selectors.pseudo.elements.styl +0 -29
  580. data/vendor/test/cases/selectors.pseudo.styl +0 -24
  581. data/vendor/test/cases/selectors.styl +0 -46
  582. data/vendor/test/cases/self-assignment.css +0 -3
  583. data/vendor/test/cases/self-assignment.styl +0 -4
  584. data/vendor/test/cases/vargs.call.css +0 -24
  585. data/vendor/test/cases/vargs.call.styl +0 -40
  586. data/vendor/test/cases/vargs.css +0 -30
  587. data/vendor/test/cases/vargs.styl +0 -49
  588. data/vendor/test/cases/variable.css +0 -3
  589. data/vendor/test/cases/variable.styl +0 -4
  590. data/vendor/test/cases/variables.css +0 -12
  591. data/vendor/test/cases/variables.styl +0 -17
  592. data/vendor/test/images/gif +0 -0
  593. data/vendor/test/images/squirrel.jpeg +0 -0
  594. data/vendor/test/images/tux.png +0 -0
  595. data/vendor/test/run.js +0 -169
data/Rakefile CHANGED
@@ -20,18 +20,18 @@ end
20
20
 
21
21
  desc "Downloads stylus into './vendor' and checks the latest released tag"
22
22
  task :update do
23
- raw = open('http://registry.npmjs.org/stylus') { |io| io.binmode.read }
24
- metadata = MultiJson.decode(raw)
23
+ raw = open('http://registry.npmjs.org/stylus') { |io| io.binmode.read }
24
+ metadata = MultiJson.decode(raw)
25
25
  current_version = File.read('VERSION')
26
- version = ENV['VERSION'] || metadata['dist-tags']['latest']
27
- tarball = metadata['versions'][version]['dist']['tarball']
26
+ version = ENV['VERSION'] || metadata['dist-tags']['latest']
27
+ tarball = metadata['versions'][version]['dist']['tarball']
28
28
 
29
29
  say "Updating stylus source from #{current_version} to #{version}"
30
30
 
31
31
  execute 'cleaning up old files', 'rm -rf vendor'
32
32
  execute "download stylus #{version}", "wget #{tarball} -O stylus.tgz"
33
33
  execute "upacking stylus #{version}", 'tar -zxvf stylus.tgz'
34
- execute 'cleaning up', 'rm stylus.tgz package/.npmignore'
34
+ execute 'cleaning up', 'rm -rf stylus.tgz package/.npmignore'
35
35
  execute 'updating stylus dependencies', 'mv package vendor && cd vendor && npm install .'
36
36
  say 'updating VERSION file'
37
37
  File.open('VERSION', 'w') { |file| file.write(version) }
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.23.0
1
+ 0.24.0
@@ -150,7 +150,7 @@ exports.type =
150
150
  exports.typeof =
151
151
  exports['type-of'] = function type(node){
152
152
  utils.assertPresent(node, 'expression');
153
- return new nodes.String(node.nodeName);
153
+ return node.nodeName;
154
154
  };
155
155
 
156
156
  /**
@@ -356,7 +356,7 @@ exports.unit = function unit(unit, type){
356
356
  utils.assertString(type, 'type');
357
357
  return new nodes.Unit(unit.val, type.string);
358
358
  } else {
359
- return new nodes.String(unit.type || '');
359
+ return unit.type || '';
360
360
  }
361
361
  };
362
362
 
@@ -429,13 +429,11 @@ exports.match = function match(pattern, val){
429
429
 
430
430
  (exports.length = function length(expr){
431
431
  if (expr) {
432
- if (expr.nodes) {
433
- return new nodes.Unit(utils.unwrap(expr).nodes.length);
434
- } else {
435
- return new nodes.Unit(1);
436
- }
432
+ return expr.nodes
433
+ ? utils.unwrap(expr).nodes.length
434
+ : 1;
437
435
  }
438
- return new nodes.Unit(0);
436
+ return 0;
439
437
  }).raw = true;
440
438
 
441
439
  /**
@@ -502,7 +500,7 @@ exports.trace = function trace(){
502
500
  for (var i = 1, len = arguments.length; i < len; ++i) {
503
501
  expr.nodes.push(utils.unwrap(arguments[i]));
504
502
  }
505
- return new nodes.Unit(expr.nodes.length);
503
+ return expr.nodes.length;
506
504
  }).raw = true;
507
505
 
508
506
  /**
@@ -519,7 +517,7 @@ exports.trace = function trace(){
519
517
  for (var i = 1, len = arguments.length; i < len; ++i) {
520
518
  expr.nodes.unshift(utils.unwrap(arguments[i]));
521
519
  }
522
- return new nodes.Unit(expr.nodes.length);
520
+ return expr.nodes.length;
523
521
  }).raw = true;
524
522
 
525
523
  /**
@@ -570,7 +568,7 @@ exports.trace = function trace(){
570
568
  */
571
569
 
572
570
  (exports['opposite-position'] = function oppositePosition(positions){
573
- var expr = new nodes.Expression;
571
+ var expr = [];
574
572
  utils.unwrap(positions).nodes.forEach(function(pos, i){
575
573
  utils.assertString(pos, 'position ' + i);
576
574
  pos = (function(){ switch (pos.string) {
@@ -578,6 +576,7 @@ exports.trace = function trace(){
578
576
  case 'bottom': return 'top';
579
577
  case 'left': return 'right';
580
578
  case 'right': return 'left';
579
+ case 'center': return 'center';
581
580
  default: throw new Error('invalid position ' + pos);
582
581
  }})();
583
582
  expr.push(new nodes.Literal(pos));
@@ -614,7 +613,7 @@ exports['image-size'] = function imageSize(img) {
614
613
  img.close();
615
614
 
616
615
  // Return (w h)
617
- var expr = new nodes.Expression;
616
+ var expr = [];
618
617
  expr.push(new nodes.Unit(size[0], 'px'));
619
618
  expr.push(new nodes.Unit(size[1], 'px'));
620
619
 
@@ -123,6 +123,51 @@ fade-in(color, amount)
123
123
  spin(color, amount)
124
124
  color + unit(amount, deg)
125
125
 
126
+ // mix two colors by a given amount
127
+
128
+ mix(color1, color2, weight = 50%)
129
+ unless weight in 0..100
130
+ error("Weight must be between 0% and 100%")
131
+
132
+ if length(color1) == 2
133
+ weight = color1[0]
134
+ color1 = color1[1]
135
+
136
+ else if length(color2) == 2
137
+ weight = 100 - color2[0]
138
+ color2 = color2[1]
139
+
140
+ require-color(color1)
141
+ require-color(color2)
142
+
143
+ p = unit(weight / 100, '')
144
+ w = p * 2 - 1
145
+
146
+ a = alpha(color1) - alpha(color2)
147
+
148
+ w1 = (((w * a == -1) ? w : (w + a) / (1 + w * a)) + 1) / 2
149
+ w2 = 1 - w1
150
+
151
+ channels = (red(color1) red(color2)) (green(color1) green(color2)) (blue(color1) blue(color2))
152
+ rgb = ()
153
+
154
+ for pair in channels
155
+ push(rgb, floor(pair[0] * w1 + pair[1] * w2))
156
+
157
+ a1 = alpha(color1) * p
158
+ a2 = alpha(color1) * (1 - p)
159
+ alpha = a1 + a2
160
+
161
+ rgba(rgb[0], rgb[1], rgb[2], alpha)
162
+
163
+ // invert colors, leave alpha intact
164
+
165
+ invert(color)
166
+ r = 255 - red(color)
167
+ g = 255 - green(color)
168
+ b = 255 - blue(color)
169
+ rgba(r,g,b,alpha(color))
170
+
126
171
  // return the last value in the given expr
127
172
 
128
173
  last(expr)
data/vendor/lib/parser.js CHANGED
@@ -15,6 +15,13 @@ var Lexer = require('./lexer')
15
15
  , inspect = require('util').inspect
16
16
  , errors = require('./errors');
17
17
 
18
+ // debuggers
19
+
20
+ var debug = {
21
+ lexer: require('debug')('stylus:lexer')
22
+ , selector: require('debug')('stylus:parser:selector')
23
+ };
24
+
18
25
  /**
19
26
  * Selector composite tokens.
20
27
  */
@@ -201,6 +208,7 @@ Parser.prototype = {
201
208
  ? this.stash.pop()
202
209
  : this.lexer.next();
203
210
  nodes.lineno = tok.lineno;
211
+ debug.lexer('%s %s', tok.type, tok.val || '');
204
212
  return tok;
205
213
  },
206
214
 
@@ -934,6 +942,10 @@ Parser.prototype = {
934
942
  case 'media':
935
943
  case 'font-face':
936
944
  return this.selector();
945
+ case 'function':
946
+ return this.looksLikeSelector()
947
+ ? this.selector()
948
+ : this.expression();
937
949
  // Do not disrupt the ident when an operand
938
950
  default:
939
951
  return this.operand
@@ -1045,6 +1057,7 @@ Parser.prototype = {
1045
1057
  // stitched together to
1046
1058
  // form a selector.
1047
1059
  while (tok = this.selectorToken()) {
1060
+ debug.selector('%s', tok);
1048
1061
  // Selector component
1049
1062
  switch (tok.type) {
1050
1063
  case '{':
data/vendor/lib/stylus.js CHANGED
@@ -24,7 +24,7 @@ exports = module.exports = render;
24
24
  * Library version.
25
25
  */
26
26
 
27
- exports.version = '0.23.0';
27
+ exports.version = '0.24.0';
28
28
 
29
29
  /**
30
30
  * Expose nodes.
@@ -20,6 +20,7 @@ var Visitor = require('./')
20
20
  , dirname = require('path').dirname
21
21
  , join = require('path').join
22
22
  , colors = require('../colors')
23
+ , debug = require('debug')('stylus:evaluator')
23
24
  , fs = require('fs');
24
25
 
25
26
  /**
@@ -139,6 +140,7 @@ Evaluator.prototype.populateGlobalScope = function(){
139
140
  */
140
141
 
141
142
  Evaluator.prototype.evaluate = function(){
143
+ debug('eval %s', this.filename);
142
144
  this.setup();
143
145
  return this.visit(this.root);
144
146
  };
@@ -152,6 +154,7 @@ Evaluator.prototype.visitGroup = function(group){
152
154
 
153
155
  group.nodes = group.nodes.map(function(selector){
154
156
  selector.val = this.interpolate(selector);
157
+ debug('ruleset %s', selector.val);
155
158
  return selector;
156
159
  }, this);
157
160
 
@@ -283,6 +286,7 @@ Evaluator.prototype.visitEach = function(each){
283
286
  */
284
287
 
285
288
  Evaluator.prototype.visitCall = function(call){
289
+ debug('call %s', call);
286
290
  var fn = this.lookup(call.name)
287
291
  , ret;
288
292
 
@@ -301,6 +305,7 @@ Evaluator.prototype.visitCall = function(call){
301
305
 
302
306
  // Undefined function, render literal css
303
307
  if (!fn || fn.nodeName != 'function') {
308
+ debug('%s is undefined', call);
304
309
  var ret = this.literalCall(call);
305
310
  this.ignoreColors = false;
306
311
  return ret;
@@ -326,9 +331,11 @@ Evaluator.prototype.visitCall = function(call){
326
331
 
327
332
  // Built-in
328
333
  if (fn.fn) {
334
+ debug('%s is built-in', call);
329
335
  ret = this.invokeBuiltin(fn.fn, args);
330
336
  // User-defined
331
337
  } else if ('function' == fn.nodeName) {
338
+ debug('%s is user-defined', call);
332
339
  ret = this.invokeFunction(fn, args);
333
340
  }
334
341
 
@@ -608,6 +615,7 @@ Evaluator.prototype.visitImport = function(imported){
608
615
  , literal;
609
616
 
610
617
  this.return--;
618
+ debug('import %s', path);
611
619
 
612
620
  // url() passed
613
621
  if ('url' == path.name) return imported;
@@ -0,0 +1,35 @@
1
+ var PATH = require("path");
2
+ var FS = require("fs");
3
+
4
+ function readFile(path) {
5
+ var abs_path = PATH.join(__dirname, path);
6
+ return FS.readFileSync(abs_path, "utf8");
7
+ }
8
+
9
+ function stripCommonJS(text) {
10
+ return text.replace(/\/\/\.CommonJS(?:.|\n)*?\/\/\/CommonJS/g, "");
11
+ }
12
+
13
+ desc("Packages lib files into the one huge");
14
+ task("default", ["build/CSSOM.js"]);
15
+
16
+ directory("build");
17
+
18
+ file("build/CSSOM.js", ["src/files.js", "src/CSSOM.js", "build"], function() {
19
+ var parts = [readFile("src/CSSOM.js")];
20
+ require("./src/files").files.forEach(function(path) {
21
+ var text = readFile("lib/" + path + ".js");
22
+ parts.push(stripCommonJS(text).trimLeft());
23
+ });
24
+ FS.writeFileSync("build/CSSOM.js", parts.join(""));
25
+ process.stdout.write("build/CSSOM.js is done\n");
26
+ });
27
+
28
+ desc("Creates index file for npm package");
29
+ task("lib", ["lib/index.js"]);
30
+
31
+ file("lib/index.js", ["src/files.js"], function() {
32
+ FS.writeFileSync("lib/index.js", "'use strict';\n\n" + require('./src/files').files.map(function(fileName) {
33
+ return "exports." + fileName + " = require('./" + fileName + "')." + fileName + ";\n";
34
+ }).join(""));
35
+ });
@@ -13,6 +13,7 @@ var CSSOM = {
13
13
  * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSImportRule
14
14
  */
15
15
  CSSOM.CSSImportRule = function CSSImportRule() {
16
+ CSSOM.CSSRule.call(this);
16
17
  this.href = "";
17
18
  this.media = new CSSOM.MediaList;
18
19
  this.styleSheet = new CSSOM.CSSStyleSheet;
@@ -49,7 +50,7 @@ CSSOM.CSSImportRule.prototype.__defineSetter__("cssText", function(cssText) {
49
50
  case '\r':
50
51
  case '\n':
51
52
  case '\f':
52
- if (state == 'after-import') {
53
+ if (state === 'after-import') {
53
54
  state = 'url';
54
55
  } else {
55
56
  buffer += character;
@@ -57,7 +58,7 @@ CSSOM.CSSImportRule.prototype.__defineSetter__("cssText", function(cssText) {
57
58
  break;
58
59
 
59
60
  case '@':
60
- if (!state && cssText.indexOf('@import', i) == i) {
61
+ if (!state && cssText.indexOf('@import', i) === i) {
61
62
  state = 'after-import';
62
63
  i += 'import'.length;
63
64
  buffer = '';
@@ -65,15 +66,15 @@ CSSOM.CSSImportRule.prototype.__defineSetter__("cssText", function(cssText) {
65
66
  break;
66
67
 
67
68
  case 'u':
68
- if (state == 'url' && cssText.indexOf('url(', i) == i) {
69
+ if (state === 'url' && cssText.indexOf('url(', i) === i) {
69
70
  index = cssText.indexOf(')', i + 1);
70
- if (index == -1) {
71
+ if (index === -1) {
71
72
  throw i + ': ")" not found';
72
73
  }
73
74
  i += 'url('.length;
74
75
  var url = cssText.slice(i, index);
75
76
  if (url[0] === url[url.length - 1]) {
76
- if (url[0] == '"' || url[0] == "'") {
77
+ if (url[0] === '"' || url[0] === "'") {
77
78
  url = url.slice(1, -1);
78
79
  }
79
80
  }
@@ -84,7 +85,7 @@ CSSOM.CSSImportRule.prototype.__defineSetter__("cssText", function(cssText) {
84
85
  break;
85
86
 
86
87
  case '"':
87
- if (state == 'url') {
88
+ if (state === 'url') {
88
89
  index = cssText.indexOf('"', i + 1);
89
90
  if (!index) {
90
91
  throw i + ": '\"' not found";
@@ -96,7 +97,7 @@ CSSOM.CSSImportRule.prototype.__defineSetter__("cssText", function(cssText) {
96
97
  break;
97
98
 
98
99
  case "'":
99
- if (state == 'url') {
100
+ if (state === 'url') {
100
101
  index = cssText.indexOf("'", i + 1);
101
102
  if (!index) {
102
103
  throw i + ': "\'" not found';
@@ -108,7 +109,7 @@ CSSOM.CSSImportRule.prototype.__defineSetter__("cssText", function(cssText) {
108
109
  break;
109
110
 
110
111
  case ';':
111
- if (state == 'media') {
112
+ if (state === 'media') {
112
113
  if (buffer) {
113
114
  this.media.mediaText = buffer.trim();
114
115
  }
@@ -116,7 +117,7 @@ CSSOM.CSSImportRule.prototype.__defineSetter__("cssText", function(cssText) {
116
117
  break;
117
118
 
118
119
  default:
119
- if (state == 'media') {
120
+ if (state === 'media') {
120
121
  buffer += character;
121
122
  }
122
123
  break;
@@ -11,8 +11,10 @@ var CSSOM = {
11
11
  * @see http://www.w3.org/TR/css3-animations/#DOM-CSSKeyframeRule
12
12
  */
13
13
  CSSOM.CSSKeyframeRule = function CSSKeyframeRule() {
14
+ CSSOM.CSSRule.call(this);
14
15
  this.keyText = '';
15
16
  this.style = new CSSOM.CSSStyleDeclaration;
17
+ this.style.parentRule = this;
16
18
  };
17
19
 
18
20
  CSSOM.CSSKeyframeRule.prototype = new CSSOM.CSSRule;
@@ -10,6 +10,7 @@ var CSSOM = {
10
10
  * @see http://www.w3.org/TR/css3-animations/#DOM-CSSKeyframesRule
11
11
  */
12
12
  CSSOM.CSSKeyframesRule = function CSSKeyframesRule() {
13
+ CSSOM.CSSRule.call(this);
13
14
  this.name = '';
14
15
  this.cssRules = [];
15
16
  };
@@ -27,7 +28,7 @@ CSSOM.CSSKeyframesRule.prototype.__defineGetter__("cssText", function() {
27
28
  for (var i=0, length=this.cssRules.length; i < length; i++) {
28
29
  cssTexts.push(" " + this.cssRules[i].cssText);
29
30
  }
30
- return "@-webkit-keyframes " + this.name + " { \n" + cssTexts.join("\n") + "\n}"
31
+ return "@-webkit-keyframes " + this.name + " { \n" + cssTexts.join("\n") + "\n}";
31
32
  });
32
33
 
33
34
 
@@ -12,6 +12,7 @@ var CSSOM = {
12
12
  * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule
13
13
  */
14
14
  CSSOM.CSSMediaRule = function CSSMediaRule() {
15
+ CSSOM.CSSRule.call(this);
15
16
  this.media = new CSSOM.MediaList;
16
17
  this.cssRules = [];
17
18
  };
@@ -29,7 +30,7 @@ CSSOM.CSSMediaRule.prototype.__defineGetter__("cssText", function() {
29
30
  for (var i=0, length=this.cssRules.length; i < length; i++) {
30
31
  cssTexts.push(this.cssRules[i].cssText);
31
32
  }
32
- return "@media " + this.media.mediaText + " {" + cssTexts.join("") + "}"
33
+ return "@media " + this.media.mediaText + " {" + cssTexts.join("") + "}";
33
34
  });
34
35
 
35
36
 
@@ -10,6 +10,7 @@ var CSSOM = {};
10
10
  */
11
11
  CSSOM.CSSRule = function CSSRule() {
12
12
  this.parentRule = null;
13
+ this.parentStyleSheet = null;
13
14
  };
14
15
 
15
16
  CSSOM.CSSRule.STYLE_RULE = 1;
@@ -9,6 +9,7 @@ var CSSOM = {};
9
9
  */
10
10
  CSSOM.CSSStyleDeclaration = function CSSStyleDeclaration(){
11
11
  this.length = 0;
12
+ this.parentRule = null;
12
13
 
13
14
  // NON-STANDARD
14
15
  this._importants = {};
@@ -27,7 +28,7 @@ CSSOM.CSSStyleDeclaration.prototype = {
27
28
  * Returns the empty string if the property has not been set.
28
29
  */
29
30
  getPropertyValue: function(name) {
30
- return this[name] || ""
31
+ return this[name] || "";
31
32
  },
32
33
 
33
34
  /**
@@ -63,11 +64,11 @@ CSSOM.CSSStyleDeclaration.prototype = {
63
64
  */
64
65
  removeProperty: function(name) {
65
66
  if (!(name in this)) {
66
- return ""
67
+ return "";
67
68
  }
68
69
  var index = Array.prototype.indexOf.call(this, name);
69
70
  if (index < 0) {
70
- return ""
71
+ return "";
71
72
  }
72
73
  var prevValue = this[name];
73
74
  this[name] = "";
@@ -78,7 +79,7 @@ CSSOM.CSSStyleDeclaration.prototype = {
78
79
  // That's what Firefox does
79
80
  //this[index] = ""
80
81
 
81
- return prevValue
82
+ return prevValue;
82
83
  },
83
84
 
84
85
  getPropertyCSSValue: function() {
@@ -119,7 +120,7 @@ CSSOM.CSSStyleDeclaration.prototype = {
119
120
  }
120
121
  properties[i] = name + ": " + value + priority + ";";
121
122
  }
122
- return properties.join(" ")
123
+ return properties.join(" ");
123
124
  },
124
125
 
125
126
  set cssText(cssText){
@@ -129,6 +130,7 @@ CSSOM.CSSStyleDeclaration.prototype = {
129
130
  this[name] = "";
130
131
  }
131
132
  Array.prototype.splice.call(this, 0, this.length);
133
+ this._importants = {};
132
134
 
133
135
  var dummyRule = CSSOM.parse('#bogus{' + cssText + '}').cssRules[0].style;
134
136
  var length = dummyRule.length;
@@ -12,8 +12,10 @@ var CSSOM = {
12
12
  * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleRule
13
13
  */
14
14
  CSSOM.CSSStyleRule = function CSSStyleRule() {
15
+ CSSOM.CSSRule.call(this);
15
16
  this.selectorText = "";
16
17
  this.style = new CSSOM.CSSStyleDeclaration;
18
+ this.style.parentRule = this;
17
19
  };
18
20
 
19
21
  CSSOM.CSSStyleRule.prototype = new CSSOM.CSSRule;
@@ -106,11 +108,11 @@ CSSOM.CSSStyleRule.parse = function(ruleText) {
106
108
 
107
109
  // Comment
108
110
  case "/":
109
- if (ruleText.charAt(i + 1) == "*") {
111
+ if (ruleText.charAt(i + 1) === "*") {
110
112
  i += 2;
111
113
  index = ruleText.indexOf("*/", i);
112
- if (index == -1) {
113
- throw SyntaxError("Missing */");
114
+ if (index === -1) {
115
+ throw new SyntaxError("Missing */");
114
116
  } else {
115
117
  i = index + 1;
116
118
  }
@@ -120,7 +122,7 @@ CSSOM.CSSStyleRule.parse = function(ruleText) {
120
122
  break;
121
123
 
122
124
  case "{":
123
- if (state == "selector") {
125
+ if (state === "selector") {
124
126
  styleRule.selectorText = buffer.trim();
125
127
  buffer = "";
126
128
  state = "name";
@@ -128,7 +130,7 @@ CSSOM.CSSStyleRule.parse = function(ruleText) {
128
130
  break;
129
131
 
130
132
  case ":":
131
- if (state == "name") {
133
+ if (state === "name") {
132
134
  name = buffer.trim();
133
135
  buffer = "";
134
136
  state = "value";
@@ -138,7 +140,7 @@ CSSOM.CSSStyleRule.parse = function(ruleText) {
138
140
  break;
139
141
 
140
142
  case "!":
141
- if (state == "value" && ruleText.indexOf("!important", i) === i) {
143
+ if (state === "value" && ruleText.indexOf("!important", i) === i) {
142
144
  priority = "important";
143
145
  i += "important".length;
144
146
  } else {
@@ -147,7 +149,7 @@ CSSOM.CSSStyleRule.parse = function(ruleText) {
147
149
  break;
148
150
 
149
151
  case ";":
150
- if (state == "value") {
152
+ if (state === "value") {
151
153
  styleRule.style.setProperty(name, buffer.trim(), priority);
152
154
  priority = "";
153
155
  buffer = "";
@@ -158,11 +160,11 @@ CSSOM.CSSStyleRule.parse = function(ruleText) {
158
160
  break;
159
161
 
160
162
  case "}":
161
- if (state == "value") {
163
+ if (state === "value") {
162
164
  styleRule.style.setProperty(name, buffer.trim(), priority);
163
165
  priority = "";
164
166
  buffer = "";
165
- } else if (state == "name") {
167
+ } else if (state === "name") {
166
168
  break;
167
169
  } else {
168
170
  buffer += character;
@@ -11,6 +11,7 @@ var CSSOM = {
11
11
  * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet
12
12
  */
13
13
  CSSOM.CSSStyleSheet = function CSSStyleSheet() {
14
+ CSSOM.StyleSheet.call(this);
14
15
  this.cssRules = [];
15
16
  };
16
17
 
@@ -37,10 +38,10 @@ CSSOM.CSSStyleSheet.prototype.constructor = CSSOM.CSSStyleSheet;
37
38
  */
38
39
  CSSOM.CSSStyleSheet.prototype.insertRule = function(rule, index) {
39
40
  if (index < 0 || index > this.cssRules.length) {
40
- throw new RangeError("INDEX_SIZE_ERR")
41
+ throw new RangeError("INDEX_SIZE_ERR");
41
42
  }
42
43
  this.cssRules.splice(index, 0, CSSOM.CSSStyleRule.parse(rule));
43
- return index
44
+ return index;
44
45
  };
45
46
 
46
47
 
@@ -54,9 +55,8 @@ CSSOM.CSSStyleSheet.prototype.insertRule = function(rule, index) {
54
55
  * sheet.toString()
55
56
  * -> "body{margin:0;}"
56
57
  *
57
- * @param {number} index
58
+ * @param {number} index within the style sheet's rule list of the rule to remove.
58
59
  * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-deleteRule
59
- * @return {number} The index within the style sheet's rule list of the rule to remove.
60
60
  */
61
61
  CSSOM.CSSStyleSheet.prototype.deleteRule = function(index) {
62
62
  if (index < 0 || index >= this.cssRules.length) {
@@ -37,7 +37,7 @@ CSSOM.MediaList.prototype = {
37
37
  * @param {string} medium
38
38
  */
39
39
  appendMedium: function(medium) {
40
- if (Array.prototype.indexOf.call(this, medium) == -1) {
40
+ if (Array.prototype.indexOf.call(this, medium) === -1) {
41
41
  this[this.length] = medium;
42
42
  this.length++;
43
43
  }
@@ -48,11 +48,11 @@ CSSOM.MediaList.prototype = {
48
48
  */
49
49
  deleteMedium: function(medium) {
50
50
  var index = Array.prototype.indexOf.call(this, medium);
51
- if (index != -1) {
51
+ if (index !== -1) {
52
52
  Array.prototype.splice.call(this, index, 1);
53
53
  }
54
54
  }
55
-
55
+
56
56
  };
57
57
 
58
58
 
@@ -7,7 +7,9 @@ var CSSOM = {};
7
7
  * @constructor
8
8
  * @see http://dev.w3.org/csswg/cssom/#the-stylesheet-interface
9
9
  */
10
- CSSOM.StyleSheet = function StyleSheet(){};
10
+ CSSOM.StyleSheet = function StyleSheet() {
11
+ this.parentStyleSheet = null;
12
+ };
11
13
 
12
14
 
13
15
  //.CommonJS
@@ -50,20 +50,20 @@ CSSOM.clone = function clone(stylesheet) {
50
50
  styleClone.length = style.length;
51
51
  }
52
52
 
53
- if ("keyText" in rule) {
53
+ if (rule.hasOwnProperty('keyText')) {
54
54
  ruleClone.keyText = rule.keyText;
55
55
  }
56
56
 
57
- if ("selectorText" in rule) {
57
+ if (rule.hasOwnProperty('selectorText')) {
58
58
  ruleClone.selectorText = rule.selectorText;
59
59
  }
60
60
 
61
- if ("mediaText" in rule) {
61
+ if (rule.hasOwnProperty('mediaText')) {
62
62
  ruleClone.mediaText = rule.mediaText;
63
63
  }
64
64
 
65
- if ("cssRules" in rule) {
66
- rule.cssRules = clone(rule).cssRules;
65
+ if (rule.hasOwnProperty('cssRules')) {
66
+ ruleClone.cssRules = clone(rule).cssRules;
67
67
  }
68
68
  }
69
69