Skip to content

@supports rules causes Error: Could not parse CSS stylesheet #2026

@foolip

Description

@foolip

Basic info:

  • Node.js version: 8.5.0
  • jsdom version: 11.3.0

Minimal reproduction case

const { JSDOM } = require("jsdom");

new JSDOM(`<style>
  @supports (text-decoration-style: solid) {
    ul.toc a:hover, ul.toc a:focus  {
    }
  }
</style>`)

This results in this console output:

Error: Could not parse CSS stylesheet
    at exports.evaluateStylesheet (/redacted/node_modules/jsdom/lib/jsdom/living/helpers/stylesheets.js:18:21)
    at HTMLStyleElementImpl._attach (/redacted/node_modules/jsdom/lib/jsdom/living/nodes/HTMLStyleElement-impl.js:23:5)
    at HTMLHeadElementImpl._attach (/redacted/node_modules/jsdom/lib/jsdom/living/nodes/Node-impl.js:281:15)
    at HTMLHeadElementImpl._attach (/redacted/node_modules/jsdom/lib/jsdom/living/nodes/Element-impl.js:90:11)
    at HTMLHtmlElementImpl._attach (/redacted/node_modules/jsdom/lib/jsdom/living/nodes/Node-impl.js:281:15)
    at HTMLHtmlElementImpl._attach (/redacted/node_modules/jsdom/lib/jsdom/living/nodes/Element-impl.js:90:11)
    at DocumentImpl.insertBefore (/redacted/node_modules/jsdom/lib/jsdom/living/nodes/Node-impl.js:221:22)
    at DocumentImpl.appendChild (/redacted/node_modules/jsdom/lib/jsdom/living/nodes/Node-impl.js:319:17)
    at DocumentImpl.appendChild (/redacted/node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js:394:18)
    at setChild (/redacted/node_modules/jsdom/lib/jsdom/browser/htmltodom.js:230:18) 
  @supports (text-decoration-style: solid) {
    ul.toc a:hover, ul.toc a:focus  {
    }
  }

How does similar code behave in browsers?

No console error or warning in Chrome:
https://wicg.github.io/hsts-priming/

Source:
https://github.com/WICG/hsts-priming/blob/bb84ed97793799ccc50eb36eba1d1e95722f9eb2/index.html#L856

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions