| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- '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.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;
|