@@ -3594,52 +3594,54 @@ abstract class StylesheetParser extends Parser {
3594
3594
buffer.writeCharCode ($lparen);
3595
3595
whitespace ();
3596
3596
3597
- var needsParenDeprecation = scanner.peekChar () == $lparen;
3598
- var needsNotDeprecation = matchesIdentifier ("not" );
3599
-
3600
- var expression = _expressionUntilComparison ();
3601
- if (needsParenDeprecation || needsNotDeprecation) {
3602
- logger.warn (
3603
- 'Starting a @media query with "${needsParenDeprecation ? '(' : 'not' }" '
3604
- "is deprecated because it conflicts with official CSS syntax.\n "
3605
- "\n "
3606
- "To preserve existing behavior: #{$expression }\n "
3607
- 'To migrate to new behavior: #{"$expression "}\n '
3608
- "\n "
3609
- "For details, see https://sass-lang.com/d/media-logic" ,
3610
- span: expression.span,
3611
- deprecation: true );
3612
- }
3613
-
3614
- buffer.add (expression);
3615
- if (scanner.scanChar ($colon)) {
3597
+ if (scanner.peekChar () == $lparen) {
3598
+ _mediaInParens (buffer);
3616
3599
whitespace ();
3617
- buffer.writeCharCode ($colon);
3618
- buffer.writeCharCode ($space);
3619
- buffer.add (_expression ());
3600
+ if (scanIdentifier ("and" )) {
3601
+ buffer.write (" and " );
3602
+ expectWhitespace ();
3603
+ _mediaLogicSequence (buffer, "and" );
3604
+ } else if (scanIdentifier ("or" )) {
3605
+ buffer.write (" or " );
3606
+ expectWhitespace ();
3607
+ _mediaLogicSequence (buffer, "or" );
3608
+ }
3609
+ } else if (scanIdentifier ("not" )) {
3610
+ buffer.write ("not " );
3611
+ expectWhitespace ();
3612
+ _mediaOrInterp (buffer);
3620
3613
} else {
3621
- var next = scanner.peekChar ();
3622
- if (next == $langle || next == $rangle || next == $equal) {
3623
- buffer.writeCharCode ($space);
3624
- buffer.writeCharCode (scanner.readChar ());
3625
- if ((next == $langle || next == $rangle) && scanner.scanChar ($equal)) {
3626
- buffer.writeCharCode ($equal);
3627
- }
3628
- buffer.writeCharCode ($space);
3629
-
3614
+ buffer.add (_expressionUntilComparison ());
3615
+ if (scanner.scanChar ($colon)) {
3630
3616
whitespace ();
3631
- buffer.add (_expressionUntilComparison ());
3632
-
3633
- if ((next == $langle || next == $rangle) &&
3634
- // dart-lang/sdk#45356
3635
- scanner.scanChar (next! )) {
3617
+ buffer.writeCharCode ($colon);
3618
+ buffer.writeCharCode ($space);
3619
+ buffer.add (_expression ());
3620
+ } else {
3621
+ var next = scanner.peekChar ();
3622
+ if (next == $langle || next == $rangle || next == $equal) {
3636
3623
buffer.writeCharCode ($space);
3637
- buffer.writeCharCode (next);
3638
- if (scanner.scanChar ($equal)) buffer.writeCharCode ($equal);
3624
+ buffer.writeCharCode (scanner.readChar ());
3625
+ if ((next == $langle || next == $rangle) &&
3626
+ scanner.scanChar ($equal)) {
3627
+ buffer.writeCharCode ($equal);
3628
+ }
3639
3629
buffer.writeCharCode ($space);
3640
3630
3641
3631
whitespace ();
3642
3632
buffer.add (_expressionUntilComparison ());
3633
+
3634
+ if ((next == $langle || next == $rangle) &&
3635
+ // dart-lang/sdk#45356
3636
+ scanner.scanChar (next! )) {
3637
+ buffer.writeCharCode ($space);
3638
+ buffer.writeCharCode (next);
3639
+ if (scanner.scanChar ($equal)) buffer.writeCharCode ($equal);
3640
+ buffer.writeCharCode ($space);
3641
+
3642
+ whitespace ();
3643
+ buffer.add (_expressionUntilComparison ());
3644
+ }
3643
3645
}
3644
3646
}
3645
3647
}
0 commit comments