12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- var TYPE = require('../../tokenizer').TYPE;
- var rawMode = require('../node/Raw').mode;
- var COMMA = TYPE.Comma;
- var WHITESPACE = TYPE.WhiteSpace;
- // var( <ident> , <value>? )
- module.exports = function() {
- var children = this.createList();
- this.scanner.skipSC();
- // NOTE: Don't check more than a first argument is an ident, rest checks are for lexer
- children.push(this.Identifier());
- this.scanner.skipSC();
- if (this.scanner.tokenType === COMMA) {
- children.push(this.Operator());
- const startIndex = this.scanner.tokenIndex;
- const value = this.parseCustomProperty
- ? this.Value(null)
- : this.Raw(this.scanner.tokenIndex, rawMode.exclamationMarkOrSemicolon, false);
- if (value.type === 'Value' && value.children.isEmpty()) {
- for (let offset = startIndex - this.scanner.tokenIndex; offset <= 0; offset++) {
- if (this.scanner.lookupType(offset) === WHITESPACE) {
- value.children.appendData({
- type: 'WhiteSpace',
- loc: null,
- value: ' '
- });
- break;
- }
- }
- }
- children.push(value);
- }
- return children;
- };
|