Skip to content

Commit

Permalink
drop legacy flag for PseudoElement, don't define :before/:after/:firs…
Browse files Browse the repository at this point in the history
…t-letter/:first-line as pseudo-element anymore
  • Loading branch information
lahmatiy committed Feb 2, 2017
1 parent 16cdc5d commit 9c894f2
Show file tree
Hide file tree
Showing 11 changed files with 64 additions and 127 deletions.
4 changes: 0 additions & 4 deletions lib/parser/index.js
Expand Up @@ -25,7 +25,6 @@ var getFunction = require('./type/Function');
var getHash = require('./type/Hash');
var getId = require('./type/Id');
var getIdentifier = require('./type/Identifier');
var getLegacyPseudoElement = require('./type/_LegacyPseudoElement');
var getMediaFeature = require('./type/MediaFeature');
var getMediaQuery = require('./type/MediaQuery');
var getMediaQueryList = require('./type/MediaQueryList');
Expand All @@ -35,7 +34,6 @@ var getOperator = require('./type/Operator');
var getParentheses = require('./type/Parentheses');
var getPercentage = require('./type/Percentage');
var getProgid = require('./type/Progid');
var getPseudo = require('./type/_Pseudo');
var getPseudoClass = require('./type/PseudoClass');
var getPseudoElement = require('./type/PseudoElement');
var getRatio = require('./type/Ratio');
Expand Down Expand Up @@ -143,7 +141,6 @@ Parser.prototype = {
Hash: getHash,
Id: getId,
Identifier: getIdentifier,
LegacyPseudoElement: getLegacyPseudoElement,
MediaFeature: getMediaFeature,
MediaQuery: getMediaQuery,
MediaQueryList: getMediaQueryList,
Expand All @@ -153,7 +150,6 @@ Parser.prototype = {
Parentheses: getParentheses,
Percentage: getPercentage,
Progid: getProgid,
Pseudo: getPseudo,
PseudoClass: getPseudoClass,
PseudoElement: getPseudoElement,
Ratio: getRatio,
Expand Down
3 changes: 1 addition & 2 deletions lib/parser/type/PseudoElement.js
Expand Up @@ -30,7 +30,6 @@ module.exports = function PseudoElement() {
type: 'PseudoElement',
loc: this.getLocation(start, this.scanner.tokenStart),
name: name,
children: children,
legacy: false
children: children
};
};
8 changes: 7 additions & 1 deletion lib/parser/type/Selector.js
Expand Up @@ -83,7 +83,12 @@ module.exports = function Selector(relative, disallowCombinators) {
break;

case COLON:
child = this.Pseudo();
if (this.scanner.lookupType(1) === COLON) {
child = this.PseudoElement();
} else {
child = this.PseudoClass();
}

break;

case IDENTIFIER:
Expand All @@ -107,6 +112,7 @@ module.exports = function Selector(relative, disallowCombinators) {
this.scanner.skip(idx);
this.scanner.error('Identifier or asterisk is expected');
}

break;

case NUMBER:
Expand Down
22 changes: 0 additions & 22 deletions lib/parser/type/_LegacyPseudoElement.js

This file was deleted.

24 changes: 0 additions & 24 deletions lib/parser/type/_Pseudo.js

This file was deleted.

8 changes: 3 additions & 5 deletions lib/utils/translate.js
Expand Up @@ -216,11 +216,9 @@ function translate(node) {
: ':' + node.name;

case 'PseudoElement':
return node.legacy
? ':' + node.name // :before, :after, :first-letter and :first-line
: node.children !== null
? '::' + node.name + '(' + each(node.children) + ')'
: '::' + node.name;
return node.children !== null
? '::' + node.name + '(' + each(node.children) + ')'
: '::' + node.name;

case 'Class':
return '.' + node.name;
Expand Down
8 changes: 3 additions & 5 deletions lib/utils/translateWithSourceMap.js
Expand Up @@ -268,11 +268,9 @@ function translate(node) {
: ':' + node.name;

case 'PseudoElement':
return node.legacy
? ':' + node.name // :before, :after, :first-letter and :first-line
: node.children !== null
? '::' + node.name + '(' + each(node.children) + ')'
: '::' + node.name;
return node.children !== null
? '::' + node.name + '(' + each(node.children) + ')'
: '::' + node.name;

case 'Class':
return '.' + node.name;
Expand Down
40 changes: 40 additions & 0 deletions test/fixture/parse/selector/PseudoClass.json
Expand Up @@ -40,5 +40,45 @@
}
]
}
},
"pseudo element :before": {
"source": ":before",
"ast": {
"type": "PseudoClass",
"name": "before",
"children": null
}
},
"pseudo element :before case insesitive": {
"source": ":bEfOrE",
"ast": {
"type": "PseudoClass",
"name": "bEfOrE",
"children": null
}
},
"pseudo element :after": {
"source": ":after",
"ast": {
"type": "PseudoClass",
"name": "after",
"children": null
}
},
"pseudo element :first-letter": {
"source": ":first-letter",
"ast": {
"type": "PseudoClass",
"name": "first-letter",
"children": null
}
},
"pseudo element :first-line": {
"source": ":first-line",
"ast": {
"type": "PseudoClass",
"name": "first-line",
"children": null
}
}
}
54 changes: 3 additions & 51 deletions test/fixture/parse/selector/PseudoElement.json
Expand Up @@ -4,71 +4,23 @@
"ast": {
"type": "PseudoElement",
"name": "test",
"children": null,
"legacy": false
"children": null
}
},
"pseudo element #1": {
"source": "::test-test",
"ast": {
"type": "PseudoElement",
"name": "test-test",
"children": null,
"legacy": false
"children": null
}
},
"pseudo element ::before": {
"source": "::before",
"ast": {
"type": "PseudoElement",
"name": "before",
"children": null,
"legacy": false
}
},
"pseudo element :before": {
"source": ":before",
"ast": {
"type": "PseudoElement",
"name": "before",
"children": null,
"legacy": true
}
},
"pseudo element :before case insesitive": {
"source": ":bEfOrE",
"ast": {
"type": "PseudoElement",
"name": "bEfOrE",
"children": null,
"legacy": true
}
},
"pseudo element :after": {
"source": ":after",
"ast": {
"type": "PseudoElement",
"name": "after",
"children": null,
"legacy": true
}
},
"pseudo element :first-letter": {
"source": ":first-letter",
"ast": {
"type": "PseudoElement",
"name": "first-letter",
"children": null,
"legacy": true
}
},
"pseudo element :first-line": {
"source": ":first-line",
"ast": {
"type": "PseudoElement",
"name": "first-line",
"children": null,
"legacy": true
"children": null
}
}
}
9 changes: 3 additions & 6 deletions test/fixture/parse/selector/functional-pseudo/slotted.json
Expand Up @@ -14,8 +14,7 @@
}
]
}
],
"legacy": false
]
}
},
"spaces around selector": {
Expand All @@ -38,8 +37,7 @@
}
]
}
],
"legacy": false
]
}
},
"should be case insensitive": {
Expand All @@ -57,8 +55,7 @@
}
]
}
],
"legacy": false
]
}
},
"error #1": {
Expand Down
11 changes: 4 additions & 7 deletions test/fixture/stringify.ast
Expand Up @@ -829,8 +829,7 @@
}
},
"name": "pseudo",
"children": null,
"legacy": false
"children": null
},
{
"type": "Combinator",
Expand Down Expand Up @@ -1239,8 +1238,7 @@
}
]
}
],
"legacy": false
]
},
{
"type": "Combinator",
Expand Down Expand Up @@ -2710,7 +2708,7 @@
"name": "*|span"
},
{
"type": "PseudoElement",
"type": "PseudoClass",
"loc": {
"source": "stringify.css",
"start": {
Expand All @@ -2725,8 +2723,7 @@
}
},
"name": "before",
"children": null,
"legacy": true
"children": null
}
]
}
Expand Down

0 comments on commit 9c894f2

Please sign in to comment.