Merge pull request #1780 from brenmar/master

#1778 standardised using starting index, to fix incorrectly mapped sourcemaps
This commit is contained in:
Luke Page
2014-01-11 10:43:16 -08:00
2 changed files with 11 additions and 9 deletions

View File

@@ -1073,7 +1073,7 @@ less.Parser = function Parser(env) {
// selector for now.
//
call: function () {
var s = input.charAt(i), important = false, index = i,
var s = input.charAt(i), important = false, index = i, elemIndex,
elements, elem, e, c, args;
if (s !== '.' && s !== '#') { return; }
@@ -1081,11 +1081,12 @@ less.Parser = function Parser(env) {
save(); // stop us absorbing part of an invalid selector
while (true) {
elemIndex = i;
e = $re(/^[#.](?:[\w-]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/);
if (!e) {
break;
}
elem = new(tree.Element)(c, e, i, env.currentFileInfo);
elem = new(tree.Element)(c, e, elemIndex, env.currentFileInfo);
if (elements) { elements.push(elem); } else { elements = [ elem ]; }
c = $char('>');
}
@@ -1313,7 +1314,7 @@ less.Parser = function Parser(env) {
// and an element name, such as a tag a class, or `*`.
//
element: function () {
var e, c, v;
var e, c, v, index = i;
c = this.combinator();
@@ -1329,7 +1330,7 @@ less.Parser = function Parser(env) {
}
}
if (e) { return new(tree.Element)(c, e, i, env.currentFileInfo); }
if (e) { return new(tree.Element)(c, e, index, env.currentFileInfo); }
},
//
@@ -1374,7 +1375,7 @@ less.Parser = function Parser(env) {
// Selectors are made out of one or more Elements, see above.
//
selector: function (isLess) {
var $re = _$re, elements, extendList, c, e, extend, when, condition;
var index = i, $re = _$re, elements, extendList, c, e, extend, when, condition;
while ((isLess && (extend = this.extend())) || (isLess && (when = $re(/^when/))) || (e = this.element())) {
if (when) {
@@ -1394,7 +1395,7 @@ less.Parser = function Parser(env) {
}
}
if (elements) { return new(tree.Selector)(elements, extendList, condition, i, env.currentFileInfo); }
if (elements) { return new(tree.Selector)(elements, extendList, condition, index, env.currentFileInfo); }
if (extendList) { error("Extend must be used to extend a selector, it cannot be used on its own"); }
},
attribute: function () {
@@ -1646,7 +1647,7 @@ less.Parser = function Parser(env) {
// @charset "utf-8";
//
directive: function () {
var name, value, rules, nonVendorSpecificName,
var index = i, name, value, rules, nonVendorSpecificName,
hasBlock, hasIdentifier, hasExpression, identifier;
if (input.charAt(i) !== '@') { return; }
@@ -1713,12 +1714,12 @@ less.Parser = function Parser(env) {
if (hasBlock) {
rules = this.block();
if (rules) {
return new(tree.Directive)(name, rules, i, env.currentFileInfo);
return new(tree.Directive)(name, rules, index, env.currentFileInfo);
}
} else {
value = hasExpression ? this.expression() : this.entity();
if (value && $char(';')) {
var directive = new(tree.Directive)(name, value, i, env.currentFileInfo);
var directive = new(tree.Directive)(name, value, index, env.currentFileInfo);
if (env.dumpLineNumbers) {
directive.debugInfo = getDebugInfo(i, input, env);
}

View File

@@ -9,6 +9,7 @@ tree.Directive = function (name, value, index, currentFileInfo) {
} else {
this.value = value;
}
this.index = index;
this.currentFileInfo = currentFileInfo;
};