less 3.9.0 → 3.10.1

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 (511) hide show
  1. package/.DS_Store +0 -0
  2. package/.eslintignore +4 -1
  3. package/.eslintrc.json +69 -87
  4. package/CHANGELOG.md +7 -0
  5. package/Gruntfile.js +336 -330
  6. package/bin/lessc +13110 -481
  7. package/dist/less.cjs.js +12571 -0
  8. package/dist/less.js +12878 -11507
  9. package/dist/less.min.js +7 -14
  10. package/dist/less.min.js.map +1 -0
  11. package/index.js +1 -1
  12. package/lib/less/constants.js +12 -12
  13. package/lib/less/contexts.js +93 -95
  14. package/lib/less/data/colors.js +1 -1
  15. package/lib/less/data/index.js +4 -4
  16. package/lib/less/data/unit-conversions.js +1 -1
  17. package/lib/less/default-options.js +53 -58
  18. package/lib/less/environment/abstract-file-manager.js +114 -110
  19. package/lib/less/environment/abstract-plugin-loader.js +139 -141
  20. package/lib/less/environment/environment-api.js +1 -1
  21. package/lib/less/environment/environment.js +44 -41
  22. package/lib/less/environment/file-manager-api.js +1 -1
  23. package/lib/less/functions/boolean.js +10 -12
  24. package/lib/less/functions/color-blending.js +20 -10
  25. package/lib/less/functions/color.js +63 -49
  26. package/lib/less/functions/data-uri.js +25 -39
  27. package/lib/less/functions/default.js +5 -7
  28. package/lib/less/functions/function-caller.js +42 -39
  29. package/lib/less/functions/function-registry.js +3 -3
  30. package/lib/less/functions/index.js +28 -16
  31. package/lib/less/functions/list.js +34 -28
  32. package/lib/less/functions/math-helper.js +4 -5
  33. package/lib/less/functions/math.js +8 -9
  34. package/lib/less/functions/number.js +26 -18
  35. package/lib/less/functions/string.js +13 -13
  36. package/lib/less/functions/svg.js +25 -25
  37. package/lib/less/functions/types.js +23 -27
  38. package/lib/less/import-manager.js +140 -138
  39. package/lib/less/index.js +72 -35
  40. package/lib/less/less-error.js +29 -30
  41. package/lib/less/logger.js +4 -4
  42. package/lib/less/parse-tree.js +53 -47
  43. package/lib/less/parse.js +23 -25
  44. package/lib/less/parser/chunker.js +17 -7
  45. package/lib/less/parser/parser-input.js +100 -93
  46. package/lib/less/parser/parser.js +310 -170
  47. package/lib/less/plugin-manager.js +146 -133
  48. package/lib/less/render.js +10 -13
  49. package/lib/less/source-map-builder.js +62 -57
  50. package/lib/less/source-map-output.js +118 -112
  51. package/lib/less/transform-tree.js +21 -18
  52. package/lib/less/tree/anonymous.js +35 -27
  53. package/lib/less/tree/assignment.js +29 -23
  54. package/lib/less/tree/atrule.js +150 -121
  55. package/lib/less/tree/attribute.js +32 -25
  56. package/lib/less/tree/call.js +87 -79
  57. package/lib/less/tree/color.js +202 -185
  58. package/lib/less/tree/combinator.js +25 -19
  59. package/lib/less/tree/comment.js +27 -21
  60. package/lib/less/tree/condition.js +41 -35
  61. package/lib/less/tree/debug-info.js +13 -17
  62. package/lib/less/tree/declaration.js +101 -88
  63. package/lib/less/tree/detached-ruleset.js +27 -20
  64. package/lib/less/tree/dimension.js +142 -124
  65. package/lib/less/tree/element.js +67 -58
  66. package/lib/less/tree/expression.js +66 -57
  67. package/lib/less/tree/extend.js +61 -53
  68. package/lib/less/tree/import.js +144 -141
  69. package/lib/less/tree/index.js +52 -40
  70. package/lib/less/tree/javascript.js +29 -25
  71. package/lib/less/tree/js-eval-node.js +50 -53
  72. package/lib/less/tree/keyword.js +15 -8
  73. package/lib/less/tree/media.js +137 -124
  74. package/lib/less/tree/mixin-call.js +178 -149
  75. package/lib/less/tree/mixin-definition.js +198 -178
  76. package/lib/less/tree/namespace-value.js +75 -67
  77. package/lib/less/tree/negative.js +24 -18
  78. package/lib/less/tree/node.js +138 -117
  79. package/lib/less/tree/operation.js +57 -49
  80. package/lib/less/tree/paren.js +20 -14
  81. package/lib/less/tree/property.js +65 -58
  82. package/lib/less/tree/quoted.js +62 -53
  83. package/lib/less/tree/ruleset.js +739 -680
  84. package/lib/less/tree/selector.js +129 -114
  85. package/lib/less/tree/unicode-descriptor.js +10 -6
  86. package/lib/less/tree/unit.js +117 -97
  87. package/lib/less/tree/url.js +54 -47
  88. package/lib/less/tree/value.js +38 -33
  89. package/lib/less/tree/variable-call.js +41 -34
  90. package/lib/less/tree/variable.js +58 -51
  91. package/lib/less/utils.js +110 -108
  92. package/lib/less/visitors/extend-visitor.js +157 -114
  93. package/lib/less/visitors/import-sequencer.js +47 -43
  94. package/lib/less/visitors/import-visitor.js +22 -23
  95. package/lib/less/visitors/index.js +14 -9
  96. package/lib/less/visitors/join-selector-visitor.js +32 -26
  97. package/lib/less/visitors/set-tree-visibility-visitor.js +37 -30
  98. package/lib/less/visitors/to-css-visitor.js +60 -57
  99. package/lib/less/visitors/visitor.js +44 -35
  100. package/lib/less-browser/add-default-options.js +4 -4
  101. package/lib/less-browser/bootstrap.js +11 -9
  102. package/lib/less-browser/browser.js +13 -12
  103. package/lib/less-browser/cache.js +9 -9
  104. package/lib/less-browser/error-reporting.js +27 -27
  105. package/lib/less-browser/file-manager.js +37 -35
  106. package/lib/less-browser/image-size.js +3 -3
  107. package/lib/less-browser/index.js +78 -73
  108. package/lib/less-browser/log-listener.js +6 -7
  109. package/lib/less-browser/plugin-loader.js +15 -13
  110. package/lib/less-browser/utils.js +20 -20
  111. package/lib/less-node/environment.js +4 -2
  112. package/lib/less-node/file-manager.js +128 -127
  113. package/lib/less-node/fs.js +2 -2
  114. package/lib/less-node/image-size.js +19 -18
  115. package/lib/less-node/index.js +16 -12
  116. package/lib/less-node/lessc-helper.js +4 -5
  117. package/lib/less-node/plugin-loader.js +41 -40
  118. package/lib/less-node/url-file-manager.js +41 -48
  119. package/lib/lessc.js +557 -0
  120. package/package.json +21 -11
  121. package/test/.DS_Store +0 -0
  122. package/test/browser/common.js +34 -30
  123. package/test/browser/css/urls.css +0 -3
  124. package/test/browser/less/plugin/plugin.js +4 -7
  125. package/test/browser/less/urls.less +0 -3
  126. package/test/browser/less.min.js +11 -0
  127. package/test/browser/less.min.js.map +1 -0
  128. package/test/browser/onload.js +13 -0
  129. package/test/browser/runner-browser-options.js +0 -5
  130. package/test/browser/test-runner-template.tmpl +39 -52
  131. package/test/browser/vendor/boot.js +148 -0
  132. package/test/browser/{jasmine-jsreporter.js → vendor/jasmine-jsreporter.js} +0 -0
  133. package/test/copy-bom.js +2 -1
  134. package/test/css/.DS_Store +0 -0
  135. package/test/css/functions-each.css +10 -0
  136. package/test/css/math/.DS_Store +0 -0
  137. package/test/css/namespacing/namespacing-1.css +4 -0
  138. package/test/css/urls.css +0 -1
  139. package/test/index.js +2 -5
  140. package/test/less/.DS_Store +0 -0
  141. package/test/less/colors.less +1 -1
  142. package/test/less/errors/color-func-invalid-color-2.less +2 -0
  143. package/test/less/errors/color-func-invalid-color-2.txt +3 -0
  144. package/test/less/functions-each.less +32 -0
  145. package/test/less/math/.DS_Store +0 -0
  146. package/test/less/namespacing/namespacing-1.less +10 -0
  147. package/test/less/urls.less +0 -1
  148. package/test/less-test.js +20 -11
  149. package/test/modify-vars.js +11 -2
  150. package/.travis.yml +0 -33
  151. package/appveyor.yml +0 -32
  152. package/browser.js +0 -1
  153. package/test/browser/less.js +0 -12956
  154. package/test/less-bom/3rd-party/bootstrap4.less +0 -1
  155. package/test/less-bom/3rd-party/uikit.less +0 -1
  156. package/test/less-bom/calc.less +0 -30
  157. package/test/less-bom/charsets.less +0 -3
  158. package/test/less-bom/colors.less +0 -116
  159. package/test/less-bom/comments.less +0 -102
  160. package/test/less-bom/comments2.less +0 -31
  161. package/test/less-bom/compression/compression.less +0 -36
  162. package/test/less-bom/css-3.less +0 -153
  163. package/test/less-bom/css-escapes.less +0 -42
  164. package/test/less-bom/css-grid.less +0 -30
  165. package/test/less-bom/css-guards.less +0 -103
  166. package/test/less-bom/debug/import/test.less +0 -25
  167. package/test/less-bom/debug/linenumbers.less +0 -33
  168. package/test/less-bom/detached-rulesets.less +0 -112
  169. package/test/less-bom/directives-bubling.less +0 -142
  170. package/test/less-bom/empty.less +0 -1
  171. package/test/less-bom/errors/add-mixed-units.less +0 -3
  172. package/test/less-bom/errors/add-mixed-units.txt +0 -4
  173. package/test/less-bom/errors/add-mixed-units2.less +0 -3
  174. package/test/less-bom/errors/add-mixed-units2.txt +0 -4
  175. package/test/less-bom/errors/at-rules-undefined-var.less +0 -4
  176. package/test/less-bom/errors/at-rules-undefined-var.txt +0 -4
  177. package/test/less-bom/errors/at-rules-unmatching-block.less +0 -4
  178. package/test/less-bom/errors/at-rules-unmatching-block.txt +0 -3
  179. package/test/less-bom/errors/bad-variable-declaration1.less +0 -1
  180. package/test/less-bom/errors/bad-variable-declaration1.txt +0 -2
  181. package/test/less-bom/errors/color-func-invalid-color.less +0 -3
  182. package/test/less-bom/errors/color-func-invalid-color.txt +0 -4
  183. package/test/less-bom/errors/css-guard-default-func.less +0 -4
  184. package/test/less-bom/errors/css-guard-default-func.txt +0 -4
  185. package/test/less-bom/errors/custom-property-unmatched-block-1.less +0 -6
  186. package/test/less-bom/errors/custom-property-unmatched-block-1.txt +0 -4
  187. package/test/less-bom/errors/custom-property-unmatched-block-2.less +0 -6
  188. package/test/less-bom/errors/custom-property-unmatched-block-2.txt +0 -4
  189. package/test/less-bom/errors/custom-property-unmatched-block-3.less +0 -6
  190. package/test/less-bom/errors/custom-property-unmatched-block-3.txt +0 -4
  191. package/test/less-bom/errors/detached-ruleset-1.less +0 -6
  192. package/test/less-bom/errors/detached-ruleset-1.txt +0 -4
  193. package/test/less-bom/errors/detached-ruleset-2.less +0 -6
  194. package/test/less-bom/errors/detached-ruleset-2.txt +0 -4
  195. package/test/less-bom/errors/detached-ruleset-3.less +0 -4
  196. package/test/less-bom/errors/detached-ruleset-3.txt +0 -4
  197. package/test/less-bom/errors/detached-ruleset-5.less +0 -4
  198. package/test/less-bom/errors/detached-ruleset-5.txt +0 -3
  199. package/test/less-bom/errors/detached-ruleset-6.less +0 -5
  200. package/test/less-bom/errors/detached-ruleset-6.txt +0 -4
  201. package/test/less-bom/errors/divide-mixed-units.less +0 -3
  202. package/test/less-bom/errors/divide-mixed-units.txt +0 -4
  203. package/test/less-bom/errors/extend-no-selector.less +0 -3
  204. package/test/less-bom/errors/extend-no-selector.txt +0 -3
  205. package/test/less-bom/errors/extend-not-at-end.less +0 -3
  206. package/test/less-bom/errors/extend-not-at-end.txt +0 -3
  207. package/test/less-bom/errors/functions-1.less +0 -2
  208. package/test/less-bom/errors/functions-1.txt +0 -3
  209. package/test/less-bom/errors/functions-10-keyword.less +0 -2
  210. package/test/less-bom/errors/functions-10-keyword.txt +0 -3
  211. package/test/less-bom/errors/functions-11-operation.less +0 -2
  212. package/test/less-bom/errors/functions-11-operation.txt +0 -3
  213. package/test/less-bom/errors/functions-12-quoted.less +0 -2
  214. package/test/less-bom/errors/functions-12-quoted.txt +0 -3
  215. package/test/less-bom/errors/functions-13-selector.less +0 -2
  216. package/test/less-bom/errors/functions-13-selector.txt +0 -3
  217. package/test/less-bom/errors/functions-14-url.less +0 -2
  218. package/test/less-bom/errors/functions-14-url.txt +0 -3
  219. package/test/less-bom/errors/functions-15-value.less +0 -2
  220. package/test/less-bom/errors/functions-15-value.txt +0 -3
  221. package/test/less-bom/errors/functions-3-assignment.less +0 -2
  222. package/test/less-bom/errors/functions-3-assignment.txt +0 -3
  223. package/test/less-bom/errors/functions-4-call.less +0 -2
  224. package/test/less-bom/errors/functions-4-call.txt +0 -3
  225. package/test/less-bom/errors/functions-5-color-2.less +0 -1
  226. package/test/less-bom/errors/functions-5-color-2.txt +0 -2
  227. package/test/less-bom/errors/functions-5-color.less +0 -2
  228. package/test/less-bom/errors/functions-5-color.txt +0 -3
  229. package/test/less-bom/errors/functions-6-condition.less +0 -2
  230. package/test/less-bom/errors/functions-6-condition.txt +0 -3
  231. package/test/less-bom/errors/functions-7-dimension.less +0 -2
  232. package/test/less-bom/errors/functions-7-dimension.txt +0 -3
  233. package/test/less-bom/errors/functions-8-element.less +0 -2
  234. package/test/less-bom/errors/functions-8-element.txt +0 -3
  235. package/test/less-bom/errors/functions-9-expression.less +0 -2
  236. package/test/less-bom/errors/functions-9-expression.txt +0 -3
  237. package/test/less-bom/errors/import-malformed.less +0 -1
  238. package/test/less-bom/errors/import-malformed.txt +0 -3
  239. package/test/less-bom/errors/import-missing.less +0 -6
  240. package/test/less-bom/errors/import-missing.txt +0 -3
  241. package/test/less-bom/errors/import-no-semi.less +0 -1
  242. package/test/less-bom/errors/import-no-semi.txt +0 -2
  243. package/test/less-bom/errors/import-subfolder1.less +0 -1
  244. package/test/less-bom/errors/import-subfolder1.txt +0 -3
  245. package/test/less-bom/errors/import-subfolder2.less +0 -1
  246. package/test/less-bom/errors/import-subfolder2.txt +0 -4
  247. package/test/less-bom/errors/imports/import-subfolder1.less +0 -1
  248. package/test/less-bom/errors/imports/import-subfolder2.less +0 -1
  249. package/test/less-bom/errors/imports/import-test.less +0 -4
  250. package/test/less-bom/errors/imports/subfolder/mixin-not-defined.less +0 -1
  251. package/test/less-bom/errors/imports/subfolder/parse-error-curly-bracket.less +0 -1
  252. package/test/less-bom/errors/javascript-error.less +0 -3
  253. package/test/less-bom/errors/javascript-error.txt +0 -4
  254. package/test/less-bom/errors/javascript-undefined-var.less +0 -3
  255. package/test/less-bom/errors/javascript-undefined-var.txt +0 -4
  256. package/test/less-bom/errors/mixed-mixin-definition-args-1.less +0 -6
  257. package/test/less-bom/errors/mixed-mixin-definition-args-1.txt +0 -4
  258. package/test/less-bom/errors/mixed-mixin-definition-args-2.less +0 -6
  259. package/test/less-bom/errors/mixed-mixin-definition-args-2.txt +0 -4
  260. package/test/less-bom/errors/mixin-not-defined-2.less +0 -7
  261. package/test/less-bom/errors/mixin-not-defined-2.txt +0 -4
  262. package/test/less-bom/errors/mixin-not-defined.less +0 -11
  263. package/test/less-bom/errors/mixin-not-defined.txt +0 -3
  264. package/test/less-bom/errors/mixin-not-matched.less +0 -6
  265. package/test/less-bom/errors/mixin-not-matched.txt +0 -3
  266. package/test/less-bom/errors/mixin-not-matched2.less +0 -6
  267. package/test/less-bom/errors/mixin-not-matched2.txt +0 -3
  268. package/test/less-bom/errors/mixin-not-visible-in-scope-1.less +0 -9
  269. package/test/less-bom/errors/mixin-not-visible-in-scope-1.txt +0 -4
  270. package/test/less-bom/errors/mixins-guards-cond-expected.less +0 -5
  271. package/test/less-bom/errors/mixins-guards-cond-expected.txt +0 -3
  272. package/test/less-bom/errors/mixins-guards-default-func-1.less +0 -9
  273. package/test/less-bom/errors/mixins-guards-default-func-1.txt +0 -4
  274. package/test/less-bom/errors/mixins-guards-default-func-2.less +0 -9
  275. package/test/less-bom/errors/mixins-guards-default-func-2.txt +0 -4
  276. package/test/less-bom/errors/mixins-guards-default-func-3.less +0 -9
  277. package/test/less-bom/errors/mixins-guards-default-func-3.txt +0 -4
  278. package/test/less-bom/errors/multiple-guards-on-css-selectors.less +0 -4
  279. package/test/less-bom/errors/multiple-guards-on-css-selectors.txt +0 -4
  280. package/test/less-bom/errors/multiple-guards-on-css-selectors2.less +0 -4
  281. package/test/less-bom/errors/multiple-guards-on-css-selectors2.txt +0 -4
  282. package/test/less-bom/errors/multiply-mixed-units.less +0 -7
  283. package/test/less-bom/errors/multiply-mixed-units.txt +0 -4
  284. package/test/less-bom/errors/namespacing-2.less +0 -7
  285. package/test/less-bom/errors/namespacing-2.txt +0 -4
  286. package/test/less-bom/errors/namespacing-3.less +0 -8
  287. package/test/less-bom/errors/namespacing-3.txt +0 -4
  288. package/test/less-bom/errors/namespacing-4.less +0 -7
  289. package/test/less-bom/errors/namespacing-4.txt +0 -4
  290. package/test/less-bom/errors/parens-error-1.less +0 -3
  291. package/test/less-bom/errors/parens-error-1.txt +0 -4
  292. package/test/less-bom/errors/parens-error-2.less +0 -3
  293. package/test/less-bom/errors/parens-error-2.txt +0 -4
  294. package/test/less-bom/errors/parens-error-3.less +0 -3
  295. package/test/less-bom/errors/parens-error-3.txt +0 -4
  296. package/test/less-bom/errors/parse-error-curly-bracket.less +0 -4
  297. package/test/less-bom/errors/parse-error-curly-bracket.txt +0 -4
  298. package/test/less-bom/errors/parse-error-media-no-block-1.less +0 -5
  299. package/test/less-bom/errors/parse-error-media-no-block-1.txt +0 -3
  300. package/test/less-bom/errors/parse-error-media-no-block-2.less +0 -1
  301. package/test/less-bom/errors/parse-error-media-no-block-2.txt +0 -2
  302. package/test/less-bom/errors/parse-error-media-no-block-3.less +0 -4
  303. package/test/less-bom/errors/parse-error-media-no-block-3.txt +0 -3
  304. package/test/less-bom/errors/parse-error-missing-bracket.less +0 -2
  305. package/test/less-bom/errors/parse-error-missing-bracket.txt +0 -3
  306. package/test/less-bom/errors/parse-error-missing-parens.less +0 -5
  307. package/test/less-bom/errors/parse-error-missing-parens.txt +0 -3
  308. package/test/less-bom/errors/parse-error-with-import.less +0 -13
  309. package/test/less-bom/errors/parse-error-with-import.txt +0 -4
  310. package/test/less-bom/errors/percentage-missing-space.less +0 -3
  311. package/test/less-bom/errors/percentage-missing-space.txt +0 -4
  312. package/test/less-bom/errors/percentage-non-number-argument.less +0 -3
  313. package/test/less-bom/errors/percentage-non-number-argument.txt +0 -4
  314. package/test/less-bom/errors/plugin/plugin-error-2.js +0 -5
  315. package/test/less-bom/errors/plugin/plugin-error-3.js +0 -5
  316. package/test/less-bom/errors/plugin/plugin-error.js +0 -1
  317. package/test/less-bom/errors/plugin-1.less +0 -1
  318. package/test/less-bom/errors/plugin-1.txt +0 -2
  319. package/test/less-bom/errors/plugin-2.less +0 -1
  320. package/test/less-bom/errors/plugin-2.txt +0 -5
  321. package/test/less-bom/errors/plugin-3.less +0 -1
  322. package/test/less-bom/errors/plugin-3.txt +0 -5
  323. package/test/less-bom/errors/property-asterisk-only-name.less +0 -3
  324. package/test/less-bom/errors/property-asterisk-only-name.txt +0 -4
  325. package/test/less-bom/errors/property-ie5-hack.less +0 -3
  326. package/test/less-bom/errors/property-ie5-hack.txt +0 -3
  327. package/test/less-bom/errors/property-in-root.less +0 -4
  328. package/test/less-bom/errors/property-in-root.txt +0 -4
  329. package/test/less-bom/errors/property-in-root2.less +0 -1
  330. package/test/less-bom/errors/property-in-root2.txt +0 -4
  331. package/test/less-bom/errors/property-in-root3.less +0 -4
  332. package/test/less-bom/errors/property-in-root3.txt +0 -3
  333. package/test/less-bom/errors/property-interp-not-defined.less +0 -1
  334. package/test/less-bom/errors/property-interp-not-defined.txt +0 -2
  335. package/test/less-bom/errors/recursive-variable.less +0 -1
  336. package/test/less-bom/errors/recursive-variable.txt +0 -2
  337. package/test/less-bom/errors/root-func-undefined-1.less +0 -1
  338. package/test/less-bom/errors/root-func-undefined-1.txt +0 -2
  339. package/test/less-bom/errors/root-func-undefined-2.less +0 -2
  340. package/test/less-bom/errors/root-func-undefined-2.txt +0 -3
  341. package/test/less-bom/errors/single-character.less +0 -1
  342. package/test/less-bom/errors/single-character.txt +0 -2
  343. package/test/less-bom/errors/svg-gradient1.less +0 -3
  344. package/test/less-bom/errors/svg-gradient1.txt +0 -4
  345. package/test/less-bom/errors/svg-gradient2.less +0 -3
  346. package/test/less-bom/errors/svg-gradient2.txt +0 -4
  347. package/test/less-bom/errors/svg-gradient3.less +0 -3
  348. package/test/less-bom/errors/svg-gradient3.txt +0 -4
  349. package/test/less-bom/errors/svg-gradient4.less +0 -4
  350. package/test/less-bom/errors/svg-gradient4.txt +0 -4
  351. package/test/less-bom/errors/svg-gradient5.less +0 -4
  352. package/test/less-bom/errors/svg-gradient5.txt +0 -4
  353. package/test/less-bom/errors/svg-gradient6.less +0 -4
  354. package/test/less-bom/errors/svg-gradient6.txt +0 -4
  355. package/test/less-bom/errors/unit-function.less +0 -3
  356. package/test/less-bom/errors/unit-function.txt +0 -4
  357. package/test/less-bom/extend-chaining.less +0 -91
  358. package/test/less-bom/extend-clearfix.less +0 -19
  359. package/test/less-bom/extend-exact.less +0 -46
  360. package/test/less-bom/extend-media.less +0 -24
  361. package/test/less-bom/extend-nest.less +0 -65
  362. package/test/less-bom/extend-selector.less +0 -110
  363. package/test/less-bom/extend.less +0 -81
  364. package/test/less-bom/extract-and-length.less +0 -146
  365. package/test/less-bom/filemanagerPlugin/colors.test +0 -1
  366. package/test/less-bom/filemanagerPlugin/filemanager.less +0 -4
  367. package/test/less-bom/functions-each.less +0 -131
  368. package/test/less-bom/functions.less +0 -279
  369. package/test/less-bom/globalVars/extended.json +0 -5
  370. package/test/less-bom/globalVars/extended.less +0 -10
  371. package/test/less-bom/globalVars/simple.json +0 -3
  372. package/test/less-bom/globalVars/simple.less +0 -3
  373. package/test/less-bom/ie-filters.less +0 -15
  374. package/test/less-bom/import/css-import.less +0 -1
  375. package/test/less-bom/import/deeper/deeper-2/url-import-2.less +0 -3
  376. package/test/less-bom/import/deeper/deeper-2/url-import.less +0 -1
  377. package/test/less-bom/import/deeper/import-once-test-a.less +0 -1
  378. package/test/less-bom/import/deeper/url-import.less +0 -1
  379. package/test/less-bom/import/import-and-relative-paths-test.less +0 -17
  380. package/test/less-bom/import/import-charset-test.less +0 -1
  381. package/test/less-bom/import/import-inline-invalid-css.less +0 -1
  382. package/test/less-bom/import/import-interpolation.less +0 -2
  383. package/test/less-bom/import/import-interpolation2.less +0 -5
  384. package/test/less-bom/import/import-once-test-c.less +0 -6
  385. package/test/less-bom/import/import-reference.less +0 -98
  386. package/test/less-bom/import/import-test-a.less +0 -5
  387. package/test/less-bom/import/import-test-b.less +0 -8
  388. package/test/less-bom/import/import-test-c.less +0 -6
  389. package/test/less-bom/import/import-test-d.css +0 -1
  390. package/test/less-bom/import/import-test-e.less +0 -2
  391. package/test/less-bom/import/import-test-f.less +0 -5
  392. package/test/less-bom/import/imports/font.less +0 -8
  393. package/test/less-bom/import/imports/logo.less +0 -6
  394. package/test/less-bom/import/interpolation-vars.less +0 -6
  395. package/test/less-bom/import/invalid-css.less +0 -1
  396. package/test/less-bom/import/urls.less +0 -1
  397. package/test/less-bom/import-inline.less +0 -3
  398. package/test/less-bom/import-interpolation.less +0 -8
  399. package/test/less-bom/import-module.less +0 -3
  400. package/test/less-bom/import-once.less +0 -6
  401. package/test/less-bom/import-reference-issues/appender-reference-1968.less +0 -6
  402. package/test/less-bom/import-reference-issues/global-scope-import.less +0 -13
  403. package/test/less-bom/import-reference-issues/global-scope-nested.less +0 -3
  404. package/test/less-bom/import-reference-issues/mixin-1968.less +0 -8
  405. package/test/less-bom/import-reference-issues/multiple-import-nested.less +0 -12
  406. package/test/less-bom/import-reference-issues/multiple-import.less +0 -10
  407. package/test/less-bom/import-reference-issues/simple-mixin.css +0 -3
  408. package/test/less-bom/import-reference-issues/simple-ruleset-2162.less +0 -3
  409. package/test/less-bom/import-reference-issues.less +0 -50
  410. package/test/less-bom/import-reference.less +0 -26
  411. package/test/less-bom/import.less +0 -29
  412. package/test/less-bom/include-path/include-path.less +0 -8
  413. package/test/less-bom/include-path-string/include-path-string.less +0 -3
  414. package/test/less-bom/javascript.less +0 -39
  415. package/test/less-bom/lazy-eval.less +0 -6
  416. package/test/less-bom/legacy/legacy.less +0 -21
  417. package/test/less-bom/math/parens-division/media-math.less +0 -9
  418. package/test/less-bom/math/parens-division/mixins-args.less +0 -264
  419. package/test/less-bom/math/parens-division/new-division.less +0 -17
  420. package/test/less-bom/math/parens-division/parens.less +0 -46
  421. package/test/less-bom/math/strict/css.less +0 -108
  422. package/test/less-bom/math/strict/media-math.less +0 -9
  423. package/test/less-bom/math/strict/mixins-args.less +0 -264
  424. package/test/less-bom/math/strict/parens.less +0 -46
  425. package/test/less-bom/math/strict-legacy/css.less +0 -108
  426. package/test/less-bom/math/strict-legacy/media-math.less +0 -9
  427. package/test/less-bom/math/strict-legacy/mixins-args.less +0 -263
  428. package/test/less-bom/math/strict-legacy/parens.less +0 -50
  429. package/test/less-bom/media.less +0 -241
  430. package/test/less-bom/merge.less +0 -81
  431. package/test/less-bom/mixins-closure.less +0 -26
  432. package/test/less-bom/mixins-guards-default-func.less +0 -195
  433. package/test/less-bom/mixins-guards.less +0 -358
  434. package/test/less-bom/mixins-important.less +0 -53
  435. package/test/less-bom/mixins-interpolated.less +0 -75
  436. package/test/less-bom/mixins-named-args.less +0 -36
  437. package/test/less-bom/mixins-nested.less +0 -22
  438. package/test/less-bom/mixins-pattern.less +0 -102
  439. package/test/less-bom/mixins.less +0 -145
  440. package/test/less-bom/modifyVars/extended.json +0 -5
  441. package/test/less-bom/modifyVars/extended.less +0 -11
  442. package/test/less-bom/namespacing/imports/a-better-bootstrap.less +0 -13
  443. package/test/less-bom/namespacing/imports/library.less +0 -14
  444. package/test/less-bom/namespacing/namespacing-1.less +0 -42
  445. package/test/less-bom/namespacing/namespacing-2.less +0 -27
  446. package/test/less-bom/namespacing/namespacing-3.less +0 -28
  447. package/test/less-bom/namespacing/namespacing-4.less +0 -33
  448. package/test/less-bom/namespacing/namespacing-5.less +0 -32
  449. package/test/less-bom/namespacing/namespacing-6.less +0 -26
  450. package/test/less-bom/namespacing/namespacing-7.less +0 -48
  451. package/test/less-bom/namespacing/namespacing-functions.less +0 -11
  452. package/test/less-bom/namespacing/namespacing-media.less +0 -26
  453. package/test/less-bom/namespacing/namespacing-operations.less +0 -15
  454. package/test/less-bom/nested-gradient-with-svg-gradient/mixin-consumer.less +0 -5
  455. package/test/less-bom/nested-gradient-with-svg-gradient/svg-gradient-mixin.less +0 -15
  456. package/test/less-bom/no-js-errors/no-js-errors.less +0 -3
  457. package/test/less-bom/no-js-errors/no-js-errors.txt +0 -4
  458. package/test/less-bom/no-output.less +0 -2
  459. package/test/less-bom/no-strict-math/mixins-guards.less +0 -25
  460. package/test/less-bom/no-strict-math/no-sm-operations.less +0 -16
  461. package/test/less-bom/operations.less +0 -63
  462. package/test/less-bom/parse-interpolation.less +0 -53
  463. package/test/less-bom/permissive-parse.less +0 -50
  464. package/test/less-bom/plugin/plugin-collection.js +0 -9
  465. package/test/less-bom/plugin/plugin-global.js +0 -9
  466. package/test/less-bom/plugin/plugin-local.js +0 -14
  467. package/test/less-bom/plugin/plugin-preeval.js +0 -27
  468. package/test/less-bom/plugin/plugin-scope1.js +0 -3
  469. package/test/less-bom/plugin/plugin-scope2.js +0 -3
  470. package/test/less-bom/plugin/plugin-set-options-v2.js +0 -33
  471. package/test/less-bom/plugin/plugin-set-options-v3.js +0 -31
  472. package/test/less-bom/plugin/plugin-set-options.js +0 -32
  473. package/test/less-bom/plugin/plugin-simple.js +0 -7
  474. package/test/less-bom/plugin/plugin-transitive.js +0 -6
  475. package/test/less-bom/plugin/plugin-transitive.less +0 -5
  476. package/test/less-bom/plugin/plugin-tree-nodes.js +0 -82
  477. package/test/less-bom/plugin-module.less +0 -7
  478. package/test/less-bom/plugin-preeval.less +0 -15
  479. package/test/less-bom/plugin.less +0 -142
  480. package/test/less-bom/postProcessorPlugin/postProcessor.less +0 -4
  481. package/test/less-bom/preProcessorPlugin/preProcessor.less +0 -3
  482. package/test/less-bom/property-accessors.less +0 -67
  483. package/test/less-bom/property-name-interp.less +0 -56
  484. package/test/less-bom/rewrite-urls-all/folder/file.less +0 -8
  485. package/test/less-bom/rewrite-urls-all/rewrite-urls-all.less +0 -11
  486. package/test/less-bom/rewrite-urls-local/folder/file.less +0 -8
  487. package/test/less-bom/rewrite-urls-local/rewrite-urls-local.less +0 -11
  488. package/test/less-bom/root-registry/file.less +0 -1
  489. package/test/less-bom/root-registry/root.less +0 -3
  490. package/test/less-bom/rootpath-rewrite-urls-all/folder/file.less +0 -8
  491. package/test/less-bom/rootpath-rewrite-urls-all/rootpath-rewrite-urls-all.less +0 -11
  492. package/test/less-bom/rootpath-rewrite-urls-local/folder/file.less +0 -8
  493. package/test/less-bom/rootpath-rewrite-urls-local/rootpath-rewrite-urls-local.less +0 -11
  494. package/test/less-bom/rulesets.less +0 -30
  495. package/test/less-bom/scope.less +0 -104
  496. package/test/less-bom/selectors.less +0 -184
  497. package/test/less-bom/sourcemaps/basic.json +0 -3
  498. package/test/less-bom/sourcemaps/basic.less +0 -27
  499. package/test/less-bom/sourcemaps/custom-props.less +0 -8
  500. package/test/less-bom/sourcemaps/imported.css +0 -7
  501. package/test/less-bom/sourcemaps-empty/empty.less +0 -1
  502. package/test/less-bom/sourcemaps-empty/var-defs.less +0 -1
  503. package/test/less-bom/static-urls/urls.less +0 -33
  504. package/test/less-bom/strict-units/strict-units.less +0 -4
  505. package/test/less-bom/strings.less +0 -73
  506. package/test/less-bom/url-args/urls.less +0 -63
  507. package/test/less-bom/urls.less +0 -94
  508. package/test/less-bom/variables-in-at-rules.less +0 -20
  509. package/test/less-bom/variables.less +0 -127
  510. package/test/less-bom/visitorPlugin/visitor.less +0 -4
  511. package/test/less-bom/whitespace.less +0 -44
