From ead2fe5eef5b2a90ffe64a7b2979eb3345417e72 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sat, 9 Dec 2017 21:28:09 -0500 Subject: [PATCH] handle empty classes - fixes #978 --- src/css/Selector.ts | 1 + test/css/samples/empty-class/_config.js | 20 ++++++++++++++++++++ test/css/samples/empty-class/expected.css | 0 test/css/samples/empty-class/input.html | 7 +++++++ 4 files changed, 28 insertions(+) create mode 100644 test/css/samples/empty-class/_config.js create mode 100644 test/css/samples/empty-class/expected.css create mode 100644 test/css/samples/empty-class/input.html diff --git a/src/css/Selector.ts b/src/css/Selector.ts index c66034bccd..1ca0b240f2 100644 --- a/src/css/Selector.ts +++ b/src/css/Selector.ts @@ -229,6 +229,7 @@ function attributeMatches(node: Node, name: string, expectedValue: string, opera const pattern = operators[operator](expectedValue, caseInsensitive ? 'i' : ''); const value = attr.value[0]; + if (!value) return false; if (value.type === 'Text') return pattern.test(value.data); const possibleValues = new Set(); diff --git a/test/css/samples/empty-class/_config.js b/test/css/samples/empty-class/_config.js new file mode 100644 index 0000000000..cf778c3401 --- /dev/null +++ b/test/css/samples/empty-class/_config.js @@ -0,0 +1,20 @@ +export default { + cascade: false, + + warnings: [{ + filename: "SvelteComponent.html", + message: "Unused CSS selector", + loc: { + line: 4, + column: 1 + }, + pos: 31, + frame: ` + 2: + 3: \ No newline at end of file