From 317357dcb116ddb3c0386c2b27b3584c0b8778a7 Mon Sep 17 00:00:00 2001 From: shellscape Date: Sat, 25 Apr 2020 18:29:58 -0400 Subject: [PATCH] fix: unknown functions hang. fixes #112 --- lib/nodes/Func.js | 7 +- test/fixtures/func.js | 4 +- test/snapshots/func.test.js.md | 114 +++++++++++++++++++++++++++++++ test/snapshots/func.test.js.snap | Bin 15525 -> 15948 bytes 4 files changed, 121 insertions(+), 4 deletions(-) diff --git a/lib/nodes/Func.js b/lib/nodes/Func.js index 2cf5711..8e10127 100644 --- a/lib/nodes/Func.js +++ b/lib/nodes/Func.js @@ -14,7 +14,7 @@ const { registerWalker } = require('../walker'); const Container = require('./Container'); const Punctuation = require('./Punctuation'); -const allFunctions = [ +const cssFunctions = [ 'annotation', 'attr', 'blur', @@ -85,7 +85,7 @@ const allFunctions = [ 'var' ]; const vendorPrefixes = ['-webkit-', '-moz-', '-ms-', '-o-']; -const reFunctions = new RegExp(`^(${vendorPrefixes.join('|')})?(${allFunctions.join('|')})`, 'i'); +const reFunctions = new RegExp(`^(${vendorPrefixes.join('|')})?(${cssFunctions.join('|')})`, 'i'); const rePunctuation = new RegExp(`^(\\${Punctuation.chars.join('|\\')})`); const reColorFunctions = /^(hsla?|hwb|lab|lch|rgba?)$/i; const reVar = /^var$/i; @@ -122,7 +122,8 @@ class Func extends Container { let lastToken = brackets; // fixes #92 - if (!reFunctions.test(node.name) && !/^[a-zA-Z]+$/.test(node.name)) { + // eslint-disable-next-line no-useless-escape + if (!reFunctions.test(node.name) && !/^[a-zA-Z\-]+$/.test(node.name)) { const nameTokens = getTokens(node.name); tokens.unshift(...nameTokens, brackets); parser.back(tokens); diff --git a/test/fixtures/func.js b/test/fixtures/func.js index d757365..a4a23bd 100644 --- a/test/fixtures/func.js +++ b/test/fixtures/func.js @@ -45,7 +45,9 @@ module.exports = { 'rotate(0.5grad)', 'rotate(0.5turn)', '1em/var(--line-height)', - 'local(foo),local(bar)' + 'local(foo),local(bar)', + 'bat-man(#000)', + 'conic-gradient()' ], throws: ['url( /gfx/img/bg.jpg '] diff --git a/test/snapshots/func.test.js.md b/test/snapshots/func.test.js.md index 918a297..c921298 100644 --- a/test/snapshots/func.test.js.md +++ b/test/snapshots/func.test.js.md @@ -845,6 +845,78 @@ Generated by [AVA](https://avajs.dev). }, ] +## bat-man(#000) + +> Snapshot 1 + + 'bat-man(#000)' + +> Snapshot 2 + + 'bat-man(#000)' + +> Snapshot 3 + + [ + Func { + isColor: false, + isVar: false, + name: 'bat-man', + nodes: [ + Word { + isColor: true, + isHex: true, + isUrl: false, + isVariable: false, + parent: [Circular], + raws: { + after: '', + before: '', + }, + source: { + end: { + column: 1, + line: 1, + }, + input: Input { + css: '#000', + hasBOM: false, + id: '', + }, + start: { + column: 1, + line: 1, + }, + }, + type: 'word', + value: '#000', + }, + ], + params: '(#000)', + raws: { + after: '', + before: '', + semicolon: false, + }, + source: { + end: { + column: 8, + line: 1, + }, + input: Input { + css: 'bat-man(#000)', + hasBOM: false, + id: '', + }, + start: { + column: 1, + line: 1, + }, + }, + type: 'func', + }, + ] + ## calc(((768px - 100vw) / 2) - 15px) > Snapshot 1 @@ -1475,6 +1547,48 @@ Generated by [AVA](https://avajs.dev). }, ] +## conic-gradient() + +> Snapshot 1 + + 'conic-gradient()' + +> Snapshot 2 + + 'conic-gradient()' + +> Snapshot 3 + + [ + Func { + isColor: false, + isVar: false, + name: 'conic-gradient', + nodes: [], + params: '()', + raws: { + after: '', + before: '', + }, + source: { + end: { + column: 15, + line: 1, + }, + input: Input { + css: 'conic-gradient()', + hasBOM: false, + id: '', + }, + start: { + column: 1, + line: 1, + }, + }, + type: 'func', + }, + ] + ## hwb(90deg 0% 0% / 0.5) > Snapshot 1 diff --git a/test/snapshots/func.test.js.snap b/test/snapshots/func.test.js.snap index 5d3f9d1e4139bb935ab75b0dc18f7ccdc83c545d..eb310c1db32dac89ef46ee5af24ba133782bb987 100644 GIT binary patch literal 15948 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 literal 15525 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