@@ -0,0 +1,13 @@
1
+ (function() {
2
+ window.DEFER = [window.onload];
3
+ Object.defineProperty(window, 'onload', {
4
+ get: function() {
5
+ return function() {};
6
+ },
7
+ set: function(fn) {
8
+ window.DEFER.push(fn);
9
+ },
10
+ enumerable: true,
11
+ configurable: true
12
+ });
13
+ })();
@@ -15,11 +15,6 @@ var less = {
15
15
  var testFiles = ['charsets', 'colors', 'comments', 'css-3', 'strings', 'media', 'mixins'],
16
16
  testSheets = [];
17
17
 
18
- // IE 8-10 does not support less in style tags
19
- if (window.navigator.userAgent.indexOf('MSIE') >= 0) {
20
- testFiles.length = 0;
21
- }
22
-
23
18
  // setup style tags with less and link tags pointing to expected css output
24
19
 
25
20
  for (var i = 0; i < testFiles.length; i++) {
@@ -2,46 +2,9 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="utf-8">
5
- <script>
6
- // allow sauce to query for the jasmine report
7
- // because we have to load the page before starting the test, so the thing
8
- // sauce queries for might not be setup yet
9
- var JASMINE;
10
- if(Object.defineProperty) {
11
- Object.defineProperty(window, 'jasmine', {
12
- get: function() { return JASMINE; },
13
- set: function(jsm) {
14
- JASMINE = jsm || {};
15
- if(!JASMINE.getJSReport || typeof JASMINE.getJSReport !== 'function') {
16
- JASMINE.getJSReport = function() { };
17
- }
18
- }
19
- });
20
- }
21
- else {
22
- window.jasmine = { getJSReport: function() { } };
23
- }
24
- </script>
25
5
 
26
6
  <title>Jasmine Spec Runner</title>
27
7
 
28
- <!-- generate script tags for tests -->
29
- <% var generateScriptTags = function(allScripts) { allScripts.forEach(function(script){ %>
30
- <script src="<%= script %>"></script>
31
- <% }); }; %>
32
-
33
- <!-- generate script tags for tests -->
34
- <% var toArray = function(scripts) {
35
- %>[<%
36
- scripts.forEach(function(scriptUrl, index){
37
- %>"<%= scriptUrl %>"<%
38
- if (index !== scripts.length -1) {
39
- %>,<%
40
- }
41
- });
42
- %>]<%
43
- }; %>
44
-
45
8
  <!-- for each test, generate CSS/LESS link tags -->
46
9
  <% scripts.src.forEach(function(fullLessName) {
47
10
  var pathParts = fullLessName.split('/');
@@ -58,6 +21,38 @@
58
21
  <link rel="stylesheet" type="text/css" href="<%= style %>">
59
22
  <% }) %>
60
23
 
24
+ <!-- generate script tags for tests -->
25
+ <%
26
+
27
+ var generateScriptTags = function(allScripts) {
28
+ allScripts.forEach(function(script){
29
+ if (script.indexOf('boot.js') > -1) {
30
+ script = '../../test/browser/vendor/boot.js'
31
+ }
32
+ %><script src="<%= script %>"></script> <%
33
+ });
34
+ };
35
+
36
+ generateScriptTags(scripts.polyfills);
37
+ generateScriptTags(scripts.jasmine);
38
+ generateScriptTags(scripts.boot);
39
+ generateScriptTags(scripts.helpers);
40
+ generateScriptTags(scripts.vendor);
41
+
42
+ %>
43
+
44
+ <!-- generate script tags for tests -->
45
+ <% var toArray = function(scripts) {
46
+ %>[<%
47
+ scripts.forEach(function(scriptUrl, index){
48
+ %>"<%= scriptUrl %>"<%
49
+ if (index !== scripts.length -1) {
50
+ %>,<%
51
+ }
52
+ });
53
+ %>]<%
54
+ }; %>
55
+
61
56
  <script>
62
57
 
63
58
  function loadScript(url,callback){
@@ -78,23 +73,13 @@
78
73
  document.body.appendChild(script);
79
74
  };
80
75
 
81
- var jasmine = <% toArray([].concat(scripts.polyfills, scripts.jasmine, scripts.boot)) %>,
82
- helpers = <% toArray(scripts.helpers) %>,
83
- vendor = <% toArray(scripts.vendor) %>,
84
- specs = <% toArray(scripts.specs) %>,
76
+ var specs = <% toArray(scripts.specs) %>,
85
77
  reporters = <% toArray([].concat(scripts.reporters)) %>,
86
- setupScripts = jasmine.concat(helpers).concat(vendor),
87
78
  runScripts = specs.concat(reporters);
88
79
  </script>
89
80
 
90
- <% generateScriptTags(scripts.polyfills); %>
91
- <% generateScriptTags(scripts.jasmine); %>
92
- <% generateScriptTags(scripts.boot); %>
93
- <% generateScriptTags(scripts.helpers); %>
94
- <% generateScriptTags(scripts.vendor); %>
95
-
96
81
  <script>
97
- setTimeout(function() {
82
+ window.addEventListener('load', function() {
98
83
 
99
84
  function addNextScript() {
100
85
  // for sauce, see above. Additional step needed between loading jasmine and loading
@@ -102,13 +87,15 @@
102
87
  if (runScripts.length) {
103
88
  var scriptSrc = runScripts.shift();
104
89
  loadScript(scriptSrc, addNextScript);
105
- } else {
106
- window.onload();
90
+ }
91
+ else {
92
+ // deferred boot function
93
+ window.DEFER();
107
94
  }
108
95
  }
109
96
  addNextScript();
110
97
 
111
- },1000);
98
+ });
112
99
  </script>
113
100
  </head>
114
101
 
@@ -0,0 +1,148 @@
1
+ // Modified from grunt-contrib-jasmine
2
+
3
+ /*
4
+ Copyright (c) 2008-2015 Pivotal Labs
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining
7
+ a copy of this software and associated documentation files (the
8
+ "Software"), to deal in the Software without restriction, including
9
+ without limitation the rights to use, copy, modify, merge, publish,
10
+ distribute, sublicense, and/or sell copies of the Software, and to
11
+ permit persons to whom the Software is furnished to do so, subject to
12
+ the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be
15
+ included in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
+ */
25
+ /**
26
+ Starting with version 2.0, this file "boots" Jasmine, performing all of the necessary initialization before executing the loaded environment and all of a project's specs. This file should be loaded after `jasmine.js` and `jasmine_html.js`, but before any project source files or spec files are loaded. Thus this file can also be used to customize Jasmine for a project.
27
+
28
+ If a project is using Jasmine via the standalone distribution, this file can be customized directly. If a project is using Jasmine via the [Ruby gem][jasmine-gem], this file can be copied into the support directory via `jasmine copy_boot_js`. Other environments (e.g., Python) will have different mechanisms.
29
+
30
+ The location of `boot.js` can be specified and/or overridden in `jasmine.yml`.
31
+
32
+ [jasmine-gem]: http://github.com/pivotal/jasmine-gem
33
+ */
34
+
35
+ (function() {
36
+
37
+ /**
38
+ * ## Require &amp; Instantiate
39
+ *
40
+ * Require Jasmine's core files. Specifically, this requires and attaches all of Jasmine's code to the `jasmine` reference.
41
+ */
42
+ window.jasmine = jasmineRequire.core(jasmineRequire);
43
+
44
+ /**
45
+ * Since this is being run in a browser and the results should populate to an HTML page, require the HTML-specific Jasmine code, injecting the same reference.
46
+ */
47
+ jasmineRequire.html(jasmine);
48
+
49
+ /**
50
+ * Create the Jasmine environment. This is used to run all specs in a project.
51
+ */
52
+ var env = jasmine.getEnv();
53
+
54
+ /**
55
+ * ## The Global Interface
56
+ *
57
+ * Build up the functions that will be exposed as the Jasmine public interface. A project can customize, rename or alias any of these functions as desired, provided the implementation remains unchanged.
58
+ */
59
+ var jasmineInterface = jasmineRequire.interface(jasmine, env);
60
+
61
+ /**
62
+ * Add all of the Jasmine global/public interface to the global scope, so a project can use the public interface directly. For example, calling `describe` in specs instead of `jasmine.getEnv().describe`.
63
+ */
64
+ extend(window, jasmineInterface);
65
+
66
+ /**
67
+ * ## Runner Parameters
68
+ *
69
+ * More browser specific code - wrap the query string in an object and to allow for getting/setting parameters from the runner user interface.
70
+ */
71
+
72
+ var queryString = new jasmine.QueryString({
73
+ getWindowLocation: function() { return window.location; }
74
+ });
75
+
76
+ var catchingExceptions = queryString.getParam("catch");
77
+ env.catchExceptions(typeof catchingExceptions === "undefined" ? true : catchingExceptions);
78
+
79
+ var throwingExpectationFailures = queryString.getParam("throwFailures");
80
+ env.throwOnExpectationFailure(throwingExpectationFailures);
81
+
82
+ var random = queryString.getParam("random");
83
+ env.randomizeTests(random);
84
+
85
+ var seed = queryString.getParam("seed");
86
+ if (seed) {
87
+ env.seed(seed);
88
+ }
89
+
90
+ /**
91
+ * ## Reporters
92
+ * The `HtmlReporter` builds all of the HTML UI for the runner page. This reporter paints the dots, stars, and x's for specs, as well as all spec names and all failures (if any).
93
+ */
94
+ var htmlReporter = new jasmine.HtmlReporter({
95
+ env: env,
96
+ onRaiseExceptionsClick: function() { queryString.navigateWithNewParam("catch", !env.catchingExceptions()); },
97
+ onThrowExpectationsClick: function() { queryString.navigateWithNewParam("throwFailures", !env.throwingExpectationFailures()); },
98
+ onRandomClick: function() { queryString.navigateWithNewParam("random", !env.randomTests()); },
99
+ addToExistingQueryString: function(key, value) { return queryString.fullStringWithNewParam(key, value); },
100
+ getContainer: function() { return document.body; },
101
+ createElement: function() { return document.createElement.apply(document, arguments); },
102
+ createTextNode: function() { return document.createTextNode.apply(document, arguments); },
103
+ timer: new jasmine.Timer()
104
+ });
105
+
106
+ /**
107
+ * The `jsApiReporter` also receives spec results, and is used by any environment that needs to extract the results from JavaScript.
108
+ */
109
+ env.addReporter(jasmineInterface.jsApiReporter);
110
+ env.addReporter(htmlReporter);
111
+
112
+ /**
113
+ * Filter which specs will be run by matching the start of the full name against the `spec` query param.
114
+ */
115
+ var specFilter = new jasmine.HtmlSpecFilter({
116
+ filterString: function() { return queryString.getParam("spec"); }
117
+ });
118
+
119
+ env.specFilter = function(spec) {
120
+ return specFilter.matches(spec.getFullName());
121
+ };
122
+
123
+ /**
124
+ * Setting up timing functions to be able to be overridden. Certain browsers (Safari, IE 8, phantomjs) require this hack.
125
+ */
126
+ window.setTimeout = window.setTimeout;
127
+ window.setInterval = window.setInterval;
128
+ window.clearTimeout = window.clearTimeout;
129
+ window.clearInterval = window.clearInterval;
130
+
131
+ /**
132
+ * Customized for Less.js
133
+ */
134
+
135
+ window.DEFER = function() {
136
+ htmlReporter.initialize();
137
+ env.execute();
138
+ };
139
+
140
+ /**
141
+ * Helper function for readability above.
142
+ */
143
+ function extend(destination, source) {
144
+ for (var property in source) destination[property] = source[property];
145
+ return destination;
146
+ }
147
+
148
+ }());
package/test/copy-bom.js CHANGED
@@ -8,7 +8,8 @@ module.exports = function() {
8
8
  fs = require('fs');
9
9
 
10
10
  var BUF_LENGTH = 64 * 1024;
11
- var _buff = new Buffer(BUF_LENGTH);
11
+ // Avoid Buffer constructor on newer versions of Node.js
12
+ var _buff = (Buffer.alloc ? Buffer.alloc(BUF_LENGTH) : (new Buffer(BUF_LENGTH)));
12
13
 
13
14
  function copyFolderWithBom(src, dest) {
14
15
  var stats = fs.lstatSync(src);
Binary file
@@ -80,3 +80,13 @@
80
80
  .bar {
81
81
  content: blue;
82
82
  }
83
+ span {
84
+ content: 'foo';
85
+ content: 'bar';
86
+ }
87
+ div {
88
+ content: 'foo';
89
+ }
90
+ .a .w-1 {
91
+ width: 90 100 110;
92
+ }
Binary file
@@ -14,3 +14,7 @@
14
14
  #ns1 {
15
15
  foo: uno;
16
16
  }
17
+ .button {
18
+ color: grey;
19
+ border-color: #AAA #CCC;
20
+ }
package/test/css/urls.css CHANGED
@@ -69,7 +69,6 @@
69
69
  uri-2: url("data:text/html,%3Chtml%3E%3Ch1%3EThis%20page%20is%20100%25%20Awesome.%3C%2Fh1%3E%3C%2Fhtml%3E%0A");
70
70
  }
71
71
  #file-functions {
72
- uri: url('../data/data-uri-fail.png');
73
72
  svg-not-base-64: url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%0A%3Csvg%20height%3D%22100%22%20width%3D%22100%22%3E%0A%20%20%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2240%22%20stroke%3D%22black%22%20stroke-width%3D%221%22%20fill%3D%22blue%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
74
73
  size: 640px 430px;
75
74
  width: 640px;
package/test/index.js CHANGED
@@ -12,13 +12,10 @@ var testMap = [
12
12
  // TODO: Change this to rewriteUrls: 'all' once the relativeUrls option is removed
13
13
  relativeUrls: true,
14
14
  silent: true,
15
- javascriptEnabled: true,
16
- // Set explicitly for legacy tests for >3.0
17
- ieCompat: true
15
+ javascriptEnabled: true
18
16
  }],
19
17
  [{
20
- math: 'strict-legacy',
21
- ieCompat: true
18
+ math: 'strict-legacy'
22
19
  }, 'math/strict-legacy/'],
23
20
  [{
24
21
  math: 'parens'
Binary file
@@ -113,4 +113,4 @@
113
113
  test-12: hsla(#5F59, 0.5);
114
114
  --semi-transparent-dark-background: #001e00ee;
115
115
  --semi-transparent-dark-background-2: rgba(0, 30, 0, 238); // invalid opacity will be capped
116
- }
116
+ }
@@ -0,0 +1,2 @@
1
+ // https://github.com/less/less.js/issues/3338
2
+ @base-color: darken(var(--baseColor, red), 50%);
@@ -0,0 +1,3 @@
1
+ RuntimeError: error evaluating function `darken`: Argument cannot be evaluated to a color in {path}color-func-invalid-color-2.less on line 2, column 14:
2
+ 1 // https://github.com/less/less.js/issues/3338
3
+ 2 @base-color: darken(var(--baseColor, red), 50%);
@@ -129,3 +129,35 @@ each(@one[@two], {
129
129
  content: @value;
130
130
  }
131
131
  });
132
+
133
+ // https://github.com/less/less.js/issues/3354
134
+ .log(@msgs) {
135
+ each(@msgs; {
136
+ content: @value;
137
+ });
138
+ }
139
+
140
+ @messages: 'foo', 'bar';
141
+
142
+ span {
143
+ .log(@messages);
144
+ }
145
+
146
+ div {
147
+ .log('foo');
148
+ }
149
+
150
+ // https://github.com/less/less.js/issues/3345
151
+ .mixin-create-width-style() {
152
+ @list: e("90 100 110");
153
+
154
+ each(@list, {
155
+ .w-@{key} {
156
+ width: @value;
157
+ }
158
+ })
159
+ }
160
+
161
+ .a {
162
+ .mixin-create-width-style();
163
+ }
Binary file
@@ -39,4 +39,14 @@
39
39
  .vars() {
40
40
  sub: tres;
41
41
  }
42
+ }
43
+
44
+ // https://github.com/less/less.js/issues/3346
45
+ #DEF() {
46
+ .colors() { primary: grey; }
47
+ }
48
+
49
+ .button {
50
+ color: #DEF.colors[primary];
51
+ border-color: #AAA #CCC;
42
52
  }
