- From: Marat Tanalin <mtanalin@yandex.ru>
- Date: Tue, 02 Jun 2015 20:37:10 +0300
- To: Tab Atkins Jr. <jackalmage@gmail.com>
- Cc: BangSeongbeom <bangseongbeom@hotmail.com>, www-style list <www-style@w3.org>
02.06.2015, 19:45, "Tab Atkins Jr." <jackalmage@gmail.com>: > On Tue, Jun 2, 2015 at 9:27 AM, Marat Tanalin <mtanalin@yandex.ru> wrote: >> Instead of fearing cycles at all, we could just limit nesting/recursion >> level for `var()`, so that once some reasonable limit (e.g. 10) >> is achieved, applying styles referenced by corresponding nested `var()` >> calls is just stopped. > > there's no "recursion". šCSS is declarative, not imperative; there's no defined evaluation order. On implementation level, _there is_ an evaluation order anyway. Exact order is not necessarily should (or even must not) be described in a spec, it should be enough just to spec a specific limit. For example, the spec could say: "If there are more than 10 nested `var()` calls, then all involved properties must be ignored." For example, if we had a specced/implemented nesting limit of 3 (exact number of 3 would probably too small in practice and is used just for code-example brevity), then with this CSS code: a: var(b); /* #1 */ b: var(c); /* #2 */ c: var(d); /* #3 */ d: var(e); /* #4 */ an implementation would stop the "recursion" on `var(e)` since it is 4th `var()` in the `var()` chain. In another implementation, evaluation order could be different, but the result should be the same -- once nesting-level limit is reached, reading the chain is stopped and all properties in the chain are ignored.
Received on Tuesday, 2 June 2015 17:37:43 UTC