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