@@ -61,7 +61,6 @@
61
61
  }
62
62
 
63
63
  #file-functions {
64
- uri: data-uri('../data/data-uri-fail.png');
65
64
  svg-not-base-64: data-uri('../data/image.svg');
66
65
  size: image-size('../data/data-uri-fail.png');
67
66
  width: image-width('../data/data-uri-fail.png');
package/test/less-test.js CHANGED
@@ -7,7 +7,16 @@ module.exports = function() {
7
7
  doBomTest = false,
8
8
  clone = require('clone');
9
9
 
10
- var less = require('../lib/less-node');
10
+ var less;
11
+
12
+ // Dist fallback for NPM-installed Less (for plugins that do testing)
13
+ try {
14
+ less = require('../tmp/less.cjs.js');
15
+ }
16
+ catch (e) {
17
+ less = require('../dist/less.cjs.js');
18
+ }
19
+
11
20
  var stylize = require('../lib/less-node/lessc-helper').stylize;
12
21
 
13
22
  var globals = Object.keys(global);
@@ -186,16 +195,16 @@ module.exports = function() {
186
195
  pathimportesc = pathimport.replace(/[.:/\\]/g, function(a) { return '\\' + (a == '\\' ? '\/' : a); });
187
196
 
188
197
  return input.replace(/\{path\}/g, p)
189
- .replace(/\{node\}/g, '')
190
- .replace(/\{\/node\}/g, '')
191
- .replace(/\{pathhref\}/g, '')
192
- .replace(/\{404status\}/g, '')
193
- .replace(/\{nodepath\}/g, path.join(process.cwd(), 'node_modules', '/'))
194
- .replace(/\{pathrel\}/g, path.join(path.relative(process.cwd(), p), '/'))
195
- .replace(/\{pathesc\}/g, pathesc)
196
- .replace(/\{pathimport\}/g, pathimport)
197
- .replace(/\{pathimportesc\}/g, pathimportesc)
198
- .replace(/\r\n/g, '\n');
198
+ .replace(/\{node\}/g, '')
199
+ .replace(/\{\/node\}/g, '')
200
+ .replace(/\{pathhref\}/g, '')
201
+ .replace(/\{404status\}/g, '')
202
+ .replace(/\{nodepath\}/g, path.join(process.cwd(), 'node_modules', '/'))
203
+ .replace(/\{pathrel\}/g, path.join(path.relative(process.cwd(), p), '/'))
204
+ .replace(/\{pathesc\}/g, pathesc)
205
+ .replace(/\{pathimport\}/g, pathimport)
206
+ .replace(/\{pathimportesc\}/g, pathimportesc)
207
+ .replace(/\r\n/g, '\n');
199
208
  }
200
209
 
201
210
  function checkGlobalLeaks() {
@@ -1,5 +1,14 @@
1
- var less = require('../lib/less'),
2
- fs = require('fs');
1
+ var less;
2
+
3
+ // Dist fallback for NPM-installed Less (for plugins that do testing)
4
+ try {
5
+ less = require('../tmp/less.cjs.js');
6
+ }
7
+ catch (e) {
8
+ less = require('../dist/less.cjs.js');
9
+ }
10
+
11
+ var fs = require('fs');
3
12
 
4
13
  var input = fs.readFileSync('./test/less/modifyVars/extended.less', 'utf8');
5
14
  var expectedCss = fs.readFileSync('./test/css/modifyVars/extended.css', 'utf8');
package/.travis.yml DELETED
@@ -1,33 +0,0 @@
1
- language: node_js
2
- cache:
3
- directories:
4
- - travis-phantomjs
5
- node_js:
6
- - "9"
7
- - "8"
8
- - "6"
9
- before_install:
10
- # from https://github.com/travis-ci/travis-ci/issues/3225#issuecomment-177592725
11
- # and also from https://github.com/travis-ci/travis-ci/issues/3225#issuecomment-200965782
12
- - phantomjs --version
13
- - export PATH=$PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64/bin:$PATH
14
- - phantomjs --version
15
- # Clear cache and download new copy of PhantomJS if the current version doesn't match 2.1.1.
16
- - "if [ $(phantomjs --version) != '2.1.1' ]; then rm -rf $PWD/travis-phantomjs; mkdir -p $PWD/travis-phantomjs; fi"
17
- - "if [ $(phantomjs --version) != '2.1.1' ]; then wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 -O $PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2; fi"
18
- - "if [ $(phantomjs --version) != '2.1.1' ]; then tar -xvf $PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C $PWD/travis-phantomjs; fi"
19
- - phantomjs --version
20
- install:
21
- - npm install -g grunt-cli
22
- # node 0.10 & 0.12 have race condition issues when running custom install scripts
23
- # this can cause phantomjs-prebuilt install script to fail with the error:
24
- # <Cannot find module 'boom'>
25
- # Seems related to: https://github.com/npm/npm/issues/8152
26
- # using <travis_retry> solves this.
27
- - travis_retry npm install
28
- env:
29
- global:
30
- - PHANTOMJS_CDNURL=http://cnpmjs.org/downloads
31
- - secure: TrNVruWYaUK5ALga1y7wRY+MLjWJECUSCsBmKW5EUmIevOUxqHWu7M89FANKxstEeFRRAGH3QJbloRxnzIgh0U0ah5npE9XA1bYXGO5khoXeIyk7pNRfjIo8aEnJH1Vp8vWA6J6ovxdJ7lCFKEGvGKxGde50knVl7KFVVULlX2U=
32
- - secure: Rzh+CEI7YRvvVkOruPE8Z0dkU0s13V6b6cpqbN72vxbJl/Jm5PUZkjTFJdkWJrW3ErhCKX6EC7XdGvrclqEA9WAqKzrecqCJYqTnw4MwqiAj6F9wqE/BqhoWg4xPxm0MK/7eJMvLCgjNpe+gc1CaeFJZkLSNWn6nOFke+vVlf9Q=
33
- sudo: false
package/appveyor.yml DELETED
@@ -1,32 +0,0 @@
1
- # Test against these versions of Node.js.
2
- environment:
3
- matrix:
4
- - nodejs_version: "4"
5
- - nodejs_version: "6"
6
- - nodejs_version: "8"
7
- - nodejs_version: "9"
8
-
9
- # Install scripts. (runs after repo cloning)
10
- install:
11
- # node 0.10 & 0.12 have race condition issues when running custom install scripts
12
- # this can cause phantomjs-prebuilt install script to fail with the error:
13
- # <Cannot find module 'boom'>
14
- # Seems related to: https://github.com/npm/npm/issues/8152
15
- # using <appveyor_retry> solves this.
16
- - appveyor-retry call npm install
17
-
18
- # Grunt-specific stuff.
19
- - npm install -g grunt-cli
20
-
21
- # Post-install test scripts.
22
- test_script:
23
- # Output useful info for debugging.
24
- - node --version && npm --version
25
- # Run test
26
- - grunt test
27
-
28
- # Don't actually build.
29
- build: off
30
-
31
- # Set build version format here instead of in the admin panel.
32
- version: "{build}"
package/browser.js DELETED
@@ -1 +0,0 @@
1
- module.exports = require('./lib/less-browser');