Fixed nested media bug.

This commit is contained in:
Simone Deponti
2012-09-19 11:10:32 +02:00
committed by Luke Page
parent 1b0b84551f
commit ebc41e5c4b
5 changed files with 58 additions and 39 deletions

View File

@@ -234,6 +234,13 @@ less.Parser = function Parser(env) {
return require('path').resolve(e.filename);
}
function getDebugInfo(index, inputStream, e) {
return {
lineNumber: getLocation(index, inputStream).line + 1,
fileName: getFileName(e)
};
}
function LessError(e, env) {
var input = getInput(e, env),
loc = getLocation(e.index, input),
@@ -1063,14 +1070,11 @@ less.Parser = function Parser(env) {
// div, .class, body > p {...}
//
ruleset: function () {
var selectors = [], s, rules, match, sourceLineNumber,
sourceFileName;
var selectors = [], s, rules, match, debugInfo;
save();
if (env.dumpLineNumbers) {
sourceLineNumber = getLocation(i, input).line + 1;
sourceFileName = getFileName(env);
}
if (env.dumpLineNumbers)
debugInfo = getDebugInfo(i, input, env);
while (s = $(this.selector)) {
selectors.push(s);
@@ -1081,10 +1085,8 @@ less.Parser = function Parser(env) {
if (selectors.length > 0 && (rules = $(this.block))) {
var ruleset = new(tree.Ruleset)(selectors, rules, env.strictImports);
if (env.dumpLineNumbers) {
ruleset.sourceLineNumber = sourceLineNumber;
ruleset.sourceFileName = sourceFileName;
}
if (env.dumpLineNumbers)
ruleset.debugInfo = debugInfo;
return ruleset;
} else {
// Backtrack
@@ -1188,13 +1190,19 @@ less.Parser = function Parser(env) {
},
media: function () {
var features, rules;
var features, rules, media, debugInfo;
if (env.dumpLineNumbers)
debugInfo = getDebugInfo(i, input, env);
if ($(/^@media/)) {
features = $(this.mediaFeatures);
if (rules = $(this.block)) {
return new(tree.Media)(rules, features);
media = new(tree.Media)(rules, features);
if(env.dumpLineNumbers)
media.debugInfo = debugInfo;
return media;
}
}
},